报名参加CloudWeGo黑客松,奖金直推双丰收! 了解详情
写点什么

社区热议“全栈”开发者

  • 2014-01-24
  • 本文字数:2114 字

    阅读完需:约 7 分钟

最近一段时间,国内开发社区针对“什么是全栈 (Full Stack) 开发者”以及“为什么”、如何成为“全栈”开发者进行了热烈的讨论,各种观点百花齐放,本文精选了其中的精彩观点。

最初的讨论来源于国外的一篇文章“什么是全栈开发者”,其中指出 Facebook 招聘的员工都要求是“全栈”工程师,作者认为“全栈开发者是对每一层都熟悉的人,如果不真正对所有的软件技术感兴趣不会对它们精通。”这些层包括:

  • 服务器、网络和服务器环境,比如:恰当地使用文件系统、云存储、网络资源,必须具备数据冗余和可用性的概念;知道应用的伸缩性对硬件的需求;提供有价值的错误信息和日志。
  • 数据建模,比如:能够建立合理的、标准的关系模型,包括外键、索引、视图、查找表等;要熟悉非关系型数据存储,并且知道它们相对关系型存储优势所在。
  • 业务逻辑,比如:应用提供的核心价值;可靠的面向对象技能;可能会用到的框架。
  • API 层、Action 层、MVC,比如:理解外部对数据模型和业务逻辑的操作;编写清晰、一致和易用的接口。
  • UI,比如:知道如何创建可读性高的页面布局;掌握 HTML5 和 CSS。
  • 用户体验,比如:会发现和审视需要 8 次点击、3 步操作的流程,并最终把它一键搞定;提供有价值的错误信息。
  • ……

涂雅在博客中撰写了两篇文章讨论“全栈”开发者,他认为:“全端工程师不是什么高大上,它只是一种职业,和 DBA 运维产品工程师一样,只是职业的细分。全端工程师不是要吃掉前端更不是要吃掉后端,它是环境发生到一情况况所催生的一种新的职业,它恰恰是市场更细分的结果。”为什么需要“全栈”开发者,涂雅认为我们需要有全局视野的人:

老板们都说,开发人员要有产品意识,要有用户意识,如果你只做后端,恐怕你是不能理解前端对用户的重要性。其实说来惭愧,很多人误以为我是个臭前端,其实我从来没有专职做过前端,我很抱歉我站错了队。这么多年,我一直是在写点前端并厚着脸皮混在后端,作为一个低水平的臭后端,我只是更喜欢和用户接近一点而已。

IT 行业的鄙视链是很严重的,大家之间相互鄙视,或者,你换个岗去做对方的工作,我相信你就能了解到他们的工作价值了。前端说用户体验重要,后端说没有后端你前端屁都不是,彼此对调一下,你能感受更多。

一种技术不能解决所有问题,我们需要从多种技术中权衡,到底是用 Hybrid 还是用 Native,这是要根据你的业务场景和人员配置情况来判断的,不是说看别人写的几篇教程或者指南就能决定的。

在知乎社区上,很多人针对全栈开发者展开了精彩的讨论。其中 Cat Chen 现身说法,他认为任何一方面的具体经验都不重要,重要的是思维方式和学习能力。

Facebook 的众多海报当中,有一张写的是“任何一个 Facebook 的问题,都不是别人的问题”。有问题,你就需要去评估是否值得解决。如果值得解决,你就应该着手去解决,而不是假设公司内会有另外一个人比你更合适解决这个问题。这时候很可能你就需要去做你从来没有做过的事情,需要学习你原本可能完全不懂的技术。

如果你是个专门做数学模型的博士,加入 Facebook 原本是打算做搜索结果优化的,结果发现这不是最急需解决的问题,JavaScript 性能才是最需要解决的问题,你怎么办?如果你以为 Facebook 需要的是你做数学模型的经验,那你就错了。Facebook 需要的是你完成博士学位的学习能力。你从来没做过 JavaScript 并且觉得 JavaScript 很恶心?正确的做法是立即在网上买几本 JavaScript 入门的书连夜看完,然后着手分析性能瓶颈并且解决。在你完成手动优化后,你还可以思考一下能否把这做成自动化,例如说在代码提交时分析 JavaScript 语法树并且指出可能成为性能瓶颈的地方,又或者说从用户浏览器那里收集性能数据扔到 Hive 然后再从中分析产生瓶颈的特征。这些都可能涉及到一些你没有做过也没有学过的东西,但问题摆在那里你就需要去解决,而无论这要求你去钻研什么。这就是我所说的学习能力。

李楠则认为,相信全栈开发者的核心并非否定团队和协作,而是更多的体现在架构设计、快速原型和问题解决方面。

