整洁编程

偶有闲暇,即翻看"代码整洁之道",从中获得不少收益。有很多内容还没看明白,也有很多内容正在尝试着做。现列举一些比较简单实用的。
        1. 有意义的命名。这个大家都明白,有意义的命名,一眼就能看出来是干什么用的,比写好几行注释都管用,没人想去细看你的注释。包括类名、函数名、变量名,一个都不能少,也不要太长了。
        2. 简练的函数。函数要短小,这样才容易读。一个函数只做一件事,多的事让另一个函数做,这样层次更清晰,但一个函数里包含太多太多内容的例子比比皆是。参数数量尽可能少,越多的话变得越难理解,可复用性就变差了。不要重复自己,没人愿意在一个类里看到两段一样的代码。
        3. 写好的注释。注释不能美化糟糕的代码,用代码来阐述。再好的代码,也不见得别人就能理解,所以还是需要必要的注释。但必须是能清晰地说明其功能的,模里两可的内容是嫌事情还不够糟吗?
        4. 良好的格式。像报纸学习,从上到下阅读,都是非常轻松愉快的。"让代码能工作",这只是最基本的,不要以为写完了就万事大吉了,很多时候其他人要来读、要来改的,将心比心吧,都不容易。
        5. 对象和数据结构。什么时候封装,什么时候暴露,这个我也不太明白。外部函数调用私有变量,只因为需要用到,而不去考察是否恰当,习惯了省事,这些都需要改善。
        6. 错误处理。自定义异常处理类,别返回null值,别传递null值。经常看到方法中有判定if name == nil then ... end,真是糟糕透了,那是因为报错才加上去的,还有if tonumber(id) == 1 then ... end,这是因为id传的是字符串,够恼火的。
        7. 边界处理。协同工作时,你关心的就是他提供给你什么,一个个接口,务必简洁易用。
        8. 单元测试。保持测试整洁,测试代码和生产代码一样重要,测试带来一切好处。理想情况下每天编写十个测试,一个月编写数百个测试,这够恐怖的。最近在项目中写了部分测试用例,还不完善,但能感受其中的魅力,带来一定效率的提升的。
        9. 短小的类。谁都不喜欢臃肿冗余,庞然大物,望而生畏,还未开始就已惧怕三分,怎么继续做下去。
        10. 将系统的构造和使用分开。这个不难理解,构造和使用是非常不一样的过程,我们要做的就是将他们分离。测试驱动系统架构的搭建,这是一个难题,项目之初,这是一个空缺。
        11. 跌进。这个太难了,简单设计的规则:运行所有测试、不可重复、表达了程序员的意图、尽可能减少类和方法的数量。需要递增式的重构代码,测试消除了对清理代码就会破坏代码的恐惧,我想说的是你就编吧。重构代码是我最不愿触及的领域,11年的一个项目重构了3次,今年的一个项目重构过1次,相当辛苦,相当恐惧,尽管如此,但还是必须承认,有必要做。
        12. 并发编程。并发是一种解耦策略,解耦目的与时机能明显地改进应用程序的吞吐量和结构。这部分的编程非常难,我目前尚未理解透彻。


        先写到这里,一边写就像在一边回忆,做了很多事,还有更多的事等着做......

你可能感兴趣的:(学习笔记)