2020 年,庚子年,注定是不平凡的一年,所以就平凡的过去了。年初,疫情让我在家办公了几个月,年中开始了忙碌的几个月,年底又归于平凡。也因为疫情,多了一些 beach 的时间,不得不休完 20 天的看似,还有没机会用上的婚假,所以我有机会尝试一些新的想法。
太长不读版:
- 编程上,回到底层/系统编程,构建基础设施开发能力。
- 写作上,在 Ledge 项目上结合前端可视化,展示了知识管理的另一种可能性。
- 设计上,依旧还在一天一张画的练习上,暂时没有新的突破。
- 方法化上,丰富和完善了 DevOps/系统重构相关等知识体系。
- 影响力上,靠影响力带来了几个公司的项目,除此没有进展。
好像也没了。再对比一下上一年的目标:
- 工具,有了更多编程语言、软件工程相关的工具。
- DSL 抽象,设计的 DSL 主要集中在 Charj 相关的项目上,缺少对业务的抽象。
- 国际化,几乎没有任务长进。相反的,在做本土化的各种实施。
- 婚礼,被迫放在 2021 年了。
嗯,大部分都没有实现,反正计划就是计划嘛 :) 。
编程
综合疫情带来的 beach 时间,加上外地出差,额外获得了很多的编码时间。
项目相关
这一年的项目多少是有些无聊,设计一些方案,指导实施方案的落地,再做一些度量。
参与了某国产操作系统的 IDE,深入了解 Android Studio 和 Intellij Community 背后相关的知识、各类实践。真正意义上,掌握了编程语言端到端的实践 —— 从开发、构建、优化,再到执行等一系列的过程。源码阅读上,包含但是不限于 Gradle、Proguard、R8/D8、JVM、Intellij Community 等。
底层编程 + Rust
在那了篇《六年之后:回到底层编程》里,我开始了底层编程之旅。
不过,就目前的情况来看,道路依旧还有点长,需要重新掌握的知识有很多 —— 毕竟以前看会的,和现在真正动手的是两码事。
重构工具
在这一年里,与工作相关的一部分话题依然是重构。所以,也利用了大量的业余时间。
有意思的是,这几个项目的技术栈是:Go + Antlr、Kolint + Antlr、Go + Antlr、TypeScript + Antlr ……。嗯 ,真的是只要涉及编程语言相关、DSL 相关,Antlr 就是一个非常不错的工具。
DSL 与 Charj
快到年底的时候,和我同事一起开启了 Charj 语言的坑,也是为自己的未来找一些有意思的事情干。我们日常做项目的时候,最难的就是启动一个项目 —— 要搭建架子,相当于设计架构。所以,在这一年里,努力地把整个架子搭建了起来。
- Charj 语言工程
- Movable 语言转换器
- Typography 通用解析器
- intellij-charj IDEA 支持
这一个也作为了下一年,或者是未来几年的的一个方向。(PS:有兴趣的话,欢迎入坑,微信:phodal02 (注明来意))
写作
写作最重要的是,构建成了一个完整的体系。虽然我平时写的文章多,看上去没有体系,但是还是有一些基本的体系的 —— 也就是围绕着我要去做的东西。
万物代码化
关于这部分内容的总体思路:《万物代码化:从低代码、云开发到云研发》,这部分的各部分文章见:
完整内容见:https://github.com/phodal/asc...
知识体系构建
工作时间越长,越发现知识体系的重要性。哪怕是写了一系列的文章,查阅的时候,也算是过于分散了。在这一年里,主要梳理了这两部分的知识体系:
- 《遗留系统重构指南》:https://github.com/phodal/mig... 。 手把手教你分析、评估现有系统、制定重构策略、探索可行重构方案、搭建测试防护网、进行系统架构重构、服务架构重构、模块重构、代码重构、数据库重构、重构后的架构守护。我原以为这是一个很小众的领域,没想到年底的时候一看,GitHub 上有 2k 的 star。
- DevOps 知识体系:https://github.com/phodal/ledge 。基于在 ThoughtWorks 进行的一系列 DevOps 实践、敏捷实践、软件开发与测试、精益实践提炼出来的知识体系。它包含了各种最佳实践、操作手册、原则与模式、度量、工具,用于帮助您的企业在数字化时代更好地前进,还有 DevOps 转型。 反而是我看好的这个项目,GitHub 上的 star 只有 1.3k 。
接下来要做的事情就是,在适当的时候构建下一个知识体系。
其它
其它多数为一些总结,可以在未来用到。又或者是诸如『编程语言开发』这一个还不成统的话题。
设计
没有特别突出,依旧是画画。
不过,画得似乎越来越普通了?
唯一发生的变化是,我换了新的产生力(爱-奇-艺)工具:iPad Pro 11 + Apple Pencil 2。
其它
我一直有一个想法是:建设一个开源梯队。不过按国内的加班情况来看,这种可能性并不是很大。只能试着围绕 Charj 来构建开源社区了。
Helo, 2021
简单,然后专注,这就够了。