读《敏捷软件开发》这本书主要是因为本公司现在的模式很像scrum过程,当然尚处于手工作坊阶段,但是我相信进化方向总该是朝着这个方向去的。

         说实话,我总感觉敏捷对于开发人员的要求是比较高的,至少我认为我现在还不足以在敏捷的环境中工作,我虽然反对--如果软件还能够运行,就保持它不动--但是实际上都是这么做的。没办法评估重构引发的时间消耗和功能影响,所以大多数时候是选择不动,虽然代码越来越臭。

         昨天基本读完第一部分:敏捷开发,主要是一些理论性东西和极限编程,但我觉得现在比较多的应该是scrum过程,所以大体只是大体浏览了一遍,它主要还是以XP还说明敏捷实践的。

         今天读完chapter 7:什么是敏捷设计。首先指出了设计的臭味:

 

僵化性(rigidity):很难对系统进行改动,因为每个改动都会迫使许多对系统其他部分的其他改动
脆弱性(fragility):对系统的改动会导致系统中和改动的地方在概念上无关的许多地方出现问题
牢固性(immobility):很难解开系统的纠结,使之成为一些可在其他系统中重用的组件
粘滞性(Viscosity):做正确的事情比做错误的事情要困难
不必要的复杂性(needless complexity):设计中包含不具任何直接好处的基础结构
不必要的重复(needless repetition):设计中包含有重复的结构,而该重复的结构本可以使用单一的抽象进行统一
晦涩性(opacity):很难阅读、理解。没有很好的表现出意图
          相信很多人都有犯过上述的一些毛病,我前段时间还犯了不必要的重复这一条错误,但是迄今为止,那部分代码仍在起作用,暂时还没有去修改它的意向,好吧,懒惰应该是人之常情。

 

          当发生设计问题的时候,敏捷开发人员知道要做什么,是因为:

1.他们遵循敏捷实践去发现问题;

2.他们应用设计原则去诊断问题;并且

3.他们应用适当的设计模式去解决问题。

这段话我感触很大,我立刻就觉得我不是一个合格的程序员了,我不了解设计原则,记不得大部分的设计模式,ka