就像俄罗斯方块”"/>
“技术债就像俄罗斯方块”
点击上方“芋道源码”,选择“设为星标”
做积极的人,而不是积极废人!
源码精品专栏
原创 | Java 2019 超神之路,很肝~
中文详细注释的开源项目
RPC 框架 Dubbo 源码解析
网络应用框架 Netty 源码解析
消息中间件 RocketMQ 源码解析
数据库中间件 Sharding-JDBC 和 MyCAT 源码解析
作业调度中间件 Elastic-Job 源码解析
分布式事务中间件 TCC-Transaction 源码解析
Eureka 和 Hystrix 源码解析
Java 并发源码
来源:oschina/news/112999/
根据维基百科的定义,技术债(Technical Debt)是 “编程中的一个概念,反映了当使用短期内易于实现的代码而不是应用最佳的整体解决方案时,出现的额外开发工作”。技术债可以与金融债进行比较。如果不偿还技术债,则会积聚“利息”,从而导致之后更难以实施更改。不过,技术债不一定是一件坏事,有时恰恰需要技术债才能推动项目前进。
开发者 Jonathan Boccara 将技术债比作俄罗斯方块。游戏初始,需要从一个空白的页面开始进行,就像从什么都没有的编码项目开头一样。
接着,方块开始掉落,每个方块被放置的位置都会影响游戏的其余部分。如果你在没有太多思考的情况下让方块自由滑落,那么接下来的游戏会变得更为艰难。反之,如果设法构建干净、紧凑的结构,在后期将更易于管理。
每个新的修复程序或开发都像一个新的方块一样,需要与现有代码集成。 如果以快速而肮脏的方式对其进行破解,就好像在俄罗斯方块结构中留下了漏洞。若希望少留些空白或漏洞, 则需要花时间设计一个干净的解决方案,来集成修复程序或开发程序。这不太容易实现,但从长远来看会有所回报。
俄罗斯方块游戏并非总是要求平坦的结构,只要能够有计划地增减和消除即可。就像为垂直栏留出空间以一次滑入并清除四行一样,具有一种令人愉悦的感觉:
即便留有一些漏洞,也可以在其上方保留紧凑的行,这样可以在清除上方后,填充漏洞。技术债也是如此,如果能够控制,并且计划在以后偿还,则可以适当增加债务。
当过去的技术债管理不善时,方块堆积至顶部,无法再添加新功能。在这一点上,前进的唯一方法是回到过去,从而通过重构简化代码。不过,这在真正的俄罗斯方块游戏中无法做到。
另一位同样将技术债比作俄罗斯方块的开发者 Colin O'Dell 认为,必须使用与玩俄罗斯方块类似的思维过程来管理技术债:
如何排列先前的块?(当前如何构建代码库?)
是否有放置当前块的理想位置?(是否有执行当前任务的理想位置?)
接下来会出现什么障碍,它们将如何调试?( 接下来会出现什么功能,它们又将如何适应?)
这样做将使维护现有功能以及引入新的更改和功能变得更加容易。 当你背负技术债时,不妨借鉴俄罗斯方块的思路,或是玩几局游戏,说不定能激发灵感。
欢迎加入我的知识星球,一起探讨架构,交流源码。加入方式,长按下方二维码噢:
已在知识星球更新源码解析如下:
最近更新《芋道 SpringBoot 2.X 入门》系列,已经 20 余篇,覆盖了 MyBatis、Redis、MongoDB、ES、分库分表、读写分离、SpringMVC、Webflux、权限、WebSocket、Dubbo、RabbitMQ、RocketMQ、Kafka、性能测试等等内容。
提供近 3W 行代码的 SpringBoot 示例,以及超 4W 行代码的电商微服务项目。
获取方式:点“在看”,关注公众号并回复 666 领取,更多内容陆续奉上。
如果你喜欢这篇文章,喜欢,转发。
生活很美好,明天见(。・ω・。)ノ♡
更多推荐
“技术债就像俄罗斯方块”
发布评论