什么是全栈开发者

纯粹基于道德而掌握开发堆栈的每一方面的预期是合理的吗?可能不是,但Facebook这样要求。一个Facebook的员工在OSCON告诉我,Facebook只雇佣全栈开发者。那么全栈开发者是什么意思呢?

对我来说全栈开发者是对每一层都熟悉的人,如果不真正对所有的软件技术感兴趣不会对它们精通。

好的开发者熟悉整个堆栈,他们是知道如何使生活周边的事更容易的人。这就是为什么在办公室我如此反对偏执的原因,当然,政治及沟通挑战在大型组织中还是按固有的套路。我认为Facebook所持有的招聘政策是:如果聪明的人用脑用心,就能在更短的时间内构件更好的产品。

全栈的层:

1.服务器、网络和服务器环境

知道哪里可能崩了和为什么会崩,没有什么是理所当然的。

适当的使用文件系统,云存储、网络资源,必须具备数据冗余和可用性的概念。

知道应用的伸缩性对硬件的需求。

什么是多线程和竞争条件?想想看,在开发机上你可能看不到这些,但是现实环境中它们就是会发生。

全栈coder还要能与运维并肩作战。提供有价值的错误信息和日志。确保它们是可靠的,因为运维会在你之前看到这些东西。(原文为DevOps)

2.数据建模

如果数据模型有缺陷,业务逻辑和上层逻辑就要用奇怪的代码(很丑)来弥补数据模型的缺陷。

全栈开发者要能够建立合理的、标准的关系模型,包括外键、索引、视图、查找表等。

全栈开发者要熟悉非关系型数据存储(应该指的不止是NoSQL),并且知道它们相对关系型存储优势所在。

3.业务逻辑

应用提供的核心价值。

可靠的面向对象技能。

可能会用到的框架。

4.API层、Action 层、MVC

理解外部对数据模型和业务逻辑的操作。

该层会有很多框架应用。

全栈开发者要具备编写清晰、一致和易用的接口。过高的复杂度让人厌恶。

5.UI

全栈coder:a)知道如何创建可读的页面布局;b)或者明白自己需要帮助设计师。A或B,关键是要能有好的视觉设计。

掌握HTML5和CSS。

JS正在逐步成为语言新锐,Javascript的世界里已经完成了很多激动人心的工作(node, backbone, knockout...)。

6.用户体验

全栈coder要知道用户需要的就是It works!

一个好的系统不会废了用户的手腕和眼睛。一个全栈coder会发现和审视需要8次点击、3步操作的流程,并最终把它一键搞定。

提供有价值的错误信息。如果崩溃了,就要向用户致歉。有时候程序员会写出让用户自我感觉很二的错误信息。

7.知道用户和业务到底要什么

现在我们模糊了架构的界限,但却可能远离了实际需求。

全栈coder要明确知道用户使用软件时的场景,而且要领会业务。

关于这个问题的其它方面:

编写高质量的单元测试能力。顺便说一下现如今连JS也可以做单元测试了。

持续集成。发掘程序构建中重复、可自动化的流程,在一定程度上自动完成测试、文档和部署。

对安全性的敏感,不同的层都可能有自己的脆弱点。

最后:

应用严重依赖一个特定的第三方实现(lib、系统、硬件等)是非常糟糕的实践。全栈开发者要知道了解全面不代表就可以走捷径。当然在抛弃原型法中,他们可以这么干。

在技术起步时很需要全栈开发者的多面技能。然而,在团队定型后,会越来越需要专注技能。

我不觉得在具备了多语言、多平台甚至跨行业的职业生涯之前,你可以称自己为全栈开发者。全栈远超“高级工程师”,它更接近是多语言的开发者并且能在更高的角度看到之间的关联。注意在我的列表中只有3-5项涉及到编码。

http://www.oschina.net/translate/what-is-a-full-stack-developer

时间: 2024-11-01 14:21:25

什么是全栈开发者的相关文章

2019,全栈开发者应该学些什么

前端 HTML.CSS 和 JavaScript 是必须掌握的,你还需要学习 React.Vue 或 Angular 等前端框架或库.但是,你应该选择哪一个?对于一个真正的全栈开发者,你可以在 2019 年选择这三个框架中的任何一个. 来自 React 16 的更新 你需要了解 React 的基础知识及其基于单向数据流架构的组件.今年我们看到了 React 16 的大量更新和 2019 年即将发布的一些小版本更新. 新的生命周期方法: React 16.6 中的 Suspense for Cod

全栈开发者都应该关注这些(转载)

这篇文章推荐了包括技术.设计.极客和创业相关的热门公众号. 1.面向对象 「面向对象」一个专门为 IT 单身男女服务的征友相亲公众号.可以发布单身男生和女生相亲信息.既可以公开相亲,也可以加入更具隐秘性的相亲圈. 微信号:mxdx01 2.微周刊 「技术微周刊」每周一期,一期包括和技术相关的重要业界资讯 和 技术文章与动态.周刊的内容甄选自一周的精彩内容,有技术干货.技术动态,也有技术人生,末尾还加了小彩蛋. 微信号:techweek 3. 创业新锋 「创业新锋」聚焦IT/互联网/移动互联网 领

