成长优化期:技术债务与演进
当项目经历了一两次上线后,项目进入一个稳定的上线交付阶段。…我们可以抽时间来解决各种各样的问题。
设计架构和完善业务阶段暴露的诸多问题。像技术准备期、业务回补期,我们或多或少会采取一些妥协方案
,为的是能加快速度开发流程。
这些问题,终究会随时间的推移和业务代码的堆砌变得越来越严峻。
一、偿还技术债
技术债包含的内容有如下几方面:
- 代码质量。
如:接口、函数的重复实现,实现方式或模式的不统一,未按规范实践的代码,未被检视过的代码。 - 测试覆盖率。
被抛弃的UI自动化测试
、单元测试
。 - 依赖问题。
大量的依赖过旧问题,会导致我们难以对代码进行重构。
与日常的业务代码编写相比,改进过去的二代码会带来更多的成长和技术挑战——我们更容易从错误的代码中学习,而不是从成功的经验中学习。
二、优化开发体验
日常工作中,有很多手动完成的工作,可以通过自动化来减少。
如:UI界面拖拽生成工具。
三、带来技术挑战
不论怎样的项目,技术人员都需要获得一定的能力增长。
在保证进度的情况下,也需要适当的带来一些成长的机会。
常见做法如:
- 引入新的技术栈
- 尝试使用新的框架
- 尝试一些小型的模拟项目,为以后的架构演进做准备;跟进主流技术的发展。
四、架构完善与演进
经过大量的业务沉淀,我们会发现架构存在的一些问题。
新的业务变化时,演进系统的架构是一种正常形态。
在更低级的代码层里,存在的一些复杂、混乱的相互调用,偏离架构风格的代码。
此阶段需要相应的实施者,重构代码,改进架构。