IT培训-高端面授IT培训机构
云和教育:云和数据集团高端IT职业教育品牌 全国咨询热线:0371-67988003
课程 请选择课程
    校区 请选择校区
      • 华为
        授权培训中心
      • 腾讯云
        一级认证培训中心
      • 百度营销大学
        豫陕深授权运营中心
      • Oracle甲骨文
        OAEP中心
      • Microsoft Azure
        微软云合作伙伴
      • Unity公司
        战略合作伙伴
      • 普华基础软件
        战略合作伙伴
      • 新开普(股票代码300248)
        旗下丹诚开普投资
      • 中国互联网百强企业锐之旗
        旗下锐旗资本投资

      出来混总是要还的@程序员,你的技术负债还了吗?

      • 发布时间:
        2019-09-02
      • 版权所有:
        云和教育
      • 分享:

      在软件工程领域中,“技术债务“是一个贬义词。人们在使用这个词的时候常常表达出某种遗憾,过去犯下的错误,最终需要通过重构来弥补。

      什么是技术负债?

      配图1 程序员你的技术负债还了吗.jpg

      技术负债(英语:Technical debt),又译技术债,也称为设计负债(design debt)、代码负债(code debt),是编程及软件工程中的一个比喻。指开发人员为了加速软件开发,在应该采用最佳方案时进行了妥协,改用了短期内能加速软件开发的方案,从而在未来给自己带来的额外开发负担。这种技术上的选择,就像一笔债务一样,虽然眼前看起来可以得到好处,但必须在未来偿还。

      技术债务的产生有着很多原因,但其中更多的是由于要在短时间内匆忙完成原本耗时较长的工作,导致部分业务逻辑没有完整的设计等,使得产品在短时间内有效,但是长远来看,却是一颗不稳定的炸弹,一旦触发,对产品、对企业都有可能造成无法挽回的损失。

      配图2 程序员你的技术负债还了吗.jpg

      总而言之,技术债务会带来很多麻烦,有些甚至是“致命”的。

      那么身为技术开发者,该如何偿还技术负债?

      如何偿还技术负债?

      技术债务分为有意的技术债务和无意的技术债务,两种形式的技术债务形成的原因和带来的结果是不同的,解决方法也不同。

      无意的

      由于经验的缺乏导致初级开发者编写了质量低劣的代码。

      解决方案

      技术培训

      配图3 程序员你的技术负债还了吗.jpg

      毕竟大部分的程序员学习能力还是很强的,部门牛人的培训还是很有必要的,也是学习的重要途径之一。

      从最开始的代码规范、到熟悉业务、最后再到编写文档。

      2.CodeReview

      CodeReview 是非常重要的,同时也是对自身的一个提高。

      在这个阶段不同工程师之间可以相互review,审查别人的代码能够发现很多问题,同时也能学到很多知识。

      有意的

      团队根据当前而非未来进行设计选型,这种方式可能很快就能解决当前的问题,但却很拙劣。

      这就情况很可能是为了图省事才这样干的。也有可能是工期太短,人员太少,技术问题等等。

      解决方案

      1.系统设计的框架是对的

      必须能够有效处理当前需求可预见的情况,对于未知的、可能出现的特殊情况,很小的改动就能解决问题。

      配图4 程序员你的技术负债还了吗.jpg

      根据当前的业务,进行合理的创建数据表,尽量的代码解耦和。必须有日志模块,操作日志,错误日志,业务日志等等…

      2.所有的工程师有主人翁的意识

      开发前,针对产品提出的需求,进行要进行细节确认,自己也可以画一个程序的流程图。

      开发时,首先把流程全部顺下来,其中遇到调用其他接口、技术难点、需求模糊,及时确认或记录 TODO 标签。

      配图5 程序员你的技术负债还了吗.jpg

      开发后,及时对自己的流程进行确认,查看代码中是否有未解决的地方。

      每个公司都有自己任务管理系统,例如JIRA之类的,提测后,时时关注自己的BUG。

      如果与产品有分歧的地方一定要及时沟通,达成共识。

      配图6 程序员你的技术负债还了吗.jpg

      3.一定要有健全的测试环境、预发布环境、正式环境

      因为有些程序可能需要进行压力测试,所以服务器的配置还是很关键的。

      多个环境的测试,更能保证程序的健壮性。

      4.定期处理一些技术债务

      等产品上线后,开发就没有那么紧啦,这个时间大家可以找个时间处理技术债务,一边建立感情,一边品味一下原来的代码,是不是酸爽无比。

      5.善于发现系统的技术债务

      配图7 程序员你的技术负债还了吗.jpg

      勇于发现系统中的技术债务,当然不是为了所谓的奖励,仅仅是为了自己的提高,让自己为系统负责,而不是事不关己高高挂起。

      当然,最重要的其实是把技术债务的重要性提到一个被认可的位置上。

      工程师如果能遇见一个债务可能导致的问题,自然愿意花时间去处理。

      总结

      配图8 程序员你的技术负债还了吗.jpg

      技术债务是伴随着项目出现而且无法避免,但是如何保持其在可控范围之内,是我们应该思考的问题。技术债务的避免和消除都需要优秀的开发人员,人始终是软件开发中最重要的因素。作为一名普通的码农,不断地提升自己是非常必要的。