想成为全栈工程师,要做到哪几点?
文章插图
作为开发者 , 我们不过度区分服务端 server 客户端 client , 我们是 web developer , 从事 web 开发 , 多去理解技术和实践落地 。
成为全栈工程师的道路成为全栈工程师说不上难也说不上容易 , 其中技术积累占了很大一部分:
紧跟前沿
掌握足够多的输入 。
关注海外社区新消息发布 , 业界的新产品新技术 , 学会高质量的获取信息 , 坚持做和习惯做 。
注重学习--tt-darkmode-color: #6A737D;">有属于自己的思考和严谨的产出 。
掌握高效学习方法 , 比如我们最近在做 k8s 容器集群相关的事情 , 需要理解底层设计和做集群调度 , 需要学习 Golang , 新技术的学习过程:
- 投资一个好的 IDE , 例如 Webstorm、Goland、IntelliJ IDEA 等 , 坚持使用 。
- 认准官方文档 , 坚持学习 。
- API 手册查看 , 不断熟悉和记忆 。
- 写学习总结 , 形成良性循环:定义功能 -> 代码设计 -> 完成功能 -> 重构优化 -> 优化代码设计 -> 完成 -> 重构 -> 完整掌握 。
重视基础知识--tt-darkmode-color: #6A737D;">理解清楚 , 事半功倍 。
例如作为 Web Developer:
- 必备知识:语言基础 , 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 协议相关的占比很大 , 端上的性能优化 , 网路异常处理 , 前后端交互的基本过程 。 线下调试遇到时能快速定位和修复 , 线上遇到问题时 , 能第一时间做出快速的决策 。
- 不是所有问题都是靠经验可以弥补的 , 人在很多时候会重复犯错 , 就怕遇到重复的问题还是找不到根因 , 所以需要从源头上解决 , 还是要掌握全栈基础知识 。
- 基础知识理解清楚 , 在使用上层的技术 , 例如各种框架和运维体系时 , 可以快速看到使用的技术背后的本质是什么 。
- 能减少犯错几率 , 做更多正确的决策 。
三人行必有我师 , 向身边的人学习 。
举个我现实中身边的人例子:在做登录鉴权用户体系 , 先把系统设计好 , 数据模型设计 , 接口设计 , 最后是实现 , 最重要也有价值的部分是前期的设计阶段 。 最后分别用 Node.js、Java、Golang 实现了一遍 , 不同语言和框架间的实现都是类似的 , 功能的移植非常快 , 可以并行进行 。
推荐阅读
- 15分钟充至100% iQOO 7成为120W超充普及者
- 华云大咖说 云计算云运维浅谈
- 雷军:2021年的第一件大事,给工程师发百万美金大奖
- 三星S21系列再次3C认证 充电器或成为“可选”配件
- 深圳第一女首富:打败郭台铭,成为苹果公司金牌供应商
- 日本工程师:潘多拉魔盒被美国打开,中国办芯片大学只为打破禁令
- 苹果服务收入大增 反垄断将成为最大挑战
- 当智慧社区成为新基建抓手,「亲邻科技」要用科技打造宜居环境 | 新基建创业2020
- 继“小巨蛋”Phantom后,Devialet帝瓦雷首款真无线降噪耳机会成为下一个爆款吗?
- 脑机接口发展失控,人类或将成为变形金刚,马斯克也很无奈