进阶线路
1)源码分析框架
(2)互联网分布式架构
(3)团队协作开发
(4)架构基础
(5)微服务专题
(6)性能调优专题
(7)并发编程
(8)设计模式
学习方法:
1.知其然,更要知其所以然,实践论证
2.阅读文档,阅读他人的代码
3.与聪明的人共事
4.重新造轮子
5.记录你所学
打造个人品牌,提升技术影响力!编程终极:数据结构和算法
技术专家+管理方向 = 创业
选择大于努力,专注一个方向,快速的积累和突破。
技术抽象业务
写业务代码是无味的,无趣的,无乐可言的。不想写业务代码,那是不可能的。抽象业务,便是应对于乏味生活的一种乐趣。对应的也有几种方式:
- 领域特定语言。这是我在 2018 年尝试过的一个解决方案,应对于某一类千篇一律的前端页面来说,它是一种颇为有效的方式。Builder 形式的内部 DSL,JSON 形式的数据 DSL,自定义数据格式的外部 DSL,都是一些不错的方案。
- Clean Architecture。整洁架构,是我们正在尝试的一种方案。它为将我们带来业务代码与 UI 抽象的一种可能性,降低分层之间的偶合,并提升系统之间的复用率。
- 代码生成。它非常棒,当你每天需要 Copy/Paste 重复代码时,优先考虑使用复用和组件化,随后便是编写模板,再通过代码生成,如 Angular 里的 Schematics。
- DDD 与六边模型。领域(业务)驱动设计是针对于业务的抽象化实施,它也成为了我在前端的一个新的试验——只是目前缺乏一个新的场景。
如果你有业务上的折磨,试试这些方案。
引入入新的思想,而引入非新的设计。
- 我们引入 Rx.js,不是引入 Rx.js 这个框架,而是引入响应式编程的思想。
- 我们引入 Redux,不是引入 Redux 这个框架,而是引入状态管理的思想。
- 我们引入 Ramda.js,不是引入 Ramda.js 这个框架,而是引入函数式编程的思想。
加深技术储备
想成为一个优秀的工程师,就应该在学会可能用到的相关技术。
- 软件架构。在上一篇文章中,我介绍了一系列的架构书籍。对于一个程序员来说,我们需要对架构模式、架构风格、架构图等要有深入的研究。
- 构建系统。构建系统指的不单单是 Webpack 这部分内容,而是软件从源码到线上的所有过程。
- 版本管理。事实上,我发现大部分的工程师,在这方面都做得很糟糕。
- DevOps。前端部署很简单,但是 Web 应用部署很复杂。
深入前端
前端,总是会遇到用时方恨少的时候。
- 应用性能。采集、分析、统计与优化
- 框架原理。无需多言。
- 前端特定架构。诸如于微前端架构系列,哈哈。
- 浏览器运行机制。诸如于从输入 URL 到打开网页发生了什么,这种
- 调试技能。对于我来说,这也是一个需要加强的技能——我使用 Console.log 的频率比调试再高,因为 Console.log 又快又方便。
技术广度
作为一个程序员,除了 Web 前端之外,其它的领域我们也要有所涉猎。除了与前端技术相关的:
- 跨平台应用开发。
- Node.js 后端应用。
- Electron/NW.js 桌面应用。
- 云原生技术。
- Serverless
- 等.等..等...
效能提升
关注于更高维度的系统时,就会开始追求开发效率。
- 工程化。工程化意味着很多东西,像工程师一样思考。思考如何复用,如何大规模地开发前端应用——组件库、脚手架、代码生成等。
- 基础设施完善。通用基础库,
- 设计系统。
- DesignOps。设计系统源于 UX,而 Design Ops 则由开发人员和设人员一起完成
- ……
工匠精神:一万小时定律,专一某一方面,做到极致。