写代码的正确姿势
自年初以来,陆续看了设计模式和代码重构相关的一些书籍,学写到了一些来自西方的先进姿势。本人在运用这些姿势改进旧代码的同时,也在新代码的编写中刻意使用这些姿势。明显感觉到修改代码更容易了,代码结构更好了,bug数量也减少了。再加上近日又看了《代码整洁之道》,感觉总结一下我在运用这些姿势方面的经验还是十分有必要的。
首先是四个大的方面,分为抽象、封装、层次结构和模块化。抽象和封装也是我们熟知的面向对象的三大特性的其中两个。日常开发,对一个对象进行抽象,封装好它的属性和方法。另外,对一个功能进行模块和层次结构的划分,更好的管理代码工程。
- 代码规范。无论对个人和团队来说,一套合适统一的代码规范是必需的。类和方法的命名,单行长度,空格的使用等等。
- 注释。尽量通过类和方法的命名去提现代码的功能,因为注释有时候不能得到及时的更新,就容易误导别人。
- 函数的长度。 函数的长度要尽量短,一个函数只完成一个功能。
- switch函数要考虑能不能通过工厂方法包装起来!(这一点我自己做的不够好。)
- DRT,不要重复你自己。一个工程中,不要出现重复代码。如果有重复代码,修改代码的时候只修改了一处忘记了其它的就容易出bug。对于那些重复代码,可以封装成函数模块,调用的时候也更加方便。有些代码片段,可以用Dash来管理,配合Alfred使用,也利于提高工作效率。对于iOSer,有些代码可以封装成CocoaPods库,利人利己。
- 单元测试。日常开发,单元测试可以减少我们的bug率,提高自己的形象:)。同时重构代码的时候,也能更放心大胆的重构代码。更进一步,可以采用TDD进行开发,目前本人还没有使用过!测试有几个点需要注意,“不要忽略小测试,注意边界条件,同时测试应该快速”。
代码写完以后,我们可以从以下几个方面去评价以下自己的代码
- 可理解性
- 可修改性
- 可扩展性
- 可重用性
- 可靠性
写好自己的代码,利人利己。对维护的人更容易看懂,修改更方便,也不容易把自己的代码弄糟。还记得当初看着前辈的代码,被我一改,就变得不那么好了。当然,经过自己的努力,现在变成了部分同事改完我的代码,我的代码就变坏了。这也从侧面说明自己的能力较当初已经取得了进步!
最后,也许我们刚开始的代码写的不好,这是正常的。只要我们能够牢记前辈们总结好的经验教训持续改进自己的代码,就一定能够越来越好!