可撤销性
说的是编写代码、功能模块、组件时考虑将来会出现变化的情况,如果将来变化了,所写的代码是否可以随时撤销。打个比方项目早期用a数据库,发展一阶段可能要用b数据库、c数据库,要考虑可撤销性,不必做出许多关键的,不可逆转的决策,可以让我们应对一些突如其来的变化。
也就是要把决策视为是写在沙滩上的,而不要把它们刻在石头上。大浪随时可能到来,把它们抹去。灵活的架构:保持代码的灵活性考虑维持架构,部署及供应商集成等领域的灵活性。
曳光弹
首先先讲一下什么是曳光弹
曳光弹指的是一种装有能发光的化学药剂的炮弹或枪弹,发射后在黑夜中能显示子弹的轨迹。曳光弹可以及时反馈子弹轨道,距离目标还有多远,轨道如何。
将曳光弹运用到软件开发当中就是曳光代码。简单来讲,曳光代码的关键就是反馈结果,可让程序员看到目前做出来的东西距离目标还差多少。
使用曳光弹找到目标
现在的很多产品架构都比较复杂,有大量的外部依赖,需要诸多工具。因而,使用曳光弹能通过试验各种事物并检查它们离目标有多远来让你追踪目标。
比如做一个商城,只需一个简单的登录界面,让用户可以成功登录,且找到商品成功购买。哪怕目前的产品列表中就只有一个商品,但是系统可以真实调用。这就是曳光弹,开发人员只要后续在这个基础上完善就好。
曳光弹并非总能击中目标
曳光弹击中的不一定总是目标,曳光代码也是一样。在击不中目标的情况下,曳光代码也可以帮助我们在反馈中调整方向,最终接近目标。具体可以参考以下步骤调整:
1弄清楚目前和目标的差距;
2思考用什么方式可以更好的接近目标;
3如何修改已经做好的东西。
面对调整,小块代码更迭速度快、成本低。我们可以根据收集到的产品反馈快速更迭形成一个新的更精准的版本重新投入市场。以此不断重复,最终触达目标。
曳光代码的优点
1用户能及早看到能工作的东西,可以及时得到市场反馈,以便更好的改进;
2开发者打通了应用程序的所有层面,构建了一个团队能在其中工作的结构,以此增加团队信心和生产力;
3有了一个集成平台,便是有了一个环境,做完单元测试后把代码加进来做持续集成,调试和测试会更快更精准;
4项目可随时对外演示。无论是项目赞助商或团队高层,什么时候想看项目演示都可以;
5更易于了解项目进展,循序渐进的去解决每一个任务。