程序设计的50条感想

1、敏捷开发——在一个高度协作的环境中,不断地使用反馈进行自我调整和完善

2、阅读代码的频率越高越好

3、使用单元测试

4、迭代和增量式的学习

5、跟踪技术变化——你不需要精通所有技术,但需要清楚知道行业的方向,从而规划你的项目和职业生涯

6、CRCC即类—职责—协作—的设计方法

7、不要在前期做大量的设计

8、不需要开发你能下载到的东西

9、防止提交破坏系统的代码——(1)在本地运行测试;(2)检出最新代码;(3)提交代码

10、保证你的系统随时可以编译、运行、测试并立即部署

11、增量开发——发布带有最小却可用功能块的产品,每个增量开发中,使用1~4周左右的迭代周期

12、确保测试是可重复的;测试你的边界条件;不要放过任何一个失败的测试。

13、TDD测试驱动开发——编程之前先写测试,测试失败要么是因为测试的方法不存在,要么是因为方法的逻辑还不足以让测试通过

14、任何一个设计都可以被改进

15、不同的环境就有不同的问题

16、硬件比开发人员的时间便宜

17、关键业务逻辑必须要独立进行严格的测试

18、FIT——集成测试框架

19、专注于你的方向

20、编写内聚的代码

21、PIE原则——代码应该意图清晰,表达明确

22、对于类中的每个方法,说明目的、需求(前置条件)、承诺(后置条件)、异常

23、没有最佳解决方案(动态评估权衡)

24、增量式编程可以精炼并结构化你的代码

25、内聚性——用来评估一个组件(包、模块或配件)中成员的功能相关性,如果一个类的方法和属性共同完成了一个功能(或一系列紧密相关的功能),这个类是内聚的

26、让类的功能尽量集中,让组件尽量小

27、将命令与查询分离开来

28、面向过程的代码取得信息,然后做出决策;面向对象的代码让别的对象去做事情

29、相对基类的对应方法,派生类服务(方法)应该不要求更多,不承诺更少,要可以进行自由的替换

30、针对is-a关系使用继承,针对has-a或use-a关系使用委托

31、通过替换遵循接口契约的类,来添加并改进功能特性,要多使用委托而不是继承

32、维护一个问题及其解决方案的日志

33、将警告视为错误

34、用原型进行分离

35、在解决问题时,要将问题域与其周边隔离开,特别是在大型应用中

36、处理或是向上传播所有的异常

37、当问题发生时,可以详细研究问题的细节描述和发生上下文

38、绝不要提交尚未完成的代码

39、经验是通过实施了某项技术促进了思维的改变

40、代码,一次编写,多次阅读

41、重构应该越少越好

42、写文档的过程比文档本身更重要

43、软件设计需要取舍和权衡,如时间换空间,空间换时间,TCP或UDP,同步或异步,数据冗余还是不冗余

44、50%-70%的时间来思考,尝试和权衡各种设计和实现;30%-50%的时间来编码,调试和测试

45、内政就是程序的处理流程,数据加工算法,并发控制;外交就是网络通信,I/O,数据库访问,以及通过各种协议和其他系统进行交互

46、代码是文档的最终形式

47、重构部分代码

48、TDD、迭代、原型,只关注功能性需求,其不会关注性能问题,高可用性问题,系统维护问题(模块的耦合问题)

49、考虑——需求和未来可能的变化;调查一下实现的技术难点和细节;讨论并推敲一下架构和设计;思考设计上的缺陷

50、模板是重用代码的利器

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值