纯粹基于道德而掌握开发堆栈的每一方面的预期是合理的吗?可能不是,但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项涉及到编码。
相关推荐
全栈工程师是指掌握多种技能,胜任前端与后端,能利用多种技能独立完成产品的人。 技术有两个发展方向,一种是纵向一种是横向的,横向的是瑞士军刀,纵向的是削铁如泥的干将...可以说全栈什么都会,但又什么都不会。
全栈样板 适用于具有React和表达能力的全栈开发者的样板
近日,编码社区 HackerRank 调研了全球 162 个国家/地区的 116000 多名开发者,正式发布了《2020 HackerRank 开发者技能报告》,基于此,开发者可以了解最新的技术趋势与技能,希望能够给大家带来一定的参考。...
Node.js实战(第2版) 是Node.js的实战教程,涵盖了为开发产品级Node应用程序所需要的...第2版介绍了全栈开发者所需的全部技术,包括前端构建系统、选择Web框架、在Node中与数据库的交互、编写测试和部署Web程序,等等。
2、优秀的成熟的MEVN全栈开发者占比小。 总结: MEVN全栈人才需要加强培养力度,在各领域专业化实践,提升企业创新速度,满足日益膨胀的用户需求。 关键词:计算机, WebApp,电影移动端应用、JavaScript全栈开发、...
一个用于Laravel的全栈框架,它使构建动态UI变得简单而不痛苦。它允许开发者在前端使用PHP编写交互逻辑,无需编写独立的JavaScript代码。对于喜欢Laravel框架的开发者,Livewire提供了一种更加高效的构建动态UI的...
无论你是前端工程师、全栈开发者,还是对JavaScript编程感兴趣的学生,这篇文章都能为你提供有用的知识和技巧。 使用场景及目标: 这篇文章可以帮助你在学习和使用JavaScript时,更快地掌握核心概念和编程技巧。无论...
HarmonyOS测试服务全栈解决方案介绍 如何高效完成HarmonyOS分布式应用测试 HarmonyOS图形栈测试技术深度分析 音视频用户体验测试 基于硬件仿真的测试技术助力开发者高效认证 鸿蒙智联解决方案架构及关键技术 鸿蒙...
内容概要 本视频教程全面介绍了基于SSM(Spring, Spring MVC, MyBatis)框架的商城系统的开发流程。SSM是Java Web应用开发的三大主流框架,广泛用于构建企业级应用...希望提升个人技术栈的全栈开发者 计算机科学与技术
全栈Serverless 应用开发指南与实践 从视频云看媒体处理 -- 以 FFmpeg 为例 4、腾讯看点专场 PCG AI中台和推荐系统介绍 腾讯看点投放系统介绍:推荐系统的进化伙伴 实验驱动的前端落地页实践 前端智能化实践——让...
适合人群:node.js初使用者,前端开发者,全栈开发者。 介绍:Node.js的是建立在Chrome的JavaScript的运行时,可方便地构建快速,可扩展的网络应用程序的平台。Node.js使用事件驱动,非阻塞I/O模型,轻量、高效,...
这个程序员简历模板适用于各种编程和软件开发相关的职位申请,包括但不限于软件工程师、前端开发者、后端开发者、全栈开发者、数据科学家等。它特别适合以下对象: 新毕业生:刚从大学或编程培训课程毕业,寻找入门...
全栈开发者中心 微信号: admin10000_com,全栈开发者,也叫全端工程师,指同时具备 Web前端,后端,移动端的能力,掌握多种编程语言,并能利用多种技能独立完成产品的人。 算法爱好者 微信号: AlgorithmFans,算法是...
1. Package Control 3. GitGutter 5. AllAutocomplete 6. Terminal 7. SublimeREPL 8.
3. 深入浅出:全栈编程指南以易于理解和学习的方式呈现内容,适合初学者和有一定基础的开发者阅读。 4. 实用工具和技术:资源中介绍了一些常用的工具和技术,如Python、TensorFlow、Hadoop等,帮助读者快速上手并...
3. 深入浅出:全栈编程指南以易于理解和学习的方式呈现内容,适合初学者和有一定基础的开发者阅读。 4. 实用工具和技术:资源中介绍了一些常用的工具和技术,如Python、TensorFlow、Hadoop等,帮助读者快速上手并...
3. 深入浅出:全栈编程指南以易于理解和学习的方式呈现内容,适合初学者和有一定基础的开发者阅读。 4. 实用工具和技术:资源中介绍了一些常用的工具和技术,如Python、TensorFlow、Hadoop等,帮助读者快速上手并...
3. 深入浅出:全栈编程指南以易于理解和学习的方式呈现内容,适合初学者和有一定基础的开发者阅读。 4. 实用工具和技术:资源中介绍了一些常用的工具和技术,如Python、TensorFlow、Hadoop等,帮助读者快速上手并...
3. 深入浅出:全栈编程指南以易于理解和学习的方式呈现内容,适合初学者和有一定基础的开发者阅读。 4. 实用工具和技术:资源中介绍了一些常用的工具和技术,如Python、TensorFlow、Hadoop等,帮助读者快速上手并...
3. 深入浅出:全栈编程指南以易于理解和学习的方式呈现内容,适合初学者和有一定基础的开发者阅读。 4. 实用工具和技术:资源中介绍了一些常用的工具和技术,如Python、TensorFlow、Hadoop等,帮助读者快速上手并...