七月总结

关于 代码重构和测试

  1. 当需要为程序添加一个功能,而代码的现有结构无法很方便地达到目的,那就先重构那个程序,使功能的添加比较容易进行,然后再添加那个功能。

  2. 重构前,先检查自己是否有一个可以依靠的测试机制。即有较完善的自测规范、测试用例和覆盖率较高的单元测试。

  3. 重构的每个步伐要尽量小,如果犯下错误,容易发现,必要时也便于roll back代码。

  4. 注意代码的可读性。

  5. 重构:对软件内部结构的一种调整,目的是在不改变软件外在表现的前提下,提高代码的可读性,可理解程度,降低维护和修改成本。

  6. 数不过三,三则重构。当项目中多次出现重复代码时就要考虑怎么提取和重构这些模块了。

  7. 接口的设计要考虑清楚,要兼顾稳定和扩展性,不要过早发布接口。谨慎修改代码的各种规范,使重构的过程更加顺畅,不要进行到了一半再折回来修改以前的代码。

  8. 当需要撰写注释时,先尝试重构代码使注释显得多余。

  9. 确保所有测试都完全自动化,让它们检查自己的测试结果。简而言之,即编写尽可能完善的单元测试。

  10. 一套测试就是一个强大的bug检测器,能够大大缩减查找bug所需要的时间。

  11. 频繁地进行测试。每次测试请把测试也考虑进去--每天至少执行测试一次。

  12. 每当收到bug报告,可以考虑先写一个单元测试来暴露这个bug。

  13. 编写未臻完善的测试并实际运行,好过对完美测试的无尽等待。

  14. 考虑可能出错的边界条件,把测试火力集中在那儿。实际编码中,经常有80%的代码用于处理占所有测试用例20%的边界条件。

  15. 在可预期的可能出错的地方,检查是否抛出了预期的异常。

  16. 不要因为测试无法捕获所有bug不就写测试,因为测试的确可以捕捉到到大多数bug。

关于程序员的学习技能

  1. 一个程序员在工作中用到的基本技术:

    • 单元测试
    • 功能测试
    • 源码管理
    • 持续集成
    • MVC框架
    • ...

    刚开始的时候需要认真的一点点学,确实比较慢,但是学的越多,站的就越高,眼界就越宽,在学习编程的道路上就像有了加速度,越跑越快

关于需求分析的步骤

1)什么人会使用这个系统?

2)不同的人将会使用这个系统的什么功能?

3)还有哪些不确定或不具体的需求点?

4)哪些需求对技术提出了怎样的要求?

5)系统的大致架构应该如何考虑?

具体分析详述见 张传波先生的博客

一个优秀的设计应该具备的特点

1)优秀的设计都是需求驱动的,不熟悉需求就做出来的设计是不靠谱的.

2)优秀的设计应该是当前团队能理解能实现的,太超前的设计项目团队做不出来,这个设计只能是摆设.

3)优秀的设计应充分考虑当前各种限制条件,适当做出平衡,能保证达成项目的目标.

4)优秀的设计能尽量降低项目的整体工作量,让整个项目更加可控.

每次开需评需要扪心自问的两个问题

1)这个项目的主要需求?

2)这些需求,设计上是如何考虑实现的?

个人对标管理

personal_goal_management.jpg

你可能感兴趣的:(七月总结)