想成为全栈工程师,要做到哪几点?

简介: 如何成为一名全栈工程师?需要具备哪些技术积累?成为全栈工程师有哪些好处?希望本文能为期望成为全栈工程师的同学提供一点帮助,和同学们一起分享交流。

 

作为开发者,我们不过度区分服务端 server 客户端 client,我们是 web developer,从事 web 开发,多去理解技术和实践落地。

成为全栈工程师的道路

成为全栈工程师说不上难也说不上容易,其中技术积累占了很大一部分:

紧跟前沿

掌握足够多的输入。

关注海外社区新消息发布,业界的新产品新技术,学会高质量的获取信息,坚持做和习惯做。

注重学习 & 不断实践

有属于自己的思考和严谨的产出。

掌握高效学习方法,比如我们最近在做 k8s 容器集群相关的事情,需要理解底层设计和做集群调度,需要学习 Golang,新技术的学习过程:

  • 投资一个好的 IDE,例如 Webstorm、Goland、IntelliJ IDEA 等,坚持使用。
  • 认准官方文档,坚持学习。
  • API 手册查看,不断熟悉和记忆。
  • 写学习总结,形成良性循环:定义功能 -> 代码设计 -> 完成功能 -> 重构优化 -> 优化代码设计 -> 完成 -> 重构 -> 完整掌握。

总结:实践贵在坚持,面对新的未知的领域,也要迎难而上。

重视基础知识 & 多做总结

理解清楚,事半功倍。

例如作为 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 实现了一遍,不同语言和框架间的实现都是类似的,功能的移植非常快,可以并行进行。

而设计出好的代码需要的先决条件,也是和前面的基础部分的掌握完全匹配的,基础越好,设计得也越好。

总结:

  • 优秀的设计不仅做出的系统可靠,设计得也简单清晰易懂。
  • 写的时候没有负担,维护的时候也没有高昂成本。

避免陷阱

全栈不代表降低要求,全栈是为了提升开发效率,如果质量差,不好维护,反而降低了团队效率。

  • 避免只是多涉猎,而缺少实战,看过不等于会运用。
  • 能写全栈不代表写出的代码能上生产环境,避免给自己下意识地降低要求,写出的代码质量不过关就违背了全栈的初衷。

成为全栈工程师的好处

掌握前后端服务端全链路知识体系和核心知识点

  • 提高研发效率,提升解决问题能力,提高排查问题效率,可以快速侦破问题,及时处理问题。

能理解不同岗位的同学的诉求

  • 后端同学:能理解为什么前端同学会对接口字段提出很高要求,期望后端提供的接口按照开源社区的标准来定义(好的接口是自说明的,不用过多的文档,遵循业界 API 设计规范,使用接口符合人的直觉,接口字段稳定)。
  • 前端同学:能理解为什么后端同学不愿意轻易写特殊逻辑判断(一套模型已经定义得很优雅了,加个特殊分支就破坏了代码的一致性)。
  • 研发同学:能理解为什么运维同学不愿意轻易给运维权限(底层运维一旦操作不当,做成的破坏力太大,需要深厚的技术积累)。

知识面不全面的反例

真实的反例:全栈有助于减少低级错误的出现。

  • 这里的例子都是我曾经参与解决过问题的,过程中我看到的是:这些都不是什么高深的问题,这些都是由于知识面不全面才发生问题:
  • 应用服务上线,服务器配置 nginx 代理线上 CDN,返回 502 了,开发和 SRE 一起排查下来是没有开公网访问权限(原因:应用 owner 不熟悉网络知识和运维体系,没有和 SRE 打好配合)。
  • 前端域名和后端域名不同,浏览器请求失败,因为有跨域问题(原因:不熟悉 HTTP 协议中的 header 运用)。
  • 后端接口名字设计有歧义,不规范,不满足 RESTful API 规范(原因:不熟悉基于 HTTP 协议的规范,本质上是 HTTP 的 中 method 的运用)。
  • 其他例如 websocket 问题,前端性能优化,缓存相关等问题排查效率低(原因:绝大多数跟不熟悉 HTTP header 有关)。

最后

我始终觉得全栈不是认证证书,不需要有人给你做认证,当你能获得不同技术栈的同学的信任时,就是对你最大的肯定。

作者:茶什i

原文链接

本文为阿里云原创内容,未经允许不得转载

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/514101.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

DDD as Code:如何用代码诠释领域驱动设计?

简介: 相较于常规的MVC架构,DDD更抽象、更难以理解,各个开发者对DDD的解释也不尽相同。那么哪种设计方式才更好?在学习时如何知道哪种DDD更正统,没有被别人带歪?本文尝试使用“DDD as Code”的概念&#xf…

谈身份管理之进阶篇 - 快速了解从管理到治理的最佳方案

简介: 云上身份安全是当今企业管理者和云上运维团队所面临的挑战之一,针对云上身份管理不全面所产生的风险究竟又哪些?又应当如何应对?本文将结合案例和最佳实践与您分享。 引言 云上身份安全是当今企业管理者和云上运维团队所面…

报名倒计时 | TeaTalk 深圳站邀您共话安全云世界

对越发复杂的网络环境,保障网络安全势不可挡,为此国家也对应颁布了系列规章政策。除相关政策外,网络安全及云安全也同时被列入国家规划重点发展方向,随着“十三五”规划逐渐落实,“十四五”规划制定实施,推…

KubeNode:阿里巴巴云原生 容器基础设施运维实践

简介: 目前 KubeNode 已经覆盖了阿里巴巴集团的所有的 ASI 集群,接下来,将随着阿里巴巴集团“统一资源池”的项目,推进 KubeNode 覆盖更大的范围、更多的场景,让云原生的容器基础设施运维架构发挥更大的价值。 阿里巴巴…

