极客视点
极客时间编辑部
极客时间编辑部
113240 人已学习
免费领取
课程目录
已完结/共 3766 讲
2020年09月 (90讲)
时长 05:33
2020年08月 (93讲)
2020年07月 (93讲)
时长 05:51
2020年06月 (90讲)
2020年05月 (93讲)
2020年04月 (90讲)
2020年03月 (92讲)
时长 04:14
2020年02月 (87讲)
2020年01月 (91讲)
时长 00:00
2019年12月 (93讲)
2019年11月 (89讲)
2019年10月 (92讲)
2019年09月 (90讲)
时长 00:00
2019年08月 (91讲)
2019年07月 (92讲)
时长 03:45
2019年06月 (90讲)
2019年05月 (99讲)
2019年04月 (114讲)
2019年03月 (122讲)
2019年02月 (102讲)
2019年01月 (104讲)
2018年12月 (98讲)
2018年11月 (105讲)
时长 01:23
2018年10月 (123讲)
时长 02:06
2018年09月 (119讲)
2018年08月 (123讲)
2018年07月 (124讲)
2018年06月 (119讲)
时长 02:11
2018年05月 (124讲)
时长 03:16
2018年04月 (120讲)
2018年03月 (124讲)
2018年02月 (112讲)
2018年01月 (124讲)
时长 02:30
时长 02:34
2017年12月 (124讲)
时长 03:09
2017年11月 (120讲)
2017年10月 (86讲)
时长 03:18
时长 03:31
时长 04:25
极客视点
15
15
1.0x
00:00/03:54
登录|注册

从业30年得出的软件开发经验(下)

讲述:丁婵大小:1.79M时长:03:54
在上一篇文章中,我们分享了拥有 30 年软件开发经验的朱利奥·比亚森(Julio Biason)给程序员的 10 点建议,本文继续这个话题,精选如下 10 个注意事项。

1. 在选择编程语言时,不要只看语言本身

编程语言是你用来解决问题的得力工具,但不仅限于此:它还有构建系统,有依赖管理系统,有工具、库和框架,有社区等。在选择编程语言时,不要仅仅因为它用起来很简单,还需要考虑到社区因素。

2. 如果数据是有模式的,那就用合适的结构来保持数据的模式

你可能会用 list(或者 tuple)来保存数据简单的数据,比如只有两个字段的数据。但如果数据是有模式的,也就是有固定格式的,那么就应该使用合适的结构来保持数据的模式,比如使用结构体或类。

3. 设计模式是用来描述解决方案的,而不是用来寻找解决方案的

同上一点一样,这也只是朱利奥·比亚森的个人观点。大多数时候,人们会应用设计模式,试图通过设计模式来找到解决方案,但结果是不得不对解决方案,甚至是问题本身作出调整来匹配设计模式。

4. 学会基本的函数式编程

你不一定要成为函数式编程专家,但有时候你需要保持数据的不变性。使用新值来创建新元素,如果有可能,不要让函数或类拥有内部状态。

5. 认知成本是代码可读性杀手

“认知冲突”是“需要同时记住两件或者更多东西才能帮你理解事物”的另一种说法。同时记住不同的东西会给大脑增加负担,并且会削弱事物的相关性。

6. 一个变更对应一个提交

朱利奥·比亚森表示自己经常看到代码提交里有这样的消息:“修复问题 #1、#2 和 #3”。除非这三个问题是重复的,而其中两个应该是已关闭的,否则应该分成三次提交,每个提交对应一个问题。

7. 学会使用监控

以前,为了了解系统的行为,朱利奥·比亚森会往系统里添加很多度量指标。在习惯了这些之后,如果一个系统没有监控,他就会觉得很奇怪。只是通过发送简单的请求根本不足以判断一个系统是否健康。他建议尽早给系统加入监控可以让你更好地了解系统的行为。

8. 使用配置文件

假设你写了一个函数,它只接受一个值作为参数。如果你有两个值需要分两次传给它,就需要调用这个函数两次。你也可以使用配置文件,把这两个值分别写在两个配置文件里,然后运行这个程序两次。

9. 不只有函数组合,我们还有程序组合

Unix 的哲学是“一个程序只做一件事,而且做到极致”。你可以使用一个程序和多个配置文件,但你需要使用所有程序的运行结果,那该怎么办?你可以再写一个程序,把多次运行结果合并起来变成一个。

10. 把代码优化工作留给编译器

你想要获得更好的代码性能,于是总想着在这里优化一点,在那里优化一点。但你要知道,优化代码正是编译器的拿手好戏。聪明的编译器甚至会帮你把返回相同结果的代码移除掉。你需要做的是如何更好地设计你的代码,而不是想方设法改进已有的代码。
以上就是今天的内容,希望对你有所帮助。
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 中文繁体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
    • 阿拉伯语
  • 解释
  • 总结
该免费文章来自《极客视点》,如需阅读全部文章,
请先领取课程
免费领取
登录 后留言

精选留言

由作者筛选后的优质留言将会公开显示,欢迎踊跃留言。
收起评论
大纲
固定大纲
1. 在选择编程语言时,不要只看语言本身
2. 如果数据是有模式的,那就用合适的结构来保持数据的模式
3. 设计模式是用来描述解决方案的,而不是用来寻找解决方案的
4. 学会基本的函数式编程
5. 认知成本是代码可读性杀手
6. 一个变更对应一个提交
7. 学会使用监控
8. 使用配置文件
9. 不只有函数组合,我们还有程序组合
10. 把代码优化工作留给编译器
显示
设置
留言
收藏
99+
沉浸
阅读
分享
手机端
快捷键
回顶部