核心
- 01:面对问题时,用思考框架问问自己,现状、目标和路径。
1
2
3Where are we?(我们现在在哪?)
Where are we going?(我们要到哪儿去?)
How can we get there?(我们如何到达那里?) - 02:遇到事情,倒着想。
- 03:在做任何事之前,先定义完成的标准。
- 04:在做任何需求或任务之前,先定好验收标准。
- 05:尽早提交代码去集成。
- 06:默认所有需求都不做,直到弄清楚为什么要做这件事。
- 07:扩大自己工作的上下文,别把自己局限在一个“程序员”的角色上。
- 08:在动手做一件事之前,先推演一番。
- 09:问一下自己,我的工作是不是可以用数字衡量。
- 10:设计你的迭代0清单,给自己的项目做体检。
- 11:动手做一个工作之前,请先对它进行任务分解。
- 12:多写单元测试。
- 13:我们应该编写可测的代码。
- 14:将任务拆小,越小越好。
- 15:按照完整实现一个需求的顺序去安排分解出来的任务。
- 16:要想写好测试,就要写简单的测试。
- 17:想要管理好需求,先把需求拆小。
- 18:尽量做最重要的事。
- 19:做好产品开发,最可行的方式是采用 MVP(最小可行产品)。
- 20:通过沟通反馈,不断升级自己的编解码能力。
- 21:用业务的语言写代码。
- 22:多面对面沟通,少开会。
1
2
3我昨天做了什么?
我今天打算做什么?
我在过程中遇到了什么问题,需要请求帮助。 - 23:多尝试用可视化的方式进行沟通。
- 24:做好持续集成的关键在于,快速反馈。
- 25:定期复盘,找准问题根因,不断改善。
- 26:多走近用户。
- 27:事情往前做,有问题尽早暴露。
- 28:多输出,让知识更有结构。
- 29:请谨慎地将工作自动化。
- 30:将你的工作过程自动化。
- 31:有体系地学习运维知识。
- 32:将部署纳入开发的考量。
- 33:将验收测试自动化。
- 34:把函数写短。
- 35:构建好你的领域模型。
1
2
3
4
5
6
7万维钢有期节目里提到芯片设计时讲到了分层以及模型的概念。分层或模型,实质是因为人的认知能力有
限不得已而为之的。学习计算机,我们都知道晶体管,即便早就忘了它的原理。实际上晶体管涉及非常深
奥的物理学知识,这是绝大多数人一辈子都不需要了解的物理学。抛开复杂艰深的物理学,晶体管的本质
却很简单,它就是一个包含通和不通两个状态的开关,这就是它构建的模型。
在开关的模型基础之上,信息论的创立者香农用一篇硕士论文构建了逻辑门这层。他证明了可以用最简单
的开关,实现所有逻辑运算。
逻辑运算层次之上,就是我们所知道的CPU模型。再往上,就是我们所熟悉的信息世界 - 36:用简单技术解决问题,直到问题变复杂。
1
2
3
4一方面,有人会因为对业务量级理解不足,盲目低估其他人系统的复杂度;另一方面,也有人会盲目应用技
术,给系统引入不必要的复杂度,让自己陷入泥潭。
作为拥有技术能力的程序员,我们都非常在意个人技术能力的提升,但却对在什么样情形下,什么样的技术
更加适用考虑得不够。采用恰当的技术,解决当前的问题,是每个程序员都应该仔细考虑的问题。 - 37:学习领域驱动设计。
- 38:了解一个项目,从大图景开始。
- 39:小步改造遗留系统,不要回到老路上。
1
2
3
4构建测试防护网,保证新老模块功能一致;
分成小块,逐步替换;
构建好领域模型;
寻找行业中关于系统构建的最新理解。 - 40:在学习区工作和成长。
1
2
3
4
5从目前的发展来看,IT 行业依然是一个非常有前景的行业,但想在这条路上走好,需要我们成为 “T ”型
人才,也就是“一专多能”。一专多能的前提是“一专”,让自己成为某个方面的专家。这个专家要放在行
业的标准去看,这才能降低因为一个公司的波动而造成的影响。
成为行业专家,要向行业的大师学习,给自己定下一个高的目标,然后是脚踏实地,找适合自己的问题去解
决,让自己一直在学习区成长。
答疑解惑
单元测试做不好,是否会影响到 CI 的效果?
1 | CI 作为一个单独的实践,本身是很简单的,但它可以成为提纲挈领的主线,帮助团队不断改善自己 |