扫盲贴|如何评价一款App的稳定性和质量?

简介: 我们不应该为了掩盖代码质量问题,通过手动try catch去规避某些问题,这样有可能会打断用户的正常使用,并造成感知性的阻断反馈,应该从用户使用APP时的真实感知出发,当出现问题时及时捕获和处理问题。 …

聊聊 5G 云专线

作者|小枣君来源|鲜枣课堂通过本文,和大家分享探讨一下 5G 云专线。我们从今天文章的标题开始说起吧。5G、云、专线,分开的3个词,作为通信人,大家应该都懂(专线可能陌生一点)。但是,合起来之后&…

谈AK管理之基础篇 - 如何进行访问密钥的全生命周期管理?

简介: 我们也常有听说例如AK被外部攻击者恶意获取,或者员工无心从github泄露的案例,最终导致安全事故或生产事故的发生。AK的应用场景极为广泛,因此做好AK的管理和治理就尤为重要了。本文将通过两种AK使用不安全的典型案例&#x…

2021信服云创新峰会:托管云成上云第三种选择

9月17日,以“万物皆可云”为主题的信服云创新峰会成功举办。中国工程院院士、中国科学院计算技术研究所研究员倪光南,IDC咨询(北京)有限公司副总裁/首席分析师武连峰,深信服科技股份有限公司创始人、CEO何朝曦&#xf…

三只松鼠:阿里云数据中台基座上的多渠道、多业态生长

简介: 刚刚过去的2020年,对三只松鼠来说更像是一座认知分水岭,三只松鼠CEO章燎原坦言“要忘记流量时代,并习惯放缓增长”,而随后的重要一步,就是以披荆斩棘的姿态进入数据中台建设新赛道。 刚刚过去的2020年…

浅谈专有云MQ存储空间的清理机制

简介: 浅谈专有云MQ存储空间的清理机制 在近⼀年的项⽬保障过程中,对专有云MQ产品的存储⽔位清理模式⼀直存疑,总想一探究竟但又苦于工作繁忙、精力有限,直到最近⼀次项⽬保障过程中再次出现了类似的问题,⼤家对MQ Bro…

气象气候应用在Intel最新处理器Icelake上的性能测评

浪潮HPC实验室 一、Intel第三代至强可扩展处理器(Icelake)性能大升级 Intel于今年发布了第三代至强可扩展处理器系列产品(代号Ice Lake),与上一代至强可扩展处理器系列产品(代号Cascade Lake)相比,第三代…

评审恩仇录——我为什么愿意执行代码评审

简介: 代码评审带来的好处不言自明, 但企业业务快速发展的诉求与代码评审推动落地两者之间, 往往存在矛盾。在如今快速发展的互联网时代,数字化、智能化已经是基础能力,单纯只靠人肉审查的时代已经过去了,基于各种自动化检查能力的…

AI+混合云模式,如何最大化挖掘数据价值?

9月8日,IBM举行了“科技一席谈”线上媒体访谈会,此次访谈以“数据与AI”为主题,由IBM 大中华区科技事业部、客户成功管理部总经理朱辉,IBM 中国混合云与 AI 华东及华南大区总经理许伟杰作主题分享。 在数字化转型的时代&#xff…

阿里云贾扬清:大数据和人工智能一体化是必然趋势

简介: 拥抱“融合”是大数据演进的新方向,⼤数据⼈⼯智能⼀体化是⼤数据发展的必然⽅向,而人工智能是⼤数据业务发展的终极出⼝ 。 12月13日,阿里云计算平台负责人贾扬清在Flink Forward Asia 2020 峰会上指出,拥抱“融…

云效安全那些事儿—访问控制与数据安全

简介: 云效 Codeup 提供了代码 GPG 签名,拒绝未签名的提交;支持代码属主验证,约束提交记录属主。 在质量管控上,云效 Codeup 精细化读写权限管控,支持代码提交卡点机制,保障提交质量。 接下来我…

深信服何朝曦:托管云为用户上云提供第三种选择

9月17日,以“万物皆可云”为主题的信服云创新峰会成功举办。会上,深信服科技股份有限公司CEO何朝曦分享了运用云计算技术帮助用户进行数字化转型的观点。他认为兼具公有云和私有云优势的托管云,可以帮助非科技型企业和中小企业获得“数字化平…

java 使用c .dll_Windows下java调用c的dll动态库--Dev_Cpp编译c生成dll

1.eclipse下建立一个HelloJNI.java内容如下:package JNI;public class HelloJNI{static{System.out.println("开始");System.loadLibrary("goodluck");System.out.println("结束");}public native static int get();public native st…

阿里云助力江苏省财政厅力推统一公共支付平台

简介: 为深化“放管服”改革,贯彻“互联网政务服务”要求,江苏省财政厅加快推进江苏省统一公共支付平台建设,实现全省政府非税收入、政务服务在线收缴和财政电子票据的集中统一处理,不仅节约了因“重复建设”产生的财政…

Midway Serverless 发布 2.0,一体化让前端研发再次提效

简介: 2021 年 3 月,Midway Serverless 推出了第二个大版本。就像两年前说的一样,开源只是开始,终态远没有到来。Midway 体系希望能够在当前的十字路口,不断向前演进,让前端可以去发展,朝着应用…

binaryviewer java_用java实现java的2进制文件字节序转换到C/C++的2进制文件字节序

展开全部package admit.action;/*用JAVA读取各种计算机文件系统的文件列表 当你安装了jdk,在32313133353236313431303231363533e78988e69d8331333332613732jdk的类库里,有一个标准的File类,通过该类,可以很方便的实现浏览各种文件…