抖音技术能力大揭密!钜惠大礼、深度体验,尽在火山引擎增长沙龙,就等你来! 立即报名>> 了解详情
写点什么

无服务器会成为新的 Visual Basic 吗?

2017 年 5 月 23 日

在无服务器架构的帮助下,我们可以借助更少的有经验开发者,实现比以往更多有经验的云开发者更出色的工作成果。这个有趣的观点是 Movivo 的 CTO Paul Johnston The ServerlessCast #6 – 事件驱动的设计思维中提出的,我也是第一次听到这样的观点。

得出这种结论的思考过程差不多应该是这样:

在事务性系统、框架,以及承担多种任务并且显得笨重的容器等方面,有经验的云开发者很可能采取一种程序化的思维方式 (Think procedurally)。

但无服务器开发者不需要这样考虑问题。无服务器开发者的思路需要从小型函数着手,只需要考虑一件事:通过事件将不同函数连接在一起,这一过程中需要领会异步、分布式的思维方式。

因而此时我们实际上根本不需要典型的开发者思维。Paul 发现,很多具备系统管理技能的人已经具备这样的能力了。拥有系统管理员背景的人往往能比框架开发者更深入地理解分布式思维,进而更好地构建出完整的事件系统。

Paul 还提出了一个观点,认为一旦系统已经构建完成,有经验的开发者很快会感到无聊,因为无服务器架构的系统并不需要那么多的维护工作。

例如,他们已经习惯于雇佣通过在职培训具备两年职业经验的员工,因为这样的员工在框架、服务器,以及其他各种技术的使用方面没有“历史包袱”。没有包袱才能轻装上阵。

那么不妨雇佣更年轻,更有干劲,不具备此类经验的开发者。

很明显,“更年轻,更有干劲”以及“较少的经验”同时也意味着人力成本更低,追求这一点也没什么错。毕竟好的开发者难觅。

类似的情况以前就出现过。很多公司都曾借助经验相对不多的人,使用 Visual Basic 开发了大量承担重要工作的系统,因为通过 VB,我们可以很轻松地开发 Windows 程序。以往,Windows 程序的开发很难,需要耗费大量时间;而今天的云程序开始其实也很难,很浪费时间。但是与 VB 类似,无服务器技术大幅降低了云程序开发工作对技能的要求。

虽然可以实现目的,但大部分此类 VB 程序都蕴含着“技术债”的炸弹。随着时间流逝,程序中被加入越来越多的功能,整个程序将变得非常难以理解,难以改动,难以测试,整个设计变得越来越糟糕。渐渐地,变成了一个大泥球(Big Ball of Mud。译注:指缺乏直观架构的软件系统,详见: https://en.wikipedia.org/wiki/Big_ball_of_mud )。

VB 使得很多原本麻烦的问题变得更容易解决,例如事件句柄中的业务逻辑,由于不需要分层,可以通过 GUI 负责编排工作。但这也导致 VB 程序难以测试。无服务器也存在此类问题。缺乏经验的程序员还会在 VB 程序中使用大量全局变量,导致不同领域之间缺乏清晰的划分,高耦合低内敛。无服务器同样存在类似问题,由于代码中不存在全局变量,最终只能使用数据库存储所有无服务器函数所需访问的全局变量。

我倒是很想知道无服务器架构最终能否摆脱类似 VB 那样的宿命。

最初发布于: HackerNews

作者 Todd Hoff 阅读英文原文 Is Serverless The New Visual Basic?


感谢郭蕾对本文的审校。

给InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ @丁晓昀),微信(微信号: InfoQChina )关注我们。

2017 年 5 月 23 日 17:281206
用户头像

发布了 283 篇内容, 共 88.3 次阅读, 收获喜欢 42 次。

关注

评论

发布
暂无评论
发现更多内容

揭开MySQL索引神秘面纱

咔咔

MySQL 索引

知乎高赞:为什么同样是分布式架构的Kafka需要Leader而Redis不需要

中间件兴趣圈

分布式 raft 一致性 数据分片

趁早

小天同学

个人感悟 成功 4月日更 恋爱 趁早

好家伙!Github又现神作,阿里大牛亲码24W字面试总结也太香了!(涵盖P5到P8所有技术点)

程序员小毕

Java 程序员 架构 面试 并发编程

Edge 修改使用的默认搜索引擎

HoneyMoose

我叫小M,立志建立MySQL帝国。

yes

MySQL

解Bug之路-主从切换”未成功”?

无毁的湖光

数据库 主从环境

Airtest入门及多设备管理总结

行者AI

自动化测试

webrtc stream,source,track

糖米唐爹

霸榜GitHub!银四匠心之作:拼多多/蚂蚁/百度面经分享

云流

Java 编程 程序员 架构 面试

starforce源码解读二:游戏入口

风翱

Unity 源码解读 四月日更

7.1 Go语言从入门到精通:Cobra介绍

xcbeyond

golang cobra Go语言从入门到精通 4月日更

观《掌控习惯》笔记

尧二水丶

习惯养成 书籍推荐 书单 书籍 四月日更

webrtc 开启新特性

糖米唐爹

上来就问MySQL事务,瑟瑟发抖...

咔咔

MySQL 事务

在华为云专属月中,寻觅互联网更需要的云味道

脑极体

众盟科技:直播浪潮下,医美行业的私域营销之变

脑极体

MySQL查询优化必备

咔咔

MySQL 查询优化

你对JVM垃圾收集器了解多少?面试官夺命13问谁碰谁不迷糊啊!

北游学Java

Java JVM 垃圾回收

来学Python啦,用Python详细讲解温度转换器

Bob

Python Python 游戏编程 4月日更

函数

奈奈奈奈

「编程概念」融合理解函数式和面向对象

顿晓

面向对象 4月日更 函数式 融合

从零开始写游戏服务器①:前期了解

Integer

c

MVCC:听说有人好奇我的底层实现

咔咔

MySQL MVCC

如何避免成为一个油腻的中年猥琐男?

石云升

读书笔记 中年 28天写作 4月日更

2021 优质前端资源精选 —— 持续更新,欢迎共建

清秋

前端 教程 资源 社区 4月日更

学习笔记

山@支

Wireshark数据包分析学习笔记Day28

穿过生命散发芬芳

Wireshark 数据包分析 4月日更

优秀程序员必备技能之如何高效阅读源码

中间件兴趣圈

方法论 源码解读

c 语言思维地基搭建(vis2013编译+第一个c语言程序)

-jf.

四月日更

容器&服务: ClickHouse与k8s架构

程序员架构进阶

Kubernetes Prometheus Clickhouse 28天写作 4月日更

Study Go: From Zero to Hero

Study Go: From Zero to Hero

无服务器会成为新的Visual Basic吗?-InfoQ