1、兵马未动,粮草先行

所谓兵马未动,粮草先行,就是讲做一件事之前一定要做够充分的准备工作。而很多程序员犯得大忌和表现形式就是:原型需求和整个产品的业务逻辑都没有搞明白之前,就开始动手了。边做边开始捋需求,对于前端程序员来讲,这还好说一点,但是对于后端的程序员来说,真的是大忌了。因为架构的设计,数据库的设计都是要依据这个产品的业务逻辑来实现的。

这里讲的编程王道,唯「慢」不破,指的是前期一定要花大量的时间来搞明白产品的需求和业务逻辑,不要着急动手去做代码的实现。

我感觉作为一个程序员来讲,在正式敲代码实现之前,搞明白产品需求和业务逻辑到确定数据库的设计和架构的设计,至少得占这个项目所有时间的 1/3 左右才合适,甚至有的难度大的 ERP 式的系统,占到一半时间也有可能。只要这些确定都想通了,剩下的就是噼里啪啦的敲代码了。

之前,有个朋友开玩笑的说:

我看你们程序员敲代码都喜欢使用机械键盘,噼里啪啦的敲代码的声音很大,感觉你们是在做体力活似的。
我想说:我们其实喜欢的是噼里啪啦敲代码的那种感觉,键盘的敲击声能够给人带来一种爽感。但是我们程序员最动脑的工作其实就是前期的准备工作,是设计的思考,后期确实就跟体力活也差不多。

2、编程中慢在细节,快在编码

兵马未动,粮草都已经先行了,前期我们准备工作都做好了,剩下的就是敲代码了。虽然在编码的过程中确实很快,但是也要注意一些细节。

很多程序员编码习惯的问题,或者是为了追求速度的问题,导致在一些该注意细节的地方没有注意到。比如编程的大忌和表现形式就是:后台程序员逻辑判断考虑不周全,有的甚至不写,直到测试测试出来,才会写;而前端程序员不注意细节的体验问题,出现错误不弹窗处理,不告知用户,有些该提示的地方,不给用户提示,不是不知道,就是懒得写。

快在编码不假,但是要慢在细节。后端程序员一定要把逻辑判断想周全,前端程序员一定要注意用户体验。这都是经验。

3、编程大忌:不要抱有先实现,后完善的幻想

有很多程序员都有这样的借口,项目比较着急,我先实现这个功能,能用就行,后期我再回来完善就行。后台程序员可能会想,这个接口先写完,给前端用着,一些判断不先加,等 过后我统一回来完善。前端程序员想这个弹框不先写,等做完了,再一一加上。项目太急了,先做完再说。

这样能叫做完吗?编程的大忌,这是大忌。不要抱有先实现后完善的幻想。敲代码最重要的就是「一步到位」。

你告诉我:有多少程序员能有时间回来完善和重构的?你这样想了,后期不出 bug 或者测试不提,你可能都忘了,都可能记不起来这件事了。因为你可能在你心中永远都认为你在忙。

再者,一个程序员最讨厌的一件事是什么?修改代码,不管是修改你自己的,还是修改别人的。回来修改代码的时间是极大的浪费,以为你要在你写的忙忙代码中找到你当时写的不好的地方,完善它。你找代码的过程是非常浪费时间的。

有多少人能够回来完善?又有多少人会重构代码?反问一下自己。

总结

说完这些之后,我们再来算一下时间成本,为什么慢就是快呢?因为如果你前期花足了时间准备和设计,在编程的时候,又尽量完善的注意到了细节,你项目最终完成的时候,bug 就会少很多,就可以及时交付。如果你认为先实现,后完善,你项目交付测试的时候,bug 会很多,很多,你修改 bug 的时间绝对会大量的浪费时间,最后很容易导致项目不能按时完成和交付。

很多人算不过这个成本,慢就是快,看似你的快,其实并不是快,是伪快。所以,作为一个程序员切勿犯到上面提到的编程大忌。这是一个编程习惯和风格养成的问题。如果有一个好的变成习惯,你将会受益终生。

最后,编程王道,唯「慢」不破。

转载自 编程王道,唯「慢」不破

Q.E.D.


Remain true to our original aspiration.