个人理解的敏捷开发:
一个开发团队在开发的过程中需要应付不停变更的需求,而敏捷开发的宗旨就是迎合这些变更,敏捷开发就是为了快速变更而产生的一种开发理念。
在团队中开发,测试,产品,设计。都处于高效沟通的状态,及时的反馈信息,做到及时的变更,快速的迭代。
敏捷开发不同于传统的开发模式,不需要考虑没有发生的场景,不需要太多的预判。设计好当前的需求,开发,测试,上线。
当下个需求提出时,可能与当前的设计相违背,那么就需要丰富的经验去修改当前的设计,所以敏捷开发也需要大量的实战经验去实现。
敏捷开发就是不停的满足变更的需求,迎合需求去不停的修改设计,修改代码,开发出满足新需求的功能来。
区别于传统开发:
需求呈现的周期非常短,由于敏捷开发不需要预估大量的设计,单纯的为了需求做呈现,可以在极快速的周期内呈现出大致的需求效果。
敏捷开发的难点:
在项目的不停迭代的期间,会不停的去修改设计,去修改代码。这个时候如果没有一个良好的开发习惯,那么代码的茁壮性就会慢慢的在不停迭代的过程中变差。
敏捷开发不仅仅要应付新的需求,还要修改老的设计,当老的设计不满足或者不符合当前新的需求的时候,那么新需求开发和老代码优化这2个问题需要同时进行。
不然日积月累下代码中冗余的问题会慢慢积累,到最后代码的迭代将变得寸步难行!!!
发现代码中的腐臭味:
僵化代码:是指难以对软件进行改动,即便是简单的改动。如果单一的改动会导致有依赖的模块的连锁改动,那么这样的设计就是僵化的。如果牵连的模块越多,那么这样的设计越是僵化。
脆弱代码:是指在进行一个改动时,程序的许多地方就会出现问题,出现问题的地方和改动的地方并没有概念上的 关联,如果要修复这些问题那么又会引发新的问题的产生,这样会使得开发人员光是修复问题就会浪费大量的时间。所以在不停迭代需求的同事不停的优化老代码,不停的变更设计是敏捷开发的一个核心理念。
牢固代码:是指设计中对其他系统有用的代码,但是如果要将这些有用的部分分离出来,需要花费巨大的精力,可能还要伴随很大的风险。
不必要的复杂代码:即代码中不需要过分预估需求,导致一些设计过于的复杂。这些设计可能出发点是好的,但是结果可能恰恰相反,设计会因此变得复杂,混乱,难以开发。
不必要的重复代码:即指有些代码块只有稍许的不同,但是却被大量的复制粘贴,这样的重复代码会导致系统的维护变得十分困难,可能一处错误就需要全局的去修改所有类似的地方。党面临过这种情况是优先去考虑能否使用继承,封装去解决这种重复的代码。
晦涩代码:难以阅读,理解的代码。
如果在开发中发现以上的问题,那么需要及时的想办法去沟通解决。不然问题日积月累会导致项目以后寸步难行!!!