QCon北京「鸿蒙专场」火热来袭!即刻报名,与创新同行~ 了解详情
写点什么

开发人员将大多数时间花到了探究系统本身上

  • 2021-11-05
  • 本文字数:1959 字

    阅读完需:约 6 分钟

开发人员将大多数时间花到了探究系统本身上

根据论文统计分析,开发人员将很多的时间都用到了探究系统本身的源码上,因为这是确定下一步行为的基础。关于如何提升代码探究的效率,作者 Tudor Girba 给出了自己的解决方案,也就是可塑开发。


本文最初发表于 feenk 网站博客,经原作者 Tudor Girba 授权,由 InfoQ 中文站翻译分享。


我经常被问到,我所说的开发人员将大多数时间花到了探究系统本身上到底是什么意思。那么我们现在就来仔细剖析这句话。

据我所知,关于这个话题,最早的参考文献可以追溯到 1979 年 Zelkowitz、Shaw 和 Gannon 写的一本书,名字叫做“Principles of software engineering and design”。书中说大多数的开发时间都花在了维护上(67%)。



软件开发的成本(1979)


当然,在这本书中,并没有说明这个数字是如何得出的。尽管如此,它被视为一个足够重要的问题,从那之后,吸引了大量的研究关注。


那么,四十多年之后的今天,现状又如何呢?


我们来看一下 Xia、Bao、Lo、Xing、Hassan 和 Li 发布在 IEEE Transactions on Software Engineering, 44, 951-976, 2018 上,名为“Measuring Program Comprehension: A Large-Scale Field Study with Professionals”的论文。这篇论文非常有意思,因为它详细阐述了这些数字是如何获取到的。按照该论文,理解部分(Comprehension)占到了大约 58%。


现在,我们仔细看一下结果的表格。



软件开发的成本(2018)


尤其是,我们关注一下表格中的第三列:它声称导航(Navigation)占到了所有工作量的 24%,在这里导航和理解是被分开计算的。


所以,我们可以看到,40 多年之后,除了学会衡量如何“计算”时间之外,并没有什么真正的改变。

那这又意味着什么呢?


的确,这是我们最大的一笔开销。如果我们想要优化自己领域中的某个事情的话,那么我们首先要去观察一下这一部分。我们会经常讨论如何构建系统,但是我们有多少次讨论“探究系统”本身呢?如果我们不谈论它,它就无法显现出来,如果无法显现出来,那我们就无法优化它。


如果我们谈论“探究系统”的时间是如何花掉的,就会注意到人们的时间用在了阅读上,正如前面的论文所示,理解本质上是通过阅读来衡量的。在大多数情况下,这两者被认为是同义词。


那么,我们该如何讨论怎样探究明白一个系统呢?


鉴于四十年来其实没有什么新的进展,所以我们应该考虑一下,也许应该以不同的方式来解决这个问题。


请耐心听我讲,现在到了有意思的地方了。那么,开发人员究竟为何要读代码呢?因为他们想要搞明白状况,从而能够知道下一步该怎么做。意图是很重要的,这就是做决策。



探究明白的时间也就是决策的时间


从这个角度来看,阅读只是从数据中收集信息的手段。它也恰好是最可能以手动的方式来实现的,所以这就为优化提供了很好的机会。


在你能够对某些事情采取一些重要的举措之前,我们首先要对其进行命名。否则的话,它就会像伏地魔一样。多年以前,我把“探究明白系统以了解下一步该做什么”所做的努力称为评估(assessment)。


当时,我就断言我们要围绕着它进行开发的优化。


在整整十年的时间内,我和我的同事一直在探索这个想法。它引导我们产生了我们现在称之为可塑开发(moldable development)的理念。


那这又是什么呢?


阅读是从数据中获取信息的一种纯手动的方式。它无法进行规模化,会导致不完整的信息和不确定性。

软件本身就已经很困难了。不了解目前的系统是什么样子的这件事不应该成为这方面中可接受的变量。关于当前系统的一张手绘图充其量只能说是一个理念。决策不应该建立在理念之上,在工程领域是不应该这样的。


一旦我们接受了系统是数据的观点,那么很明显我们就要像对待数据那样对待它。数据科学家告诉我们,首先要从问题出发,然后使用一个与上下文相匹配的工具来进行推断。



由于软件是与上下文高度关联的,我们无法预测具体的问题。我们只能预测问题的类别。为了实现这一点,可塑开发的关键理念就是在了解问题之后,工具应该是可塑的。通过这种方式,它可以处理上下文中的重要内容,也正因为如此,它可以处理阅读过程中最无聊的部分。当然,为了让它切实可行,创建自定义工具的成本必须非常小。


