阿里妹导读:如何成为一名全栈工程师?需要具备哪些技术积累?成为全栈工程师有哪些好处?希望本文能为期望成为全栈工程师的同学提供一点帮助,和同学们一起分享交流。
文末福利:超全学习资料,免费领。
作为开发者,我们不过度区分服务端 server 客户端 client,我们是 web developer,从事 web 开发,多去理解技术和实践落地。
掌握足够 多的输入。
有属于自己的思考和严谨的产出。
投资一个好的 IDE,例如 Webstorm、Goland、IntelliJ IDEA 等,坚持使用。
认准官方文档,坚持学习。
API 手册查看,不断熟悉和记忆。
写学习总结,形成良性循环:定义功能 -> 代码设计 -> 完成功能 -> 重构优化 -> 优化代码设计 -> 完成 -> 重构 -> 完整掌握。
理解清楚,事半功倍。
必备知识:语言基础,Web 应用的基础,熟悉 Linux 运行环境,网络传输过程 HTTP 协议,TCP 协议。
进阶知识:熟悉浏览器请求过程,Web Server 端口监听原理,数据库原理,浏览器请求原理,应用程序安全通信 TLS 协议,数据加密解密方案,数据签名方案。
架构层面:应用分层模式,数据模型定义模式,微服务划分思路,系统设计模式。
把这些最常见的问题背后的原理理解清楚,就能独立解决绝大多数问题,提升全链路研发效率,和各个岗位的人沟通无障碍,协作无阻力。
语言是最基础的:HTML/CSS/Javascript/ECMAScript/Typescript/Node.js/Golang/Java 等。
网络协议层 HTTP 协议,DNS,7层/4层负载均衡,这里会涉及到服务端,前端,SRE,网络安全等各个岗位的基础知识。
框架层原理和细节:应用框架 React/Koa/Spring,数据库框架,安全组件。
结合公司技术体系衍生的框架层约定和业务框架:阿里/蚂蚁中间件。
工程化 :CI/CD 持续集成,自动化测试,代码构建发布过程。
基础设施 IaaS:私有云、混合云、公有云。AWS、阿里云等。
由于无线的特点:会遇到的问题 HTTP 协议相关的占比很大,端上的性能优化,网路异常处理,前后端交互的基本过程。线下调试遇到时能快速定位和修复,线上遇到问题时,能第一时间做出快速的决策。
不是所有问题都是靠经验可以弥补的,人在很多时候会重复犯错,就怕遇到重复的问题还是找不到根因,所以需要从源头上解决,还是要掌握全栈基础知识。
基础知识理解清楚,在使用上层的技术,例如各种框架和运维体系时,可以快速看到使用的技术背后的本质是什么。
能减少犯错几率,做更多正确的决策。
三人行必有我师,向身边的人学习。
优秀的设计不仅做出的系统可靠,设计得也简单清晰易懂。
写的时候没有负担,维护的时候也没有高昂成本。
全栈不代表降低要求,全栈是为了提升开发效率,如果质量差,不好维护,反而降低了团队效率。
避免只是多涉猎,而缺少实战,看过不等于会运用。
能写全栈不代表写出的代码能上生产环境,避免给自己下意识地降低要求,写出的代码质量不过关就违背了全栈的初衷。
提高研发效率,提升解决问题能力,提高排查问题效率,可以快速侦破问题,及时处理问题。
后端同学:能理解为什么前端同学会对接口字段提出很高要求,期望后端提供的接口按照开源社区的标准来定义(好的接口是自说明的,不用过多的文档,遵循业界 API 设计规范,使用接口符合人的直觉,接口字段稳定)。
前端同学:能理解为什么后端同学不愿意轻易写特殊逻辑判断(一套模型已经定义得很优雅了,加个特殊分支就破坏了代码的一致性)。
研发同学:能理解为什么运维同学不愿意轻易给运维权限(底层运维一旦操作不当,做成的破坏力太大,需要深厚的技术积累)。
真实的反例:全栈有 助于减少低级错误的出现 。
应用服务上线,服务器配置 nginx 代理线上 CDN,返回 502 了,开发和 SRE 一起排查下来是没有开公网访问权限(原因:应用 owner 不熟悉网络知识和运维体系,没有和 SRE 打好配合)。
前端域名和后端域名不同,浏览器请求失败,因为有跨域问题(原因:不熟悉 HTTP 协议中的 header 运用)。
后端接口名字设计有歧义,不规范,不满足 RESTful API 规范(原因:不熟悉基于 HTTP 协议的规范,本质上是 HTTP 的 中 method 的运用)。
其他例如 websocket 问题,前端性能优化,缓存相关等问题排查效率低(原因:绝大多数跟不熟悉 HTTP header 有关)。
开发者如何自我提升?如何拓展自身技能,补齐技术短板?阿里巴巴有哪些技术沉淀,如何学习借鉴?阿里技术免费开放超全开发者学习资料,涵盖各领域的上百本阿里系技术电子书、各种技术大会资料合集、知识图谱、面试宝典等,助力所有开发者共同学习进步!
识别下方二维码加「阿里妹」微信好友,回复 “资料大全” 立即领取吧~