所谓的全栈开发者?“全栈”? 别逗了

所谓的全栈开发者?

全栈开发者本身是音译过来的,叫做Full Stack Developer,本意指的应该是“全能开发者”,通俗点说就是自己能搞定一套系统(C/S,B/S,App等)
目前所指的全栈开发者/全栈工程师,通常指的是Web开发中的前后端都会的开发者。即自己能搞定前端部分(HTML+CSS+Javascript等),又能结合后端部分(如PHP+MySQL等),同时还能自己管理好服务器(LAMP/LNMP+网站优化等)

所谓的全栈开发者?“全栈”? 别逗了_第1张图片
全栈开发者的优缺点:
1、优点
① 技术面全面:请注意用词是技术面,即了解的多,但是并非全部精通。广度和深度是一个一直被讨论的话题,都有好处,也都有缺点。所以仁者见仁智者见智。
② 涉猎广泛:便于做产品设计、团队管理等
③ 节省成本,反倒薪资高:社会上绝大部分企业是中小企业,而中小企业肯定都愿意去节省成本,如果有一个全栈开发者能够搞定设计工程师+前端工程师+后端工程师+运维工程师,那么公司肯定也愿意多花点钱给一个人
2、缺点
① 广而不专:所以在精细化和深度设计上肯定是存在短板的
② 精力有限:网上有人用词叫做“样样行”==“样样怂”,一个人到底是没有那么多精力去钻研各个方面的,而且自我的调度也存在一些问题。
3、总结
这个社会现状就是活到老学到老,而且艺多不压身。今天的铁饭碗明天说不定一文不值,在能看到未来的行业里,做专;在自己不清楚未来如何时,做多。多一些学习,多一些专业,也是给明天的自己多一分保障。

所谓的全栈开发者?“全栈”? 别逗了_第2张图片

前端工程师:在打开一个网站时,屏幕上的一切都属于前端。前端工程师负责创建用户界面背后的代码。这些工程师不仅要熟悉HTML、JavaScript与CSS,还要掌握很多框架。这些框架有Foundation、Angular JS、Ember JS、Backbone及Bootstrap等等。前端工程师要与设计师和其他专家协同工作,从而将网站从模型转换为可使用的模式。

后端工程师:在你每天所访问的网站背后有服务器网络、数据库以及各种应用,他们相互协作将你所请求的网页与数据传递给你。后端工程师负责构建这些组件。他们要擅长各种编程语言,如Python、.Net、Ruby、Java及PHP等等,从而通过这些语言来编写程序。他们还需要使用各种数据库程序如MySQL、SQL Server及Oracle等来操纵信息并将其传递给最终用户。后端工程师需要与组织中的各种经理及其他成员通力配合来完成工作。

全栈工程师:全栈工程师既要了解后端开发,也要了解前端开发。他们是“全方位”的工程师,熟悉服务端的同时又懂客户端用户体验。全栈工程师理解Web开发进程的每一个方面,同时又会就整体策略与最佳实践对相关干系人提出建议与指导。

所谓的全栈开发者?“全栈”? 别逗了_第3张图片

全栈开发者是对每一层都熟悉的人。

全栈的层:
1.服务器、网络和服务器环境
知道哪里可能崩了和为什么会崩,没有什么是理所当然的。
适当的使用文件系统,云存储、网络资源,必须具备数据冗余和可用性的概念。
知道应用的伸缩性对硬件的需求。
什么是多线程和竞争条件?想想看,在开发机上你可能看不到这些,但是现实环境中它们就是会发生。
全栈coder还要能与运维并肩作战。提供有价值的错误信息和日志。确保它们是可靠的,因为运维会在你之前看到这些东西。

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要明确知道用户使用软件时的场景,而且要领会业务。

你可能感兴趣的:(所谓的全栈开发者?“全栈”? 别逗了)