拿什么给软件开发做减法?

本文转自:计算机世界
(中国计算机世界出版服务公司出品)
在前两期文章《软件开发者:有更多选择是好事还是坏事?》和《如何阻止开发者重复发明轮子?》中 , 我们了解到现代科技的高速发展正在为开发者带来更多的复杂性 , 为了帮助他们解决复杂性 , 企业试图通过团队设计或使用托管服务来为开发者“减负” , 这真的有帮助吗?让我们一起来看看今天的干货分享!
拿什么给软件开发做减法?
文章图片

文章图片

供应商如何应对复杂性
谷歌云的首席开发倡导者Kelsey Hightower与云软件行业的许多同行一样 , 将开发者当前可用的众多选择级别视为“礼物和诅咒” 。
“礼物”是指开发者拥有几乎无限的技术目录的可用性来构建 , 而“诅咒”是指开发者在他们的工作流程中还要面对基础设施的问题 。目前 , 随着许多供应商专注于托管服务和抽象化 , 事情似乎有了截然不同的变化 。在一切都碎片化后 , 我们是否应该进行大整合?
Hightower说:“这个职业不仅仅是编写代码 , 这只是达到目的的手段 , 也许我们已经构建了足够多的东西 , 可以暂停构建新事物 , 而去让我们已有的技术更成熟 , 并好好地使用他们 。也许这就是我们在过去十年中看到的 DevOps 和协作发展的圆满结果 。”
为了应对这种复杂性 , 市场正在通过不断增长的武断性服务、托管选项、框架、资源库和平台列表 , 帮助开发者应对复杂的环境 。
O'Grady在2020年的一篇博文中写道:“当然 , 没有供应商能够提供所有必要的部件 , 未来也不可能 。即使是拥有最多样化的应用程序组合和前所未有的上新节奏的AWS , 也无法满足每个开发者的需求 , 亦无法涵盖所有相关的开发者社区 。”
拿什么给软件开发做减法?
文章图片

文章图片

话虽如此 , O'Grady在另一篇文章中写道:“有充分的证据表明 , 我们不再为难买家和开发者 , 不再让他们承担挑选原语和从头开始构建的任务 。如果云的第一个时代是由原语定义的 , 那么它的时代即将结束 。下一个时代可能由自计算行业成立以来就有的、我们建立在原语上的抽象思维来定义 。”
虽然事实证明 , 将这些原语组装到连贯的内部平台中对于许多工程主导的企业来说是一种成功的解决方法 , 但更传统的企业还是还会找供应商来帮助他们减轻这种复杂性 。
Kubernetes联合创始人、现VMware研发副总裁Craig McLuckie在接受采访时表示:“复杂性不是问题 , 问题是开发环境的反复无常 。”他认为自己的角色是寻找方法“使开发者的生活更轻松 , 以应对由工具链的碎片化和高度可扩展系统导致的日益复杂的环境 。”
MongoDB的推广者Matt Asay最近表示 , “如今关于云的现状是看谁能最好地集成多样的云服务 。云会变得更加精彩 , 确切地说 , 会变得单一乏味 。”
需要机械同感
如果我们处于极简化的边缘 , 我们是否会失去作为软件开发者的本质?
【拿什么给软件开发做减法?】正如传奇的英国赛车手Jackie Stewart所说:“要成为一名合格的赛车手 , 你不必成为一名工程师 , 但你必须要有机械同感 。”简单来说 , 要真正做到出色 , 你必须了解你正在操作的机器 。
虽然不能奢望现代软件开发者能完全对他们构建的复杂、可扩展的分布式系统产生机械同感 , 但他们可以在理解的过程中尽可能多地掌握要素 。