我认为在开发过程中构建自定义工具的流程,是软件开发的下一个重大飞跃,甚至在理想的情况下,针对每一个开发问题构建自定义工具。


在十年之后,我们不应该用阅读来衡量“探究系统”。我们应该将精力花在解决实际的问题上。为了达到这个目的,我们应该从讨论如何不读代码开始。我们必须要这样做。


我们创造了 Glamorous Toolkit,为“如何不读代码”方面提供了一个具体可行的开端。Glamorous Toolkit 是一个可塑的开发环境,使我们能够以低廉的成本创建关于软件系统的定制工具。


所以,去 gtoolkit.com 了解一下这些工具吧,感受 #MoldableDevelopment。


原文链接:


https://blog.feenk.com/developers-spend-most-of-their-time-figuri-7aj1ocjhe765vvlln8qqbuhto/

2021-11-05 10:062455

评论 1 条评论

发布
用户头像
哦,原来是外网软文。。。
2021-11-15 10:07
回复
没有更多了
发现更多内容

物联网开发技术 | 社区征文

DS小龙哥

年中技术盘点

驱动您的在线成功:解密香港云主机的关键优势

一只扑棱蛾子

香港云主机

10个安全问题带你了解OWASP 定义的大模型应用

华为云开发者联盟

开发 华为云 华为云开发者联盟 企业号 7 月 PK 榜

点云标注的挑战与未来发展

数据堂

共探AI大模型时代下的挑战与机遇,华为云HCDE与大模型专家面对面

华为云开发者联盟

人工智能 华为云 华为云开发者联盟 企业号 7 月 PK 榜

为什么 MySQL 使用 B+ 树?| StoneDB数据库观察

StoneDB

MySQL 数据库 B+树

OpenTiny 前端组件库正式开源啦!面向未来,为开发者而生

英勇无比的消炎药

开源 Vue 前端 UI组件库 angluar

StoneDB 源码解读系列|查询模块流程及源码介绍——StoneDB 优化器

StoneDB

数据库 StoneDB

大话开源|国产数据库红海里独辟蹊径,瞧瞧StoneDB如何引领数据分析新“石”代 @石原子·叶建林

StoneDB

数据分析 数据库· StoneDB

OpenTiny 前端组件库正式开源啦!面向未来,为开发者而生

OpenTiny社区

开源 Vue 前端 UI组件库 angluar

IPD(集成产品开发)是什么?适合什么样的团队?

禅道项目管理

MySQL 主从延迟的常见原因及解决方法

互联网工科生

MySQL 后端

点云标注的质量评估与优化

数据堂

华为云开发者联盟助力培养数字化人才,加速应用构建质效提升

华为云开发者联盟

云计算 华为云 华为云开发者联盟 企业号 7 月 PK 榜

StoneDB 开源社区月刊 | 202301期

StoneDB

开源社区 StoneDB

Stable Diffusion AIGC:3步成为P图大师

华为云开发者联盟

人工智能 华为云 华为云开发者联盟 企业号 7 月 PK 榜

活动回顾|阿里云 Serverless 技术实战与创新广州站回放&PPT下载

Serverless Devs

云计算 Serverless 弹性计算

一站式运维管家 ChengYing 主机接入原理解析

袋鼠云数栈

开源 运维

倒计时3天,京东技术20年实践分享邀您莅临!

京东科技开发者

京东云峰会 企业号 7 月 PK 榜

Midjourney最强劲的对手来临,SDXL被动开源的浪潮,AI生成图片未来可期 | 社区征文

派大星

年中技术盘点

磨刀不误砍柴工,数据压缩,带来的可不止空间节省 | StoneDB数据库观察

StoneDB

数据库 数据压缩 StoneDB

自动驾驶中的点云标注:技术与应用

数据堂

华为开发者大会2023—我和“华为云”有个约会

华为云PaaS服务小智

云计算 华为云 华为开发者大会2023

促进协作、提高生产力:育碧选择Perforce Helix Core的原因

龙智—DevSecOps解决方案

游戏开发 育碧 刺客信条

让Jira能够按工作流配置审批规则,WorkflowWise全新功能发布

龙智—DevSecOps解决方案

Jira Jira插件 WorkflowWise

OpenTiny 前端组件库正式开源啦!面向未来,为开发者而生

英勇无比的消炎药

开源 Vue 前端 UI组件库 angluar

大形势不好的情况下,程序员的护城河是什么?

程序员小毕

Java 程序员 互联网 后端 架构师

华为云SI伙伴新路径启航,携手全面开拓市场新空间

新消费日报

开发人员将大多数时间花到了探究系统本身上_文化 & 方法_Tudor Girba_InfoQ精选文章