开源中国

我们不支持 IE 10 及以下版本浏览器

It appears you’re using an unsupported browser

为了获得更好的浏览体验,我们强烈建议您使用较新版本的 Chrome、 Firefox、 Safari 等,或者升级到最新版本的IE浏览器。 如果您使用的是 IE 11 或以上版本,请关闭“兼容性视图”。
什么是全栈开发者 - 技术翻译 - 开源中国社区

什么是全栈开发者 【已翻译100%】

标签: <无>
自由之信 推荐于 4年前 (共 3 段, 翻译完成于 01-17) 评论 40
收藏  
128
推荐标签: 待读

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

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

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

Garfielt
 翻译得不错哦!

全栈的层:

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

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

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

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

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

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

2.数据建模

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

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

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

3,业务逻辑

  1. 应用提供的核心价值。

  2. 可靠的面向对象技能。

  3. 可能会用到的框架。

4,API层、Action 层、MVC

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

  2. 该层会有很多框架应用。

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

5,UI

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

  2. 掌握HTML5和CSS。

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

6.用户体验

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

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

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

7.知道用户和业务到底要什么
  1. 现在我们模糊了架构的界限,但却可能远离了实际需求。

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

gangzz
 翻译得不错哦!

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

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

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

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

最后:

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

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

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

gangzz
 翻译得不错哦!
本文中的所有译文仅用于学习和交流目的,转载请务必注明文章译者、出处、和本文链接
我们的翻译工作遵照 CC 协议,如果我们的工作有侵犯到您的权益,请及时联系我们
评论(40)
Ctrl/CMD+Enter

国内小公司工作过的基本都能达到这个要求-__,-
楼上....
老板需要的是那种给你1000块,能给他创造2000块甚至更多的人。
这尼玛是在说我么,我c...
发过一次了吧
不少小公司里出来的都是这种感觉,负载均衡,缓存,数据库包括其上跑的程序,都是一个人在搞,我在学校的一个后辈就是这样

引用来自“刘伟”的评论

不少小公司里出来的都是这种感觉,负载均衡,缓存,数据库包括其上跑的程序,都是一个人在搞,我在学校的一个后辈就是这样

并且有一大堆不懂技术的领导或者上司瞎指挥
国内全搞的没几个写单元测试的,别自大了……

引用来自“陨落人间”的评论

老板需要的是那种给你1000块,能给他创造2000块甚至更多的人。

低了。给你1K,最少得创造7K。。。

引用来自“kinogam”的评论

国内全搞的没几个写单元测试的,别自大了……

性质不同哥们,像我做的单子一般都是 b2b b2c 的商城居多,但是又有那些商城成功了呢,里面的一多半单子都是为了搞概念圈钱,他们不关心什么大流量高并发负载均衡缓存群集的,只关心在给投资商或者上司演示的时候不出错就行了.. 所以老板要求我们的不是性能,不是程序的稳健.. 是开发效率

引用来自“Vian”的评论

国内小公司工作过的基本都能达到这个要求-__,-

+1
国内没facebook,所以还是省些心吧
所谓的全栈开发人员就是离开了公司也没本事自己创业的开发人员吧,除了会搞技术就只剩搞技术了,这辈子只能在GitHub上维护几个开源项目,从一个大技术公司跳到另一个大技术公司,业务什么的全都不懂

引用来自“我不叫大脸猫”的评论

所谓的全栈开发人员就是离开了公司也没本事自己创业的开发人员吧,除了会搞技术就只剩搞技术了,这辈子只能在GitHub上维护几个开源项目,从一个大技术公司跳到另一个大技术公司,业务什么的全都不懂

我以为它是褒义词呢
不是要撸主说的,再加上搬运工、电脑维修工、水道工、电工、厨师、蜘蛛侠、蝙蝠侠、超人、变形金刚么?
全站开发者
如果一个开发者只精于一两种技术,我觉得不可思议。。。。
用啥翻译的,这通顺
系统开发、运维、DBA、设备维修、换水、带饭、美工、主持、
本人应家庭困窘,长期接收代写寒暑假作业本,专业维修核潜艇,核弹头翻新,改装,抛光,喷漆.回收二手航母,更换火车内外胎及补胎业务,大修核反应堆,、清洗航母油槽、航天飞机保养换三滤.高空作业擦洗卫星表面除尘.星球设计,全球海洋保养及维护,南极冰川修复,地球形状改造及时空改变颠倒业务,批发歼10,F22 F35 B2轰炸机,另外还有少量野生奥特曼供应
顶部