2019年/10月/29日
把三十年功力传给你
羡慕无崖子脑袋顶着脑袋把几十年的功力传输给虚竹吗?虚竹是被动接收的,现在有个老外想把三十年的功力传给你,做好准备,你需要主动接收,哈哈
关于软件开发
- 用批注的方式把实现步骤写下来
- 用好 Gherkin
- 单元测试还不够,最好还要有集成测试
- 测试让 API 变得更健壮
- 通过命令行运行测试用例
- 做好丢弃代码的准备
- 好的编程语言自带测试框架
- 想得太长远是一种浪费
- 写文档其实是在善待未来的你
- 如果一个函数文档里出现了“and”逻辑,那就一定有问题
- 不要将布尔类型作为参数
- 在修改接口时要小心
- 好的编程语言自带集成文档
- 在选择编程语言时,不要只看语言本身
- 有时候,让程序奔溃比什么都不做更好
- 如果你知道怎么处理异常,那就处理好它
- 类型系统会告诉你数据长什么样子
- 如果数据是有模式的,那就用合适的结构来保持数据的模式
- 停止盲目跟风
- “正确的工具”可能只是个人喜好
- “正确的工具”不一定是正确的
- 不要去修改项目以外的东
- 数据流胜过设计模式
- 设计模式是用来描述解决方案的,而不是用来寻找解决方案的
- 学会基本的函数式编程
- 认知成本是代码可读性杀手
- 魔术数 7
- 捷径虽好,但好处是短暂的
- 抵制“简单”的诱惑
- 给日期带上时区
- 总是使用 UTF-8
- 极简主义
- 日志用于记录事件,不需要展现给用户
- 调试器被过度高估了
- 一定要使用版本控制系统
- 一个变更对应一个提交
- 如果代码改过头了,可以使用“git add -p”
- 按照数据或类型来组织代码,而不是功能
- 创建公共库
- 学会使用监控
- 命令行选项很有用
- 不只有函数组合,我们还有程序组合
- 程序组合也可以从简单的开始
- 把代码优化工作留给编译器
- 延迟求值
关于团队协作
- 代码评审不是为了检查代码风格
- 代码格式化工具不能解决所有问题
- 遵循代码风格
- C/C++ 只有一种代码风格:K&R
- Python 只有一种代码风格:PEP8
- 显式胜于隐式
- 通才的职业生命线比专才长
- 把“花了一个小时以上才解决的愚蠢错误”记录下来
关于个人
- 如果累了,就要停下来休息
- 学会说不
- 你要对自己的代码负责
- 成长过程很艰辛
- 从麻烦中学习
- 注意别人的反应
- 远离“有毒”的人
- 你总是要经历“英雄项目”
- 不要把“英雄项目”和“英雄综合症”混淆起来了
- 什么时候可以考虑离职?
- IT 这个圈子真的很小
- 便利贴真的很有用
- 在博客上分享想法比保持安静更好
- 把评论功能关掉
- 把你不知道的东西记到清单里
还有一篇 原文
- 遵循单一责任原
- 最小化共享状态
- 本地化副作用
- 优先选择不可变的对象
- 多用接口少用类
- 对模块应用良好的原则
- 避免继承
- 同设计和开发一样进行测试
- 优先选择而不是手写标准库
- 避免写新代码
编程就好比是一种艺术形式或者一项运动,你只有通过不断地练习,
不断地向他人学习,才能不断地提高代码的质量,这些都将有利于你成为更加高效的程序员