技术债就像俄罗斯方块,玩几局来灵感!

不问归期 提交于 2021-02-20 12:54:37

Java技术栈

www.javastack.cn

优秀的Java技术公众号



你知道技术债么?

根据维基百科的定义,技术债(Technical Debt)是 “编程中的一个概念,反映了当使用短期内易于实现的代码而不是应用最佳的整体解决方案时,出现的额外开发工作”。

技术债可以与金融债进行比较,如果不偿还技术债,则会积聚“利息”,从而导致之后更难以实施更改。

不过,技术债不一定是一件坏事,有时恰恰需要技术债才能推动项目前进。

开发者 Jonathan Boccara 将技术债比作俄罗斯方块。游戏初始,需要从一个空白的页面开始进行,就像从什么都没有的编码项目开头一样。

接着,方块开始掉落,每个方块被放置的位置都会影响游戏的其余部分。如果你在没有太多思考的情况下让方块自由滑落,那么接下来的游戏会变得更为艰难。反之,如果设法构建干净、紧凑的结构,在后期将更易于管理。

每个新的修复程序或开发都像一个新的方块一样,需要与现有代码集成。 如果以快速而肮脏的方式对其进行破解,就好像在俄罗斯方块结构中留下了漏洞。

若希望少留些空白或漏洞, 则需要花时间设计一个干净的解决方案,来集成修复程序或开发程序。这不太容易实现,但从长远来看会有所回报。

俄罗斯方块游戏并非总是要求平坦的结构,只要能够有计划地增减和消除即可。就像为垂直栏留出空间以一次滑入并清除四行一样,具有一种令人愉悦的感觉:

即便留有一些漏洞,也可以在其上方保留紧凑的行,这样可以在清除上方后,填充漏洞。技术债也是如此,如果能够控制,并且计划在以后偿还,则可以适当增加债务。

当过去的技术债管理不善时,方块堆积至顶部,无法再添加新功能。在这一点上,前进的唯一方法是回到过去,从而通过重构简化代码。不过,这在真正的俄罗斯方块游戏中无法做到。

另一位同样将技术债比作俄罗斯方块的开发者 Colin O'Dell 认为,必须使用与玩俄罗斯方块类似的思维过程来管理技术债:

  • 如何排列先前的块? (当前如何构建代码库?
  • 是否有放置当前块的理想位置? (是否有执行当前任务的理想位置?
  • 接下来会出现什么障碍,它们将如何调试? ( 接下来会出现什么功能,它们又将如何适应?

这样做将使维护现有功能以及引入新的更改和功能变得更加容易。 

当你背负技术债时,不妨借鉴俄罗斯方块的思路,或是玩几局游戏,说不定能激发灵感。

作者: xplanet
文章转载自 OSCHINA 社区  [http://www.oschina.net]

END


学习资料:

分享一份最新 Java 架构师学习资料
100 本 Java 架构师重磅电子书!

最近热文:

1、 过年回家,反借钱攻略!
2、阿姨,我真不是修电脑的!
3、YYYY-MM-DD 的黑锅,我们不背!
4、不要在 JDK 7+ 中使用这个 JSON 包了!
5、IDEA 公司推出新字体,极度舒适~
Java干货:
1、如何编写可怕的 Java 代码?
2、不能用 + 拼接字符串?我要吊打面试官!
3、Java 14 令人期待的 5 大新特性!
4、面试问我 Java 逃逸分析,瞬间被秒杀了。
5、图文并茂,傻瓜都能看懂的JVM内存布局

Spring干货:

1、Spring 事务失效的 8 大原因,吊打面试官!
2、Spring 面试 7 大问题,你顶得住不?
3、Spring Boot 之配置导入,强大到不行!
4、Spring Boot 面试,一个问题就干趴下了!
5、Spring Cloud 升级最新 Greenwich 版本
本公众号干货实在太多了,没法都搬上来,扫码关注 Java技术栈 公众号,获取更多最主流的 Java 技术干货

点击「阅读原文」带你飞~

本文分享自微信公众号 - Java技术栈(javastack)。
如有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!