全栈开发者在快速原型上也很有优势,因为省去了大量的管理和沟通成本。而且,这并非就意味着一定在代码质量或者测试上有缩水。

服务器压力太大未必需要通过后端解决,优化 SQL 是选择,而拿一部分数据和运算到前端也许是更加合理和低成本的选择。一个系统运行多年,最后遗留的问题很可能需要对业务和技术都有深入理解的人才能解决。

技术人员的价值不是指派做了一半的问题给队友,而是更快更好的搞定事情。

尤雨溪认为,态度才是最重要的事情。

即使都是全栈开发者,每一个人各自的技能特点也肯定会不一样,有人在前端更擅长一些,有人在服务器层面更有经验… 但其实没有什么硬性的门槛,需要的是解决任何问题的能力和意愿。你要做到的就是不固步自封在一个领域。遇到问题,就去研究,不因为问题不在你的领域就放弃或者推给别人。即使一开始的解决方案很笨拙也无所谓,想办法把事情搞定。比如说我要做一个网站,我有一些东西没碰过,但我有足够的兴趣和动力去搞个八九不离十。当你经历过一次这个过程以后,你就会有信心去弄明白更复杂的东西,在之前的基础上进一步去消化、改进、学更多的东西。

有关全栈开发者的讨论还在继续,InfoQ 的读者对此有何看法,欢迎发表自己的意见。

2014-01-24 08:002798
用户头像

发布了 501 篇内容, 共 265.3 次阅读, 收获喜欢 61 次。

关注

评论

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

JavaScript 进制问题

空城机

JavaScript 11月日更

从内存分析局部变量与成员变量的区别(Java)

Java 程序员 后端

从单体式架构迁移到微服务架构

Java 程序员 后端

用明道云实现与物流信息交互

明道云

从架构演进的角度聊聊Spring Cloud都做了些什么?

Java 程序员 后端

什么?JDK16刚刚又发布了?赶紧尝尝鲜

Java 程序员 后端

从一道 LRU 算法题说到缓存淘汰策略

Java 程序员 后端

从三线城市公司跳槽美团关键,啃透了腾讯T8-3手写Java高级笔记

Java 程序员 后端

手慢无!2021 OceanBase 数据库大赛专属键盘等你来拿!

OceanBase 数据库

数据库 开源 架构 大赛 11月日更

从美术生到程序员转型之路【我的故事】

Java 程序员 后端

从SpringBoot源码看资源映射原理

Java 程序员 后端

你以为自己Nginx掌握的很好?这份1330页Nginx笔记,颠覆你的认知!

Java 程序员 后端

今年面试大厂屡屡失败,一波三折最终入职拼多多java岗,我经历啥?(1)

Java 程序员 后端

从头到尾说一次 Spring 事务管理(器),还不会你打我!

Java 程序员 后端

以后面试再也不怕被问Java并发编程了,多亏了这本PDF电子书

Java 程序员 后端

企业级的SaaS多租户微服务平台SpringBlade 项目,源码分享

Java 程序员 后端

电竞入亚,行业爆发,你的游戏是否还缺个「大招」?

融云 RongCloud

游戏 社交 泛娱乐

什么是分布式系统,如何学习分布式系统

Java 程序员 后端

作为Java面试官,我会问Java程序员一些什么问题?

Java 程序员 后端

Github霸榜月余~,原来是阿里大咖的千亿级并发系统设计手册上线了

Java 编程 程序员

作为一名程序员,你觉得最重要的能力是什么?

Java 程序员 后端

你居然还去服务器上捞日志,搭个日志收集系统难道不香么!

Java 程序员 后端

今日话题:程序员,从培训班出来的都是垃圾?你们是怎么看待的

Java 程序员 后端

从这五个方面看hashmap,新手一遍就能懂

Java 程序员 后端

传授一套月薪20k程序员的高薪秘籍

Java 程序员 后端

融云与 HIFIVE 达成战略合作,共创「沉浸式」社交解决方案

融云 RongCloud

通信云 语聊房 语音社交

什么!有一定的学习门槛你就学不好?Java多线程,从基础到并发模型统统帮你搞定!

Java 程序员 后端

从JVM锁到Redis分布式锁,对小白十分友好

Java 程序员 后端

从筛选简历和面试流程讲起,再给培训班出身的程序员一些建议

Java 程序员 后端

嘉宾就位 | Unity、Beeto、荔枝、阿里云、StarMaker、LiveMe、积目…花城论剑

融云 RongCloud

通信云 社交 元宇宙 泛娱乐 出海

今年面试大厂屡屡失败,一波三折最终入职拼多多java岗,我经历啥?

Java 程序员 后端

社区热议“全栈”开发者_Meta_崔康_InfoQ精选文章