主要观点:这是截至 2024 年 7 月关于计算机编程的一系列观点,基于自身经验。
关键信息:
- 任务处理方法:不同任务、团队和项目应采用不同方法;先做“尖峰”实验快速实现再优化;遇到难题可休息;思考是否可完全跳过某些工作。
- 软件设计:区分“简单”和“容易”;使无效状态不可表示;测试性与模块化相同;函数式编程有优势。
- 编码细节:多种文档方式;使用变量的肯定形式;避免重命名标识符;考虑用枚举代替布尔;利用“Learn X in Y minutes”学习语言;不必过度纠结 HTTP 状态码;先使用已有工具;调整设置收益有限。
- 人际关系:“孤独开发者”问题;简单观点往往错误;事情比预期更复杂。
- 高层/职业:最重要的问题是非技术方面;编写新代码相对容易;做无用的东西可学习新事物;要为正确的人构建。
重要细节: - 以不同方式处理不同任务,如不能用自动化测试建起搏器,周末游戏 jam 时不必过度强调自动化测试。
- “尖峰”实验先快速实现再优化,能看清挑战所在并快速构建。
- 理解“简单”和“容易”的区别有助于开发更简单软件。
- 使数据类型防止无效状态可减少 bug。
- 测试性和模块化相关,函数式编程更易做好。
- 多种文档方式如明确文档、好名字等。
- 避免使用否定形式的变量以避免混淆。
- 枚举比布尔更清晰可扩展。
- 利用“Learn X in Y minutes”快速学习语言。
- 不必过度纠结 HTTP 状态码细节。
- 先使用已有工具再考虑新工具。
- 调整设置虽有趣但收益有限。
- 孤独开发者的项目后期维护困难。
- 简单观点往往错误,要理解权衡。
- 意识到事情比预期复杂,不轻视他人工作。
- 最重要的是解决非技术问题,如帮助他人、团队健康等。
- 编写新代码相对容易,更大挑战在阅读代码等方面。
- 做无用东西可学习新事物,要为正确的人构建。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。