如果整个团队全是全栈开发人员,不区分前端和后端,似乎是一个不错的主意。但是在这个新时代,没有人能够掌握开发的所有技术。
作者 | Joe Honton
译者 | 弯月,责编 | 屠敏
以下为译文:
全栈的起源
在新千年来临之际,Web工具已发展得极为成熟,创建网站所需的一切都可以通过开源软件组建。我们可以仿照OSI网络模型,简单地将应用程序开发的各种技术分层,而整个开发所需的技术集合称为栈。
LAMP栈就是第一个栈,它包含四层:L表示Linux操作系统,A表示Apache HTTP服务器,M表示MySQL数据库服务器,而P表示PHP脚本语言。随着时间的推移,我们看到了分层概念的优势,因此衍生出了许多其他栈:WAMP、MAMP、XAMPP、LEMP、LEPP、MEAN、JAMStack等等。
有了这些技术栈,我们就相当于免费获得了软件开发复兴的钥匙,对于有兴趣创建网站的人来说,如今的门槛更低了。只要你有毅力和学习新工具、语言和协议的欲望就够了。你不需要使用微软、Oracle、IBM或其他商业软件。这是一个公平的领域,吸引了很多人的目光,以至于90年代后期出现了互联网的泡沫时代。
不久后,浏览器(XMLHttpRequest)引入了 AJAX,从而引领了Web 2.0时代和Web应用程序。但是,开发这些应用程序需要大量的工作,因此开发人员无法仅凭一己之力满足业务的需求。
后来,开发人员开始分工专业化。由前端开发人员处理HTML、CSS和JavaScript。后端开发人员处理主机操作系统、HTTP服务器和数据库。而同时精通前后端的开发人员则称之为全栈开发人员。
全栈时代
专业化是一件好事。但并不会永久。一方面,这意味着团队可以并行工作以缩短开发周期。另一方面,这也意味着我们必须付出更多的努力来传达最初的要求和变更的规范,否则我们就会失去并行工作所带来的优势。
因此,整个团队全是全栈开发人员,不区分前端和后端,似乎是一个不错的主意。
最重要的好处是,团队中的每个开发人员都充分了解每一处代码变更带来的后果。他们每个人都可以正确地评估影响和风险,让管理层清楚地了解成本和延误状况。此外,每当有工作人员离职时,团队可以立即换人,而且新人也可以很快地熟悉工作。然而,随着基础技术的提升,这种美好的景象也失去了原有的魅力。技术栈不再局限于最初的四层:操作系统、HTTP服务器、数据库和脚本语言。
随着开发能力的增强,我们开始更加密切地倾听用户的意见:
此外,贯穿所有这些需求的基本技术也在不断发展:
全栈时代并没有完全死亡。技术栈的各层迅速发展,没有人可以成为掌握一切的专家。职责多样化和专业化是很自然的结果。
全栈工程师的荣耀已成为传说。在这个新时代,没有人能够掌握开发的所有技术。
2020栈
我们不得不思考:拥有跨层知识和技术力且才华横溢的个人仍有优势吗?我们应该如何对待全栈开发人员带来的项目经验多样化?管理如何才能满足这些需求?招聘人员应如何筛选应聘人员?求职者又当如何凸显自己的技术力?
我们应当重新考虑“全栈”这个术语了。
我之所以这样说,是因为我帮助推广了这个概念。早在2009年,我就曾介绍过这个术语。但可悲的是,时至2019年,这个术语已经成了计算机 历史 博物馆的纪念物。
奇怪的是,人们对“全栈”这个词的好奇心在不断增加。2009-2019年期间,Google 搜索词语趋势快照显示,在过去五年中,“全栈”这个词的搜索次数急剧增加,而且年年创新高。
但是,如果人们都在寻找下一个趋势是什么,那么我们就来谈一谈吧。为了方便讨论期间,让我们先来给它起一个名字。
我将其称为2020栈。新一代的新名称。
我认为:
2020栈专家的特征可以总结如下:
没有人可以掌握所有技术,因此2020栈必须由一个团队来分担。不是一群人,而是一个真正的团队。这意味着,当一个人落后时,另一个人就会挺身而出。当一个人拥有出色的技术力时,就可以通过一种机制来指导其他人。当团队的知识库不足时,他们就会寻找一名更聪明的团队成员。
每个2020栈团队成员都必须是跨领域专家。仅掌握了一两层技术栈的人都算不上合格的2020栈团队成员,这类的个人有望成为未来2020栈团队成员,但也有可能不行。但是在他们掌握各层技术栈上的深入知识之前,他们只能作为2020栈团队的候选人。
2020栈团队成员为项目带来的各项技术并未严格分类。与我们到目前为止采用的前端/后端分类不同,2020栈的分类是多种多样的。2020栈团队中的某位成员可能熟悉NoSQL、云配置和持续集成等技术。同时,另一个2020栈团队中可能有一位类似的成员,而他熟悉SQL数据库、Node.js服务器、容器和容器编排。如果我们把他们统称为2020栈团队的后端开发,就低估了他们的技术力。
最后,这个团队最关键的组成部分:每次交流都应该以针对当前问题做出最佳决策为共同的目标。这意味着拥有相同技术的成员之间应该以开放的心态进行交流。成员之间不仅应该互相传达最新的进展,还应该展开讨论。这可以让每个人都变得更聪明,而且还可以防止重新步入专业化的漩涡。团队成员一起成长。
你好,“2020栈! ”
下面我们来想想看,如何利用2020栈更好地匹配职位要求与求职者的技术力。项目经理发布的招聘广告可能包含以下内容,他们希望找到适合公司文化的人才:
我公司希望招募在测试、文档和代码管理方面具有深厚背景的“2020栈”团队成员。该职位要求在以下领域中,至少拥有跨两个领域的技术力:云配置、容器、容器编排、CI/CD以及服务器端脚本。
通过帮助我们选择最佳的工具来塑造我们的未来。职业发展是每位公司员工工作的一部分。每周二我们都会举行内部2020栈学习大会。
同一个职位的另一则招聘广告则要求应聘者具备不同的技术力:
我们希望寻找一名“2020栈”团队成员,担任回归测试、API文档、Github工作流管理以及开发运维的工作。
如果你掌握了上述技术,请联系我们。
而求职者可以按照如下方式完善LinkedIn信息:
我拥有多年的“2020栈”团队工作经验,拥有丰富的后端开发经验以及最新的2020开发运维知识,包括Gitlab、Kubernetes 和 Digital Ocean。
我是开源和DRY的忠实拥护者,我认为成功重用的关键在于出色的文档。
通过上述描述,我们看到了一名同时掌握了代码管理域和开发运维域技术的开发人员。“2020栈”团队成员比敏捷团队更加成熟。
2020栈的分层
那么,2020栈应该如何分层呢?前端和后端等术语是否足以描述各层的特性?服务器和Web、设计和运维呢?当然,这些类别足够广泛。
同时,我们也不能忽视测试人员,因为我们知道如果没有他们,我们就无法交付质量胜过竞争对手的产品。此外,如果没有营销人员,我们甚至连客户都找不到。
所有这些因素我们都需要考虑。有关我心目中完美的2020栈,请参考这篇文章(https://medium .com /better-programming/2020-002-my-perfect-2020-stack-43be78df37 dd )。说到底,2020栈就是跨领域沟通。我相信这是一次全新的文艺复兴。
原文:https://medium .com /better-programming/2020-001-full-stack-pronounced-dead-355d7f78e 73 3
本文为 CSDN 翻译,转载请注明来源出处。
“全栈开发已死?”
全栈时代并没有完全死亡。技术栈的各层迅速发展,没有人可以成为掌握一切的专家。职责多样化和专业化是很自然的结果。 全栈工程师的荣耀已成为传说。在这个新时代,没有人能够掌握开发的所有技术。 2020栈 我们不得不思考:拥有跨层知识和技术力且才华横溢的个人仍有优势吗?我们应该如何对待全栈开发人员带来的项目经验...