下⼀代软件开发模式(可能)是啥样的?

记得 Google 刚推出 Picasa Web 相⽚服务时我开⼼坏了,⽤电脑上的 Picasa 程序整理了很多喜欢的图⽚同步了上去。时⾄今⽇已经10多年过去了,可再回头浏览时还经常会被当时的⼀些图⽚所触动。当时所有图⽚我都是从电脑硬盘传上去的,毕竟,只要家⾥没有 NAS,单个硬盘就不那么可靠,相⽚⽇积⽉累,⼏个硬盘相互备份累得慌。话虽如此,当苹果刚推出 iCloud 相⽚服务时,我⼼⾥开始嘀咕:我⼿机⾥的相⽚放你服务器⾥⼲嘛?有那个必要么?只要做好iTunes备份就基本不⽤担⼼可靠性问题好吗?毕竟。。。放服务器也太容易带来隐私问题了(,⾄少)。换现在的表达⽅式就是:“直接放⼿机⾥不⾹么?”

然⽽,我显然没看清这个服务的价值。虽然备份相⽚不算⿇烦,可时间⻓了也挺烦的。另外,隐私问题基本可以依赖技术和法律做到⼀旦出问题,违法者需要承担相当⾼的消除或解释证据链成本,⽽ iCloud 照⽚服务也并不是仅作存储,还有好些其他贴⼼服务,⽐如,能通过描述来搜图,⽐如,能⾃动整理相⽚并在某个时刻勾起那时的美好回忆。我当然没在为 iCloud 打⼴告,但这的确佐证了⼀件事:云端服务将越来越多地进⼊我们的⽣活。或许有⼀天,就像⽔和电那样让我们⼏乎忘记了它们的存在。

作为⼀名软件开发⼈员,我不时会想:未来我会以怎样⼀种⽅式进⾏软件开发。性能优良的硬件?必须的,M1 Pro/Max, M2, M3... 此外,顺⼿的 IDE,⾼带宽,低延时。。。假如想得极端⼀点,这些软硬件都达到了极致,这时我就拥有了理想的软件开发⽅式了吗?还缺啥?下⼀代软件开发模式(可能)是啥样的?除⾮只开发单⼈就能全权掌管的项⽬,否则我将来的软件开发⼀定还是和许多⼈⼀起进⾏。要么别⼈在我开发的代码上修正错误增强功能,要么我也这样帮助他⼈,所以,将来的开发⼀定离不开“协作”。客观地说,现在的云端协作开发服务不少,只是在我眼⾥,还不太⾏。我认为最缺的是“环境”,包括开发和运⾏环境。虽然我们可以使⽤云端协作功能实时看到代码的变动,对⽅也能轻易地拿到我机器上运⾏的代码,然⽽,要让他⼈调试/运⾏我开发的功能,或对⽅在我的机器⾥复现他遇到的问题,成本还是相当⾼,甚⾄不可能。

我也了解到目前有些协同开发的平台,TeamCode就是其中之一。除了基本的协作开发Cloud-IDE,还有同步云端开发环境的产品DCS,你开发的项⽬,不仅能在他⼈机器上⼀键运⾏,还能在对⽅修改后,在你的机器上立刻运行起来。不仅能通过极⼤地降低乃⾄消除环境差异来降低时间成本,还能在整个软件开发的⽣命周期,包括测试,打包,部署上也做到时间和资⾦上的低成本。毕竟,谁不想既能省钱,还能省事⼉呢?未来理想的软件开发⽅式会不会是这样的呢?我不知道。会不会和 DCS 很像呢?我认为很有可能。这的确是我希望的开发⽅式,从⽽消除环境配置上的繁琐,依赖管理上的愁烦,CI/CD上的门槛,甚⾄还能极⼤减少沟通上的误解和争吵。 我猜,到时⾄少有⼀句话将会绝迹:IT WORKS ON MY MACHINE!

你可能感兴趣的:(开发环境远程工作协同开发)