全栈开发什么意思

核心提示在诸多的企业尤其是创业型公司中,HR 在招聘时往往希望可以招到一名技术全能型人才,而这种人才又被称之为全栈开发者,那么对于全栈开发者而言,都需要具备哪些技能?作者 | Chris Coyier译者 | 谭开朗,责编 | 屠敏以下为译文:最近

很多企业,尤其是初创公司,HR在招聘时往往希望招聘到一个技术全能的人才,这个人才也叫全栈开发者。全栈开发者需要哪些技能?

作者|克里斯·科伊尔

译者|谭梁楷,编辑|屠敏

以下是翻译:

最近,在我参加的一个Web技术会议上,一个开发同事问了我这个问题。这个开发同事遇到的很多新人都自称是全栈开发者,有点像Bob自称Tony,名不副实。

以这位开发同事提出的问题作为本文的标题,感觉他理解了“全栈开发者”的基本概念,但我不确定他真正想表达的是什么。他的问题有一种语气,一种不喜欢这个词的语气。

传统解释:

“全栈”开发者被公认为既能做前端开发,又能做后端开发。

现在每个人都需要DevOps。“栈”是所有这些内容的组合,所以全栈开发者可以理解,在建设网站的时候,全栈开发者无所不能。

多年来,一些书库声名狼藉。你可能听说过LAMP stack。

一个LAMP stack的全栈开发者,意味着要掌握Linux,Apache,MySQL,PHP。一个网站运行在这个栈上,我负责它的开发。在某种程度上,我认为自己是一个全栈开发人员。

“在某种程度上”是一个宽泛的术语。我对Linux一无所知,但我知道它运行在我的web服务器上。我不太了解Apache,但是我知道我可以使用HTAccess指令。我知道自己发起的MySQL请求的数量,也知道自己在WordPress环境下只懂PHP。

从这个角度来说,我根本不是一个开发者。另一方面,全栈通常是指前端工作的混合。我足够胜任,光凭我的前端技能,在我职业生涯的几十年里,就能建几十个网站。反正整叠都绰绰有余。

还有很多其他的栈。

LAMP对于如何构建前端没有特别的规则。在它的时代,你需要建立一个后端来输出HTML,这就是你的前端。

自Javascript出现以来,另一个臭名昭著的堆栈是MEAN stack。

更换堆栈的某个部分是完全合理的。也许你会在LAMP stack里用Nginx代替Apache,或者用PostgreSQL代替MySQL。值得注意的是,MEAN stack的每一层都被新技术所取代。后端引入Node Javascript,可以驱动web服务器,处理路由,连接数据源,运行构建过程,编译代码等等。

全世界的全栈开发者几乎都是用Javascript写项目。难怪有人觉得他们是“全栈”。单一语言,比如Javascript,可以在浏览器中运行,是重要的前端技术,所以是可以广泛移植的技能。

平均堆叠可以像灯堆叠一样容易地交换层。您可以使用动物群或Firebase进行数据存储。也可以用Vue或者React代替Angular。可能不需要Express,因为框架有路由或者运行在客户端。

王自如创造了另一个受欢迎的stack STAR:

这是Javascript。

值得注意的是,尽管我们仍然将其视为一个堆栈,但我们对服务器和服务器软件的关注是如此之少,以至于它们并不是该堆栈的关键部分。不是开发商和公司不重视,只是现在比过去抽象了。我想以无服务器世界为例。问题不在于我们的服务器应该用什么操作系统,而在于运行Javascript最划算的平台。

因此,堆栈会随着时间的推移而发展。但问题不仅仅是用什么技术,而是我们把什么技术应用到栈技术上。全栈的含义也随着时间而变化……我们现在处于一个通过掌握Javascript就可以进行全栈的时代。你可以使用客户端网站框架或架构组件,或者将它们结合起来构建整个前端。你可以写一个web服务器。可以写后端代码调试API。您可以执行所有状态管理。您可以构建流程和部署管道。如果你愿意,你甚至可以将CSS引入Javascript。

虽然我们主要关注Javascript,但是人的技能并不局限于此。加上HTML和CSS,Git foo,懂一点DevOps,你就是一个真正的全能型web人才。你能做到的!

其实我觉得很帅。它确实提高了开发人员的技能。虽然前端开发的门槛是一个值得考虑的问题,但是想想都是降低了门槛的,很有意思。对我来说,看到前端开发发展到几乎主导整个栈,是一件非常酷的事情。可以说是全方位的前端开发者。

这让我想起了WordPress site-slinger的威力。你可以做很多事情,即使你不能完全理解其中的每一点。

与会的开发同事继续说道:

全栈,为什么开发者可以这么骄傲?他们中的许多人带着自豪的微笑介绍自己。出于某种原因,他们觉得有必要在介绍自己时强调全部筹码。

我感觉这是因为:骄傲。

骄傲是一件棘手的事情。我的父母经常告诉我,他们为我或我所做的事情感到骄傲,这对我意味着一切。这对双方都有好处。然而奇怪的是,骄傲也是七宗罪之一。如其所言,它也可能是所有其他罪恶的根源。我不想夸大事实,但我认为这两者之间有某种联系。被认可,觉得自己强大有能力是一回事,夸夸其谈,不觉得自己受限是另一回事。

我们会遇到很多瓶颈,尤其是在争取优秀工作的时候,而不仅仅是敷衍了事。如今,如果你想脱颖而出,你必须树立榜样。你的视觉设计能力如何?你是建立一个设计系统还是实现一个现有的系统?你维护这个系统多少年了?你对有困难的技术债有很好的判断力吗?你是如何与同事实现合作共赢的?可以推广用户测试吗?如何诊断性能瓶颈?如果出现严重的服务器问题,您应该怎么办?了解服务器日志有帮助吗?你精通访问审计吗?你曾经处理过复杂的关系数据和缓慢的查询吗?

我并不是说谁不是全栈开发者,或者谁没有资格获得这个特殊的荣誉——只是网站是一个需求各异、栈不断变化的大世界,需要多方面的技能。如果你面试的是一份需要全栈开发人员的工作,请告诉他们,无论如何,你是一个多面手。

原文:https://css-tricks.com/what-does-it-mean-to-be-full-stack/

这篇文章是CSDN翻译的。转载请注明出处。

【结束】

 
友情链接
鄂ICP备19019357号-22