当前位置:首页 > 服务端 > 程序员应知——技术债务

程序员应知——技术债务

2022年11月06日 09:32:11服务端10

债务这个词,相信大家已经都对其深有体会了,特别是像我一样作为“房奴”的人,每个月都要去银行还钱,那就是债务啊。

在软件开发的过程中,我们往往也会借债,人们称之为技术债务,其实也就是为了快速地解决问题,而采取的不规范的方案。比方说把某个条件写死,再比方说采用一些捷径达到目的,而这只是特殊情况,无法应用在其他模块中。

对于房贷,大家肯定每个月都会记着去还,但是对于技术债务,大家似乎就不那么关心了,的确这个东西不一定是谁借谁还,可能一个人的代码中产生了技术债务,然后由于负担太重,闪人了,那没有办法,这笔债务就会压在后来工作接替者身上,古语说:父债子偿,不知道这应该叫什么。

然而,技术债务其实最终的承担者还是系统的所有者,或者说系统的开发商。而且,技术债务有一个致命的特点,与我们的房贷不同,而与一种很可怕的借款——我们称之为高利贷——相同,那就是会利滚利。试想一下,如果我们在一个类中欠下了技术债务,然后之后的程序又对这个类进行了扩展和修改,再后的程序对扩展后的程序又做出了更大的扩展,或者说后来的程序在一些功能的写法上参照了欠下债务的类,那么这个债务就会产生非常大的利息,甚至于超过了债务本身。用不了太多时间,我们就会发现,已经无力偿还这份技术债务了。

上面所提到的还只是在功能上的技术债务,我觉得技术债务遍布于我们的系统开发过程之中。比方说:

在代码规范上也存在技术债务,如果一个程序员为了快速开发或者修改一个功能,在开发的时候没有遵守代码规范,那么此时就会欠下代码规范方面的债务。如果不尽快偿还的话,那么之后的基于该程序的修改,也会有很大的可能不遵守代码规范,这也正是破窗子理论的体现。这样下去,程序的可维护性就会大大降低,直至不可维护。

在文档上也存在技术债务。现在很多的开发团队中还是存在技术文档的,像详细设计什么的。如果一次开发中,由于时间紧,只修改了代码,而没有修改相关的文档,那么必定就会造成文档和实际代码功能上的不一致。这样做的后果就是,在一段时间之后,我们会发现文档根本就不足以作为参考,因为有些时候不仅不会帮助我们,而且还会造成误导,从而大家对文档都失去了信心。

从上面的种种我们可以看出,欠下技术债务,而疏于修改,后果会非常严重,那么我们应该怎么做呢?其实道理很简单,首先是尽量不要欠下技术债务,其次就是一旦迫不得已欠下了债务,就应该以最快的速度偿还。我们在银行借的房贷,5年还和20年还,利息会相差很多,对于技术债务,也是同样,如果尽快偿还,那么不会付出太大的代价,而且是在我们的能力承受范围之内的,但是如果拖的时间太长,债务就会变得越来越多,直至我们无力偿还。

所以,作为程序员,除了关心自己生活中的债务之外,也请对技术债务提高警惕

作者:侯伯薇
来源链接:https://www.cnblogs.com/houbowei/archive/2010/05/20/1739751.html

