本周我开始阅读Robert C. Martin所著的《代码整洁之道》一书,希望能从中收获高效编写代码的诀窍,因为我自认为我的代码有时候比较糟糕,不太容易维护。一方面,是我没有养成良好的编程习惯;另一方面,我不太清楚什么才是真正整洁的代码。下面是我本周阅读的心得,与大家分享一下,希望能给志同道合的人以启迪。
糟糕的代码
本书中介绍了20世纪80年代末的一个公司倒闭的原因,起初,那家公司写出了一个很流行的杀手应用,以至于许多专业人士都前去购买,但是,就因为他们急着推出产品,而把代码写得乱七八糟,最后再也没办法管理他们的代码,用户数量也就日益减少,最后这家公司就关门大吉了。
看完了这个故事,我产生了深深的恐惧感,代码写得糟糕竟然会产生这么严重的后果,回想自己原来编程时的恶习,我就倒吸一口冷气。我记得在刚刚开始学编程时,老师曾经告诉我们初学者就要尽量给自己的代码写注释,这样写出来的代码的可读性比较高,而且在代码出bug时,可以较为方便的找到bug的所在。但是,我觉得写注释太麻烦了,所以经常省略这一环节,结果就是当代码出问题时,我就只能从头开始找bug,投入大量的时间才能真正解决问题。更严重的是,我一旦长时间没有接触自己的代码,就会遗忘自己的思路,以至于看不懂自己的代码......
想到这里,我决定以后要努力改掉这一个坏毛病,否则虽然在写代码时虽然可以节省较多的时间,但是代码一旦出了问题,我所需要的时间往往是成倍的。现在 我们毕竟还是学习为主,所以很少需要维护自己的代码,但是将来一旦走上工作岗位,维护自己的代码将会变成家常便饭,因此,写下注释有助于快速理解自己的编程思路,这会让自己成为一个高效的程序员,将更多的时间投入到开发新产品上,而不是永无止境的debug上。
当然,代码的好坏也不是仅仅由是否写了注释来进行判断,更重要的是代码的逻辑需要直截了当,尽量减少依赖关系,使之便于维护。这就需要程序员在编写程序时拥有清晰的头脑,对所需要解决的问题使用最简洁的算法进行处理。在这些方面,我还有好多东西需要学习。
童子军军规
这是书中很有意思的一个点,虽然作者只用了寥寥几笔就交代完了这一部分内容,但是我感觉还是让我有所思考的。
美国童子军有这样一条军规——让营地比你来时更加干净。
许许多多的团队在将一个项目搞砸之后,往往是想从头开始,因为一个空白的项目看上去无比干净,对于这些团队来说,他们可以用这个空白的项目做很多不同的设计。但是,即使他们利用这个从头开始的机会能够取得成功,也已经浪费了大把的时间和经历。那么,为什么这些团队在一开始时就能注重代码是否糟糕的问题,并且一边开展新的方向,一边优化原有的代码呢?这样即使的解决问题,就不会出现压垮骆驼的最后一根稻草。
对于自身而言,我将来在进行团队项目时,也要注意这些问题,取好每一个变量名,拆分有些比较长的函数,不断消除重复的代码,清理一些嵌套的if语句,甚至是采取更加合适的数据结构或者算法,不断地是我的代码变得整洁,成为易维护,可读性高的优质代码。