|
|
|
|
移动端
创建专栏

开源社区的技术债:写代码的“码农”VS 删代码的“清道夫”,谁更该被嘉奖?

本文来源:http://www.133845.com/ent_china_com/

申博官网下载直营网,[摘要]岁末巅峰惠第三季经过紧锣密鼓的筹备,终于要在明天与大家见面了。但是在科学研究数据与日俱增的今天,我们把与科学相关的大数据称之为科学大数据。综合实力就是强!  优先选择口碑好、就业好、地方好的高职!不仅是屏幕、尺寸的改进,硬件配置、产品定位等都有一定提升。

  但实际情况是,目前,我省三级医院诊治了50-80%可以在二级医院,甚至乡镇卫生院、社区就可以治疗的小疾轻病。因此,我们不能对如今VR产品锱铢必较,它还只是个孩子,在未来的时间里,它还会不断的发展进化,最终走向巅峰。  实际试玩中,游戏画面没有想象中的卡顿,反而十分流畅,让天哥不禁感叹:“优化的世界,我不懂啊……”。收割敌方兵将跟割草一样,简单粗暴,而且杂草丛生,也正因为这个特征,这款游戏很考验显卡性能。

  为此,市政务中心在现有西安市行政审批管理服务平台的基础上,开发了西安审批服务APP,并顺利通过项目验收。  案例:张女士称,自己怀孕后一直在西安某三甲医院产检,因为人太多,每次产检她和家人都一早6点多就赶到产科,“之前产检要抽血化验,怕早上排号时间长,我头一天就办好了抽血的手续,结果第二天早上去还是排到了130多号,因为要求空腹验血,我都快饿晕过去了。具体发放办法由省人民政府另行制定。简言之,HMD需要为产品注入一些其它手机厂商尚未推出的特性,并且还要足够的吸引人眼球。

对于开源项目来讲,写新代码的贡献者不一定是好程序员,但不会删代码的程序员一定不是合格的程序员——因为“删代码”才是使开源软件项目的代码简洁高效的关键所在。

作者:大数据文摘|2019-09-08 18:24

大数据文摘出品

编译:楚阳、橡树、钱天培

对于开源项目来讲,写新代码的贡献者不一定是好程序员,但不会删代码的程序员一定不是合格的程序员——因为“删代码”才是使开源软件项目的代码简洁高效的关键所在。

MongoDB的程序员Dj Walker-Morgan就在推特中这样说道:“依我看,删代码才是偿还技术债的绝杀技能。”

对于软件工程师来讲,只有其本人对整个项目了然于心才能知道哪行代码是需要冗余的,删除这些代码才能确保程序在保证功能完整性的情况下高效运作,真正达到去其糟粕的目的。

另一位资深程序员CharityMajors曾发推文表示:“在曾与我共事过的资深程序员中,最优秀的那批人一直在想尽办法避免在项目中添写新代码。”

那么,对于这些删除代码或以最小的代码量完成更多功能的软件工程师,我们是否有合适的奖励方法呢?

明确“技术债”的概念

前文提到,删除代码是偿还“技术债”的必杀技,那么到底什么是“技术债”呢?

在软件开发过程中,如果程序员为赶在最后期限之前交差而采用了一种较为简单但未达到最佳标准的解决方案,那么项目就会背上技术债,潜在的风险会像利息一样使债越积越大。

Dormain Drewitz曾发表过一个非常有趣的观点:“所有写下的代码都是技术债。”此话怎讲呢?

由于“马后炮效应”的存在,人们的后见之明使得分辨一段代码是正确的决策还是垃圾的产出变得十分容易,但在实际的开发过程中,程序员可能没办法找到一个更好的解决方案,甚至可以说,目前的代码在当时来看可能就是最佳选择。

但我们要明确,这些时下的“最佳选择”并不意味着要被长久保留。不管你喜欢与否,“技术债”都会越积越重。

来自ThoughtWorks的MatrinFowler便对处理技术债提出了以下建议:

