在开发过程当中便细心“照看”代码!!编程
1、代码要清晰的表达意图:性能
案例1 conffeeshop.PlaceOrder(2); 测试
以上代码,能够大体明白是要在咖啡店里下一个订单,可是参数2表明什么意思不清楚,那么咱们能够这么写spa
先定义一个枚举,如 public enum CoffeeCupSize { Small, Medium, Large } code
接下来,能够这样下单, coffeeshop.PlaceOrder(CoffeeCupSize.Large) ,这样咱们就能明白是要一个大杯咖啡了。blog
以上案例告诉咱们,要编写清晰的而不是讨巧的代码!继承
2、用代码沟通:接口
使用细心选择的、有意义的命名;开发
解释代码作了什么的注释用处不大,相反,注释要说明为何会这样写代码!class
3、动态评估取舍:
没有最佳的解决方案;
考虑性能、便利性、生产力、成本和上市时间;
即便不能面面俱到,也应该以为已经获得了最重要的东西--客户认为有价值的特性!
4、增量式编程:
采起增量式编程和测试,会倾向于建立更小的方法和更具内聚性的类;
重构代码,重构测试;
要休息的话就请远离键盘好好休息!
5、保持简单:
简单不是简陋;
简洁、优雅的代码,是易于理解和辨识的;
太过简单不等于简单,那样没法达到沟通的目的;
6、编写内聚的代码:
若是一个组件中的成员共同完成了一个功能特性或一组功能特性,那么这个组件就是内聚的;
让类的功能尽可能集中,让组件尽可能小;
须要高内聚、低耦合!
7、告知,不要询问:
将命令与查询分离开来;
8、根据契约进行替换:
保持系统灵活性的关键方式,是当新代码取代原有代码以后,其余已有的代码不会意识到任何差异;
通常状况下,若是新类能够替换已有的类,就要使用继承。若是新类只是使用已有的类,那么就用委托;
经过替换遵循接口契约的类,来添加并改进功能特性,要多使用委托而不是继承;
相对继承来讲,委托更加灵活,适应力也更强!