在诸多的企业尤其是创业型公司中,HR 在招聘时往往希望可以招到一名技术全能型人才,而这种人才又被称之为全栈开发者,那么对于全栈开发者而言,都需要具备哪些技能?
文章插图
作者 | Chris Coyier
译者 | 谭开朗,责编 | 屠敏
出品 | CSDN(ID:CSDNnews)
以下为译文:
最近,在我参加的一个Web技术会议上,一位开发同事问了我这个问题 。这位开发同事遇到的很多新人都自称是全栈开发人员,有点像Bob自称是Tony的意味,名不副实 。
本文以这位开发同事提的问题作为标题,我感觉他了解人们所说的“全栈开发人员”这一基本概念,但我不确定他到底想表达什么 。他的问题带有一种语气,一种不喜欢这个词的语气 。
传统释义:
“全栈”开发人员被认定为,既可以做前端开发工作,也可以做后端开发工作 。现如今都需要DevOps(例如Git、测试和将网站投产) 。“栈”是所有这些内容的组合,所以全栈开发人员可理解为:当涉及到构建网站时,全栈开发人员可以搞定所有的事情 。
【全栈开发者意味着什么?】
这些年来,有些栈已经声名狼藉了 。你可能听说过LAMP栈(linux Apache MySQL php)?
LAMP栈的全栈开发人员意味着掌握Linux、Apache、MySQL和PHP 。(抽象地说:服务器软件、web服务器、数据库、后端语言 。)一个网站在这个栈上运行,而我负责它的开发,在某种程度上,我自认为我一名全栈开发人员 。
“某种程度”是一种宽泛的说法 。我对Linux一无所知,但我知道它运行于我的web服务器 。我对Apache了解不多,但我知道可以使用HTAccess指令 。我知道我发起MySQL请求的数量,我也知道我只了解wordPress/ target=_blank class=infotextkey>WordPress环境下的PHP 。
从这个角度看,我根本算不上一名开发人员 。另一方面,全栈通常指的是将前端工作混合在一起,我足以胜任,而且仅凭我的前端技能,我可以在我职业生涯的这几十年中构建几十个(或数百个)个网站 。不管怎么说,全栈是绰绰有余了 。
还有许多其他的栈 。
LAMP对如何构建前端没有特别的规定 。在它那个时代,你需要构建一个后端来输出html,而这就是你的前端 。
自从JAVAScript出现以来,另一个臭名昭著的栈是MEAN栈(MongoDB Express Angular Node) 。
替换掉栈中的某个部分也是完全合理的 。也许你会在LAMP栈中使用Nginx而不是Apache,或者使用PostgreSQL而不是MySQL 。值得注意的是,MEAN栈的每一层都被新技术所取代 。Node把JavaScript引到后端,它可以驱动web服务器、处理路由、连接数据源、运行构建过程、编译代码等等 。
全球的全栈开发人员几乎用JavaScript编写项目 。难怪有些人认为自己“全栈”了 。一种单一的语言,比如JavaScript,可以在浏览器中运行,并且是一项重要的前端技术,那它就是一项可以广泛移植的技能 。
MEAN栈可以像LAMP栈一样轻松地交换层 。可以使用Fauna或Firebase之类的来做数据存储 。也可以使用Vue或React,而不是Angular 。又或许不需要Express,因为框架有路由或在客户端运行的 。
Shawn Wang开创了另一种流行的栈STAR(Design Systems TypeScript Apollo React):
这就是JavaScript 。
值得注意的是,虽然我们仍然把它看作是一个栈,但是我们对服务器和服务器软件的考虑却很少,以至于它们并不是堆栈的关键部分 。并不是说开发人员和公司不把它当回事,而是它现在比过去更加抽象 。我想以无服务器的世界为例 。问题不在于我们的服务器应该使用什么操作系统,而在于运行JavaScript最划算的平台 。
因此,堆栈会随着时间而发展 。但问题不只是在于使用什么技术,而是我们把哪种技术应用于堆栈技术中 。全栈的意义也是随着时间的变化而变化的…我们现在所处的时代是,掌握了JavaScript就可以彪炳为全栈 。你可以使用客户端网站框架或架构师组件,或将它们组合起来构建整个前端 。你可以编写web服务器 。您可以编写后端代码联调API 。你可以执行所有的状态管理 。你可以构建流程和部署管道 。如果你愿意,甚至可以将css引入到JavaScript中 。
尽管我们主要聚焦于JavaScript,但人们的技能也不仅限于此 。再加上HTML和CSS,Git foo,还懂一点DevOps,你就是一个真正的web全能型人才了 。你都能做到!
实际上,我觉得这很帅 。它确实增强了开发人员的技能 。虽然前端开发的门槛是一个值得考虑的问题,但是想到全部都降低了门槛的话也很有趣 。对于我来说,看到前端开发不断发展,直到几乎要统治整个栈,这是一件非常酷的事情 。可以说是全能的前端开发人员 。
推荐阅读
- 珠穆朗玛峰长草了,你们知道意味着什么吗?
- 男生带有右耳钉意味着什么 男生带有右耳钉代表什么意思
- 周公解梦梦见自己穿的鞋子破了意味着什么 梦到自己穿的鞋子破了是什么意思
- 手机设置的禁区!神秘的开发者选项你弄懂了吗
- 阿里的程序员常用的 15 款开发者工具
- 2022今天央行宣布降息了吗,国家降准降息意味着什么
- 梦见很多人在一起吃饭意味着什么 梦到和很多人一起吃饭
- 微信视频号来了,视频号对微信意味着什么?
- 什么是全栈工程师
- 周公解梦梦见豆虫 梦见豆虫意味着什么?