如何成为全栈工程师?需要什么样的技术积累?成为全栈工程师有什么好处?希望本文能为想成为全栈工程师的同学提供一些帮助,分享给大家。作为开发人员,我们不会过分区分服务器和客户端。我们是web开发人员,从事web开发,需要多了解技术,多实践。成为全栈工程师之路成为全栈工程师既不难也不容易,技术积累占了很大一部分:紧跟前沿,掌握足够的投入。关注海外社区新消息、行业新产品、新技术的发布,学习获取优质信息,坚持并习惯。专注于学习和不断实践,才能有自己的思考和严谨的输出。掌握高效的学习方法。比如我们最近在做k8s容器集群相关的事情。我们需要了解底层设计,做集群调度。我们需要学习Golang。新技术的学习过程:投资一个好的IDE,比如Webstorm、Goland、IntelliJIDEA等,坚持下去。找官方文档,不断学习。查看API手册,不断熟悉和背诵。写学习总结形成良性循环:定义功能->代码设计->完成功能->重构优化->优化代码设计->完成->重构->完全掌握。总结:坚持是修行中最重要的。面对新的、未知的领域,我们要迎难而上。多注意基础知识,多总结,理解清楚,事半功倍。例如作为WebDeveloper:所需知识:语言基础、Web应用基础、熟悉Linux运行环境、网络传输过程中的HTTP协议和TCP协议。进阶知识:熟悉浏览器请求流程、WebServer端口监听原理、数据库原理、浏览器请求原理、应用安全通信TLS协议、数据加解密方案、数据签名方案。架构层面:应用分层模式、数据模型定义模式、微服务划分思想、系统设计模式。作为无线团队:投资中最赚钱和最值得的部分。如果你了解了这些最常见问题背后的原理,你就可以独立解决大部分问题,提升全链路研发效率,与各个岗位的人无障碍沟通。合作无摩擦。做一件事,什么方案最合适,什么角色最合适,什么样的技术架构比较合适:语言最基础:HTML/CSS/Javascript/ECMAScript/Typescript/Node.js/Golang/Java等网络协议层HTTP协议、DNS、Layer7/Layer4负载均衡,这里会涉及到服务器、前端、SRE、网络安全等岗位的基础知识。框架层原理及细节:应用框架React/Koa/Spring、数据库框架、安全组件。结合公司技术体系衍生出的框架层协议和业务框架:阿里/蚂蚁中间件。工程:CI/CD持续集成、自动化测试、代码构建发布流程。基础架构IaaS:私有云、混合云、公有云。AWS、阿里云等给团队带来的价值:由于无线的特性:会遇到的问题与HTTP协议相关,占比较大,端上性能优化,网络异常处理,以及前后端交互的基本流程。遇到离线调试可以快速定位修复,在线遇到问题可以第一时间快速决策。并不是所有的问题都可以靠经验来解决。人们经常犯重复的错误。他们害怕找不到重复问题的根源。所以需要从源头上解决,还是需要掌握全栈的基础知识。小结:对基础知识有了清晰的认识,在使用上层技术时,比如各种框架、运维系统等,可以快速看清所用技术背后的本质。可以减少犯错的机会,做出更正确的决定。全栈技术体系的实践,必有我师,学身边之人。举一个现实生活中身边人的例子:在做一个登录认证用户系统时,先设计系统,数据模型设计,接口设计,最后实现。最重要和最有价值的部分是早期的设计阶段。最后分别用Node.js、Java、Golang实现。不同语言和框架的实现是相似的,功能的移植非常快,可以并行进行。设计好的代码的前提条件也完全匹配前面基础部分的掌握。基础越好,设计越好。总结:一个优秀的设计不仅让系统可靠,而且让设计简单、清晰、易懂。写的时候没有负担,维护的时候成本也不高。避免陷阱全栈并不意味着减少需求。全栈是为了提高开发效率。如果质量不好,维护起来也不容易,反而会降低团队的效率。切忌只涉猎多而实战欠缺。见过它并不意味着知道如何使用它。能写出全栈并不代表写出来的代码就可以在生产环境中使用。避免下意识地降低对自己的要求。如果写的代码质量不够好,就会违背全栈的初衷。成为全栈工程师的好处掌握前后端服务器的全链路知识体系和核心知识点,提高研发效率,提高解决问题的能力,提高工作效率故障排除,能快速发现问题并及时处理。能理解不同岗位学生的诉求。后端同学:能理解为什么前端同学对接口字段要求高,期望后端提供的接口按照开源社区的标准来定义(好的接口是不言自明的,不用翻)文档多,遵循行业API设计规范,使用符合人的直觉的接口,接口领域稳定)。前端同学:能理解为什么后端同学不愿意轻易写出专门的逻辑判断(一套模型已经定义得很优雅了,再加一个专门的分支会破坏代码的一致性)。研发同学:能理解为什么运维同学不愿意轻易给运维权限(一旦底层运维操作不当,破坏力太大,需要深厚的技术积累)。知识不全的反例真正的反例:全栈有助于减少低级错误的发生。这里的例子都是我参与解决的问题。过程中看到的是:这些都不是很深奥的问题,这些问题是因为知识不全而出现的:应用服务上线,服务器配置了nginx代理线去CDN,返回502,开发和SRE一起检查过没有访问公网(原因:应用所有者不熟悉网络知识和运维系统,没有和SRE合作好)。前端域名和后端域名不一样,浏览器请求失败是因为跨域问题(原因:不熟悉HTTP协议中headers的使用)。后端接口名称设计模糊,不规范,不符合RESTfulAPI规范(原因:不熟悉基于HTTP协议的规范,本质上是方法在HTTP中的应用)。其他如websocket问题、前端性能优化、缓存相关问题,排查效率低下(原因:大部分与不熟悉HTTP头有关)。最后总觉得全栈不是认证证书,不需要别人认证你。当你能获得不同技术栈同学的信任,就是对你最大的肯定。【本文为专栏作者《阿里巴巴官方技术》原创稿件,转载请联系原作者】点此查看作者更多好文
