结对编程大法好
长时间独立开发让人容易进入心流,也容易走向习惯性思维的误区。
想起过去创业的时候,总是一个人写代码,自测,merge代码,分布上线,反馈之后再调整。整个过程全靠自己去思考并完成,在一些不复杂的情形下算是最简最快的方案。但当自己融入到一个大的团队和项目中,合作分工成为了主流,而不是单打独斗。
最近做的一个新项目,我和B大哥一起协作开发,学习了很多不错的思路,收获很大。
- 自测出所有可能性
自测非常重要,无数次提测之后发现bug的惨痛经历,必须警醒我们认真对待TC和自测。在一个成熟工作流的公司里面,如果把bug控制在自测阶段,对研发团队来说是成本最小的。而且没有bug,也应该是每一个成熟工程师最基本的要求。
2. 多次优化比一步到位更好
我的经验是:做好规划,进行技术设计讨论,形成方案。先实现这个方案,在过程中交叉审查代码,如果有更好的实现方式可以公开讨论,再选择调整。实现是最优先,好的算法往往都不是一次性写好的,而是多次迭代的结果。
3. 做一个可以拿主意的人
如果是做需求确定的功能都还能找产品经理,但遇到需求比较模糊的,那么就需要工程师根据经验去实现一版看看效果。很多人是很难拿定主意的,做决定是要背责任的,也是需要综合考虑的。我想说的不光是做技术,做任何事情都需要拿主意。小到明天中午吃什么,大到世界该怎么发展。我们最终都要拿主意,做一个勇敢坚毅的人。
4. 承认局限,接受新观点
在某个领域钻研时间越长,多多少少会带一些惯性思维和所谓直觉。当我们遇到一些特殊的问题的时候,这些经验可能变成了一叶障目。保持谦虚,承认自己看到的也是局限的,多听听别人的建议,集思广益,也许能发现新大陆。
5. 多思考扩展性
作为一个优秀的工程师,需要更多去思考一个功能(或者系统模块)的扩展性,不能只是简单的实现功能本身。因为功能和系统都是快速发展的,不要让代码过于耦合,好的实现是能拥抱变化的。
6. 不死磕,尽快结对
给自己足够独立思考时间后,如果还是得不到一个解决办法,赶紧结对研究吧。死磕是对时间的浪费,看起来很伟大,其实是思维上的懒惰。
行动起来吧,少年们!