版权声明:
1、JavaClub(https://www.javaclub.cn)以学习交流为目的,由作者投稿、网友推荐和小编整理收藏优秀的IT技术及相关内容,包括但不限于文字、图片、音频、视频、软件、程序等,其均来自互联网,本站不享有版权,版权归原作者所有。

2、本站提供的内容仅用于个人学习、研究或欣赏,以及其他非商业性或非盈利性用途,但同时应遵守著作权法及其他相关法律的规定,不得侵犯相关权利人及本网站的合法权利。
3、本网站内容原作者如不愿意在本网站刊登内容,请及时通知本站(javaclubcn@163.com),我们将第一时间核实后及时予以删除。


本文链接:https://www.javaclub.cn/server/68134.html

标签: 程序员
分享给朋友:

“程序员应知——技术债务” 的相关文章

服务器对程序员来说意味着什么,此文带你来了解

服务器对程序员来说意味着什么,此文带你来了解

最近马上双十一了,云服务器的折扣非常大,趁此机会给大家介绍一下服务器的相关基础知识。 一、什么是服务器? 维基百科写到服务器指: ①一个管理资源并为用户提供服务的计算机软件,通常分为文...

程序员神器,IntelliJ IDEA 2018.1 正式发布

程序员神器,IntelliJ IDEA 2018.1 正式发布

工欲善其事必先利其器,如果有一款IDE可以让你更高效地专注于开发以及源码阅读,为什么不试一试? 3月27日,jetbrains正式发布期待已久的IntelliJ IDEA 2018.1,再次让人眼前一亮:什么,还能这么玩?...

一线互联网常见的 14 个 Java 面试题,你颤抖了吗程序员

一线互联网常见的 14 个 Java 面试题,你颤抖了吗程序员

面过大 / 小公司、互联网 / 传统软件公司,在此过程中不断查缺补漏,养成了踏实、追本溯源、持续改进的习惯,特此将自己经历过、构思过的一些面试题记录下来,如果答案有问题,欢迎拍砖讨论,希望能对找工作或者感兴趣的同学有所帮助,陆续整理中。 跳槽不算频繁,但参加过不少面试...

程序员大佬实力推荐16个Java实用工具类

在Java中,实用程序类是一个定义一组执行常用功能的方法的类。这篇文章展示了最常用的Java实用程序类及其最常用的方法。类列表及其方法列表都按流行度排序。该数据基于GitHub随机选择的50,000个开源Java项目。   希望您可以通过浏览列表获得已经提供...

2020年高级Java程序员面试题汇总,含答案总结

2020年高级Java程序员面试题汇总,含答案总结

文章目录 JDK Dubbo Zookeeper Spring系列 Redis系列 Mysql系列 Java多线程 消息中间件 线程池 JVM...

Java初中级程序员面试题宝典

Java初中级程序员面试题宝典

Java基础部分 &与&&区别? &和&&都是逻辑运算符,都是判断两边同时真则为真,否则为假;但是&&当第一个条件不成之后,后面的条件都不执行了,而&则还是继续执行,直到整个条件语句执行完为止。...

这几个面试题,过滤了70%的Java高级程序员!

这几个面试题,过滤了70%的Java高级程序员!

最近在面试的时候,发现很多高级程序员都倒在了几个地方,特地来和大家分享一下,假如你是五六年的程序员,能不能熟练的对答如流? JVM方面考察 问:假设我写了一个A方法,A方法里面有一行代码,该代码是初始化B对象,如果死循环调用A方法,会发生什么?从JVM层面...

Java程序员如何进阶架构师?

作为Java程序员来说,最痛苦的事情莫过于可以选择的范围太广,可以读的书太多,往往容易无所适从。我想就我自己读过的技术书籍中挑选出来一些,按照学习的先后顺序...... 一、Java编程入门类:...

从三方面分析,Java程序员如何晋升为高薪Java架构师?

从三方面分析,Java程序员如何晋升为高薪Java架构师?

对于工作多年的程序员而言,日后的职业发展无非是继续专精技术、转型管理和晋升架构师三种选择。下面,我从架构师在一家公司有多重要、优秀架构师需要具备怎样的素质以及架构师的发展现状三个方面来分析,Java程序员如何才能晋升为优秀的高薪Java架构师? 希...

想拿到10k-40k的offer,这些技能必不可少!作为程序员的你了解吗?

想拿到10k-40k的offer,这些技能必不可少!作为程序员的你了解吗?

总结了一份Java架构师的技能树,希望对Java编程的同学有点帮助,文末有该架构师技能树获取方式 Java编程技术点:   计算机网络   Java高级技术...

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。