通常解决金融债务的最佳途径就是一点点地偿还本金,‘技术债’亦是如此。在搭建第一个功能时,我就会开始花额外的时间删掉一些冗余代码。这就好比减少了技术债未来可能产生的利息,虽然会花费一些额外的时间,但这让最终的技术债变得可承担。像这样逐步改进代码,那些经常被我们经常修改的代码块便会随着时间的推移变得越来越精炼,而这些代码块也恰好是代码库中最需要定期清理的部分。

程序员SarahMei将技术债称为“混乱体”,一个杂乱的房间。正因如此,尝试用微服务架构(MSA)来解决技术债的想法是不切实际的。

她认为,这样做会使得项目最终只剩一个饱和微小的空间和一堆杂乱无序的存储单元。同样的,你无法在这样一个狭小、拥挤又混乱的房间中找到你想要的东西。

因此,降低技术债的理想方案是从那些拥有最多所谓贡献量的代码入手。于是,眼下要解决的问题变为——如何通过合适的方法标定那些被删除的代码?

计算贡献量的另一种方法

如果你去看Kubernetes或其他项目的贡献排行榜,你很容易找到那些提交开源代码的程序员,但排名指标的下拉菜单中并没有出现与“删除代码行数”相关的计量。依照前文Majors对优秀的资深软件工程师的定义,尽管记录那些提交新代码的人是有意义的,但这些新代码能为开源项目带来多大价值就不太好说了。

相较于统计代码量,对代码效率的计量是一件并不那么客观的事情,尽管这一指标十分重要,但实际上很难对其下一个准确统一的操作性定义。而正因为如此,我们反倒可以重新体会到“删代码”的艺术魅力。

曾任职MongoDB的HenrikIngo告诉作者:“在MongoDB工作的3年里,我删掉的代码比我写的要多。”他还自嘲道:“但遗憾的是,这注定是以场失败的战役——这只会激发更多的同事编写更多新的代码进去。”

在这样的评判标准下,优秀的程序员可能不会在排行榜中名列前茅,因为他们的贡献在于巧妙地删除冗余代码,就像Henrik,他们删除的代码可能比写的新代码还要多。

几年前,Yelp的团队开发了Undebt——一个旨在自动化实现大量代码重构的项目,但至今没有见它有过后续的维护和更新,也没见它被成功使用。

那么,你所在的团队是如何发现和鼓励会删代码的程序员的呢?为开源项目删代码的程序员是否也可以通过同样的方式得到鼓励和回报呢?

至少目前来看,人们所关心的排行榜或许是基于不完美甚至是没有价值的指标——那些致力于在茫茫代码的海洋中消除一个个技术债的“清道夫型”程序员应该受到更大的重视和嘉奖。

相关报道:

/www_techrepublic_com/article/in-praise-of-developers-who-delete-code/

【本文是51CTO专栏机构大数据文摘的原创译文,微信公众号“大数据文摘( id: BigDataDigest)”】

     大数据文摘二维码

戳这里,看该作者更多好文

【编辑推荐】

  1. 程序员,职场上请远离这种人!
  2. 云+社区联合快手 深度解读五大热门大数据技术
  3. 5s换脸吴彦祖!爆红AI应用ZAO仍面临技术困境,你的“脸”被授权了吗?
  4. 阿里大佬:技术人的3个段位,你在哪段?
  5. 是时候重新认识“程序员”了!
【责任编辑:赵宁宁 TEL:(010)68476606】

点赞 0
分享:
大家都在看
猜你喜欢
申博游戏登录官网 申博游戏网站直营网 菲律宾申博怎么登入 申博开户登入官网 申博太阳城登入 菲律宾申博游戏直营网
太阳城娱乐网址 老虎机微信支付充值 申博网上娱乐登入 申博真人官网登入 申博支付宝充值 www.22sbc.com
旧版太阳城直营网 申博会员登入 申博开户现金网直营网 申博太阳城138官网直营 菲律宾申博娱乐城官网 申博官网登入