• 全栈开发者意味着什么?


    在诸多的企业尤其是创业型公司中,HR 在招聘时往往希望可以招到一名技术全能型人才,而这种人才又被称之为 全栈开发者,那么对于全栈开发者而言,都需要具备哪些技能?

    以下为译文:

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

    本文以这位开发同事提的问题作为标题,我感觉他了解人们所说的“全栈开发人员”这一基本概念,但我不确定他到底想表达什么。他的问题带有一种语气,一种不喜欢这个词的语气。

    传统释义:

    “全栈”开发人员被认定为,既可以做前端开发工作,也可以做后端开发工作。

    现如今都需要DevOps(例如Git、测试和将网站投产)。“栈”是所有这些内容的组合,所以全栈开发人员可理解为:当涉及到构建网站时,全栈开发人员可以搞定所有的事情。

    这些年来,有些栈已经声名狼藉了。你可能听说过LAMP栈(Linux Apache MySQL php)?

    LAMP栈的全栈开发人员意味着掌握Linux、Apache、MySQL和php。(抽象地说:服务器软件、web服务器、数据库、后端语言。)一个网站在这个栈上运行,而我负责它的开发,在某种程度上,我自认为我一名全栈开发人员。

    “某种程度”是一种宽泛的说法。我对Linux一无所知,但我知道它运行于我的web服务器。我对Apache了解不多,但我知道可以使用HTAccess指令。我知道我发起MySQL请求的数量,我也知道我只了解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全能型人才了。你都能做到!

    实际上,我觉得这很帅。它确实增强了开发人员的技能。虽然前端开发的门槛是一个值得考虑的问题,但是想到全部都降低了门槛的话也很有趣。对于我来说,看到前端开发不断发展,直到几乎要统治整个栈,这是一件非常酷的事情。可以说是全能的前端开发人员。

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

    资源搜索网站大全 http://www.szhdn.com 广州VI设计公司https://www.houdianzi.com

    会议上遇到的开发同事继续说道:

    全栈,为什么能让开发人员如此自豪?他们中的许多人在自我介绍时都是带着自豪的微笑。出于某种原因,他们觉得有必要在介绍自己时强调是全栈。

    我感觉这是因为:骄傲。

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

    我们会遇到很多瓶颈,尤其是在争取出色的完成工作时,而不仅仅是敷衍了事。如今,要想脱颖而出,就必须以身作则。你的视觉设计技巧如何?你是构建设计系统还是实现现有的系统?你维护系统有多少年了?你对困难重重的技术债务有很好的判断力吗?你如何与同事实现合作共赢?你能推进用户测试吗?你在诊断性能瓶颈方面怎么样?如果有严重的服务器问题该怎么办?彪炳为全栈是否有助于理解服务器日志?你精通访问性审计吗?你是否处理过复杂的关系数据和查询迟缓的问题?

    我并不是说谁不是一位全栈开发人员,或者谁没有资格获得这个特殊的荣誉——只是网站是一个有着不同需求和不断变化的堆栈的大世界,它需要多方位的技能。如果你正在面试一份需要全栈开发人员的工作,不管怎么样,请告诉他们你是个全才。

  • 相关阅读:
    EntityFramework 启用迁移 EnableMigrations 报异常 "No context type was found in the assembly"
    JAVA 访问FTP服务器示例(2)
    NuGet Package Manager 更新错误解决办法
    JAVA 访问FTP服务器示例(1)
    RemoteAttribute 的使用问题
    诡异的 javascript 变量
    javascript apply用法
    Babun 中文乱码
    GSM呼叫过程
    转站博客园
  • 原文地址:https://www.cnblogs.com/qianxiaox/p/14010624.html
Copyright © 2020-2023  润新知