2015开发者全栈挑战赛开启,等你来战!

汇聚全国开发者,挑战最全开发技术.2015年最后的盛事-----全栈开发者挑战赛于12月25日开启. 此次活动由369Cloud.优才学院.阿里云.百度移动测试中心.新开普.极路由.七牛云存储.Oneapm.coding.新浪云.worktile.乐视超级校园.云锁.滴滴出行等14家企业联合推出,旨在鼓励多方向发展的开发者,挑战赛涵盖PHP.前端.iOS.Android .Java五个方向的内容,更有丰厚礼品等你来拿,挑战赛时间持续到2015年12月31日24点哦~ 还在等什么?快来扫描下面的二

php大力力 [038节] 全栈工程师的含义

管理时间 http://www.nowamagic.net/librarys/eight/posts/2753 从知乎上看到“全栈开发者”讨论之后的自黑 什么是全栈开发者 https://beecloud.cn/?gclid=CJPosoyQz8cCFVQljgodwpIJjw 670 APICloud邹达:用互联网的方式去做移动应用开发 考虑来当个网页工程师吧 AppCan沙龙:如何打造高体验的“互联网+“App? APICloud邹达:HTML5产品开发的挑战 首页  PHP服务器脚本  P

1001种玩法 | 有了这些工具,你离全栈工程师又近了一步

2016中国软件开发白皮书中提到,市场上对技术开发人才的技能需求已经不单单只再是某个领域的初级开发者,那些精通前后端的全栈工程师逐渐被市场亲睐.目前web开发群体5成以上为全栈开发者.预示着随着市场需求的不断变化,市场对开发者逐渐有了更高要求,精通前后端的全栈工程师将成为IT界新一代宠儿.新智云www.enncloud.cn 近几年来经常听到有人提全栈工程师,甚至还有一些公司直接挂出名为"全栈工程师"的招聘职位,开出的薪资更是水涨船高.那么你想要进化成这样的一个斜杠青年需要哪些辅助工具

为什么你应该尝试“全栈”[转载]

编者按:本文作者周楷雯,90 后 CEO,Catch 团队(http://catchchat.me/)创始人,全栈开发者. 擅长 iOS 开发.UI 设计.Ruby on Rails.界面动效.3D 建模等技能. 曾独立开发 Piner.Coinsman.MilkPass 等 App.热爱开源社区, 有 PNChart.Waver 等开源项目. 程序员看到全栈这个概念,大概会有两种反应 1.卧槽,这个好,碉堡了 2.你懂毛,全栈就是样样稀松 以上两种反应其实都有失偏颇,即使只做一种技术,做的很菜

前端开发如何学习?后端?全栈?零基础入门

这是一个2019年你成为前端,后端或全栈开发者的进阶指南: 1.你不需要学习所有的技术成为一个web开发者 2.这个指南只是通过简单分类列出了技术选项 3.我将从我的经验和参考中给出建议 4.首选我们会介绍通用的知识, 最后介绍2019年的Web的一些趋势 1.基础前端开发者 1.1 HTML & CSS 最基础的知识: 语义化的HTML元素 基础的CSS语法 Flexbox & Grid CSS变量 浏览器开发者工具 1.2 响应式布局 响应式设计将不再是网页的加分项, 而是必须的 设置

全栈工程师

关键开发技能(硬实力) 一.Git/GitHub,必须掌握如何使用Git来掌握和分享你的代码.Git作为关键技能的第一条,是因为它不仅仅是一个代码管理工具,更是一种推荐的工作方式.它使你能在任何地方进行开发,高效地管理任何大小的项目,通过Git还能与其他团队成员进行分布式工作,大大提升工作效率. 二.至少一门编程语音,JAVA.PHP.C#.Python.Ruby.Perl等,因为大多数核心业务处理都需要这门语言来写.不但要掌握这门语言的语法,还需要非常熟透如何基于这门语言进行项目的架构.设计.

未来物联网全栈开发 —— JavaScript OR Python?

物联网开发涉及面庞杂,开发周期长,所以我们必须寻找一种覆盖面广的编程语言和方法. JavaScript 支持 HTTP 和 JSON .支持函数式编程.可提供交互式环境等特点堪称适用于物联网全栈开发: Python 作为一种胶水语言,可在物联网及嵌入式系统中承担大量任务,并部分替代以上语言. ??物联网是新一代信息技术的重要组成部分,也是"信息化"时代的重要发展阶段,不太清楚的可以看上篇文章<IoT领域的故事.经历.技术实战>,正所谓语言无国度,无论是 Js 还是 Pyth