“技术债务(technical debt)”这个词是由Ward Cunningham 发明的,用来描述为了在最后期限前实现某个项目任务而让开发团队做某种技术上的妥协。
这里有两篇博客文章,Uncle Bob 和 Martin Fowler 分别在里面描述了几乎所有项目都可能会遇到的各种技术债务。
在 A Mess is not a Technical Debt
这篇博客里, Uncle Bob 评论说,做出妥协是实现有最后期限目标的必要的手段。但是他区分妥协与否的方法只是纯粹从代码的粗心与否来考虑:
编码混乱并不是一种债务。编码混乱就是编码混乱。技术债务的产生是由现实的工程约束造成的。这是有风险的,但却是值得去做的。而程序员让编码混乱的行为永远是不理智的,它永远都是因为懒惰和不专业造成的,而且将来你也永远还不清这种债务。混乱永远都是一种错误 …
你承担的技术债务越多,你就应该越发自律。你应该做更多的测试,更多的结对编程,更多的重构。技术债务并不是你制造代码混乱的通行证。技术债务实际
上是要求你更清晰的代码 … 当你决定去欠下技术债务的时候,你最好能确保你的代码保持清晰易懂。保持系统的清晰易懂是你将来偿还债务的唯一途径 …
在 Technical Debt Quadrant
这篇博客里, Martin Fowler 认为编码混乱就是一种技术债务,是程序员在不经意间犯下的错误。Martin Fowler 接着描述了四种类型的技术债务:故意的/大意的,故意的/谨慎的,非故意的/大意的,以及非故意的/谨慎的:
做这些区分的目的不在于判断它是否是债务,而是判断是思虑过的还是粗心的 …
不仅仅谨慎产生的债务和大意产生的债务有区别,考虑过的债务和非有意的债务更要有区别。谨慎思考过的债务的例子就是”故意的债务“,因为团队已经知
道他们将会欠下债务,他们会考虑是提前发布一个不成熟的版本会得的利益多还是放弃这次发布产生的代价大。一个团队如果没有反复思考他们的设计,那他们就会
欠下粗心大意产生的债务,他们甚至没有意识到自己已经陷入了无法自拔的债务泥潭里。
注意到,有一种特殊的债务既是既是大意的又是思考过的:
经常会有这种情况出现,一个项目你干了一年后才明白你实际应该采用何种的设计架构。也许我们应该这样计划项目:花一年的时间去开发它,然后扔掉重建,但没人会认同这种做法。除了此时你会明白什么的设计才是你应该采取的设计外,你还要明白,这就是一个非有意产生的债务。
你是否也认为混乱的编码、快速但质量低下的程序实现是某种形式上的技术债务呢?或者,你
认为这些只是由于技术水平低下造成的,完全可以避免,即使是在有最后期限的情况下?(外刊IT评论
)
分享到:
相关推荐
该MATLAB代码介绍了各种MIMO的预编码技术,并对其进行对比
基于小波变换的嵌入式零树编码压缩技术研究 硕士论文
所有的无线通讯都需要编码和调制。编码是为了保证数据传输的正确性和完整性,调制是将数字信号加载到高频信号中,然后通过天线发射出去。
大规模MIMO中预编码设计开发,3D的DFT码本。
音频编码技术音频编码技术音频编码技术音频编码技术音频编码技术音频编码技术音频编码技术音频编码技术音频编码技术音频编码技术音频编码技术音频编码技术音频编码技术音频编码技术音频编码技术音频编码技术音频编码...
摘 要:哈夫曼编码是一种数据编码方式,以哈夫曼树——...夫曼编码图像压缩技术的原理、算法、过程,并利用VB6.0作为编程开发工具,开发了一个对256色BMP图像进行压缩/解压缩的软件系统, 验证了算法的合理性和可行性。
自动识别技术 实验报告1 曼切斯特编码碰撞检测算法 ——曼切斯特编码碰撞检测的python实现算法 曼彻斯特编码(Manchester Encoding),也叫做相位编码(PE)是一个同步时钟编码技术,被物理层用来编码一个同步位流的...
高新技术产品海关编码(机电产品).xls
现代语音编码的原理、技术及应用。包括现代语音编码技术导论、矢量量化编码、时域波形编码、子带编码、变换域编码等
第四章 移动通信的编码技术 移动通信入门-第四章-移动通信的编码技术全文共18页,当前为第1页。 目录 4.3 交织技术 3 4.2 差错控制编码 2 4.1 信源编码 1 移动通信入门-第四章-移动通信的编码技术全文共18页,当前为...
数字电视中常用的纠错编码,通常采用两次附加纠错码的前向纠错(FEC)编码。RS编码属于第一个FEC,188字节后附加16字节RS码,构成(204,188)RS码,这也可以称为外编码。
本文对CDMA中用到的扩频码技术进行了介绍,井对信道编码及语音编码技术也做了简单的介绍。
语音压缩编码技术研究进展语音压缩编码技术研究进展语音压缩编码技术研究进展语音压缩编码技术研究进展
介绍CDMA语音编码算法以及应用 ...本文主要介绍CDMA中常用的语音编码技术与信道技术。 关键词:语音编码 信道编码 受激励线性编码 码激励线性预测编码 矢量和激励线性预测编码 编码器 解码器 卷积码
曼彻斯特编码(Manchester Encoding),也叫做相位编码(PE),是一个同步时钟编码技术,被物理层使用来编码一个同步位流的时钟和数据。曼彻斯特编码被用在以太网媒介系统中。曼彻斯特编码提供一个简单的方式给编码...
针对传统协作技术具有的局限性,将一种编码协作技术(基于QC?蛳LDPC码的编码协作)与Alamouti空时码和网络编码技术相结合,提出了一种基于QC-LDPC码的网络编码协作通信技术.仿真结果表明:在系统带宽和发射功率不变...
这是一份很好的信息论编码技术, 很好很全面也很详细
GB 18030-2005 信息技术 中文编码字符集
About ZF coding in massive MIMO
争对各企业物料编码管理混乱,累积11年行业经验开发各企事通用编码管理系统,解决物料编码、资产编码管理混乱以及其岗位人员异动带来的风险。