今天给大家翻译一篇由大名鼎鼎*创始人写的:关于如何改善代码的12点建议。下面我们就来领略一下大牛见解。
一、Do you use source control?
源代码控制系统,说白了就是我们常用的SVN和Git。他们的重要性,博主就不多介绍了。想象一下,没有源代码控制系统,整个团队会发生事情:版本没办法控制、没办法回滚版本、没办法合并别人的代码,没办法查看冲突点,想想简直就是一场噩梦。
二、Can you make a build in one step?
代码开发完毕之后,需要部署到指定环境中,如果整个部署过程有非常多的步骤,都需要人为控制,这会消耗开发大量的精力,甚至会让他们感到烦躁。构建步骤越多,犯错误的几率就越大,所以我们需要具备一步构建的能力。
三、Do you make daily builds?
是否有进行每日构建?这个建议核心目的是为了防止开发提交错误代码或者代码提交不全,导致项目构建失败。如果每次提交代码之后,可以快速进行构建,就可以将构建结果反馈给开发人员,这样就不会耽误整个团队的进度了。
四、Do you have a bug database?
第四点相对小团队开发而言,可能不会去做,简单的来说就是将每次出现的bug,进行详细的记录并插入到数据库中,后面就可以对bug进行跟踪统计。
五、Do you fix bugs before writing new code?
这一点作者花了很大的篇幅来介绍,举了一个他在Windows工作的经历,因为需要紧急开发一个版本,然后出现bug的时候就放着,先开发需求去,导致开发需求的时候又出现新的bug,一直恶性循环。所以良好的方式应该是只要出现bug,第一时间就要进行修复,然后再进行功能开发。
例如竞争对手迭代了一个功能,抢走了你们公司大量的客户咨资源,这个时候你想快速迭代这个功能到版本中,进行紧急的版本发布,但是因为版本中存在大量的bug,导致没办法快速发布迭代,所以如果有bug,一定要在开发功能之前修复。
六、Do you have an up-to-date schedule?
你是否有最近的日程安排,作为程序猿,我们最喜欢的就是代码,如果没有外力作用的情况下,大多数不会制定未来的日程计划。但是站在公司商业角度,必须知道开发的最近的工作是什么,每天做什么事情,大概什么时候可以做完。这样既可以掌控全局进度,也可以督促程序猿高效的完成任务,而不是在摸鱼。。。
七、Do you have a spec?
第七点作者也是相当的重视,可能是实际遇到太多这样的问题,所以反复强调它的作用。在开发之前一定要有一个详细的文档说明,就比如我们中国软件项目开发流程,需要有类图、时序图、用例图、架构图、需求分析、部署图等等之类的文档说明,才可以进行具体的代码开发。
如果没开发代码之前,文档出现问题很容易修改,修改几个图或者描述就可以了,但是如果没有文档,后面发现问题,修改代码的话,那成本就非常大了。
八、Do programmers have quiet working conditions?
第八点作者也进行了着重的介绍,需要给程序猿提供一个良好的公办环境。要知道人集中精力进入到某种高效的状态中是很难的事情,可能需要十几分钟甚至个把小时,才会进入这个状态,但是退出这个状态却很容易,可能同事的一个问题就足够了。
这可能也是为什么大公司,那种顶尖的开发团队,公司办公环境特别好的原因。你想想要是开发和销售是在同一个房间中,天天在耳边打电话,我想别说集中注意力了,正常工作估计都很难完成,效率会严重折扣。
九、Do you use the best tools money can buy?
你能忍受电脑特别垃圾,运行一个服务得等几分钟的场面嘛,我想那个时候你可能会找小说或者找朋友唠嗑,很久之后才会回到电脑上面看是否执行完了。开发人员的工具是非常重要的,小到影响开发效率,大到影响工作情绪。
如果能用酷炫的开发设备来留住程序猿,何乐而不为呢?
十、Do you have testers?
这一点相比大部分公司应该都具备,团队当中是否有测试人员。专业的事情就应该交给专业的人来做,以前可能开发就是全栈,测试、开发、前端都一个人搞了,但是这样的人并不多,大多数人还是都某种技能比较擅长,没办法做到全栈。
作者给我们举了一个很有意思的例子,开发每天1000,测试每天300,你舍得拿1000工资的人去干300的事情嘛?
十一、Do new candidates write code during their interview?
面试的时候是否让候选人手敲代码?很多大公司都会对这一项进行考察,比如在线编程解决实际的算法题之类的,一方面是考察程序猿逻辑思维能力,另一方面就是考察实际开发能力。
外国人有时候很幽默,文章中举了一个让人哭笑不得的例子,你结婚的时候会找一个都没有承接过婚姻的酒店来作为婚礼现场嘛,其实核心就是不想找一个只会背面试题,没有实际工作经验的人加入团队中来。
十二、Do you do hallway usability testing?
最后一点大家可能比较陌生,博主看的时候也是一脸蒙蔽,特别震惊。简单的意会就是:你开发完一个功能之后,自己测试一遍之后,去hallway上面拉一个人过来接着检查,如果能连续拉5个以上的开发检查,没有发现任何问题,那这个功能就基本不会有什么大毛病。
感觉在中国这点比较难实现,毕竟没有几个人愿意,坐下来认认真真的看你代码。
大佬的文采比我好多了,英语不够给力,可能没办法表达出作者的精髓,有兴趣的同学可以阅读原文。
原文链接: https://www.joelonsoftware.com/2000/08/09/the-joel-test-12-steps-to-better-code/
-----------------------
公众号:林老师带你学编程
网站:www.wolzq.com
代码无非增删改查,关注老师给你Coding
林老师带你学编程:http://www.wolzq.com