Blog | Phodal - A Growth Engineerhttp://www.phodal.com/blog/2021-01-12T01:20:22.658520+00:00Blog2020 节点:平凡 & 重新出发2020-12-31T01:20:04+00:002021-01-12T01:20:22.658520+00:00Phodal Huanghttp://www.phodal.com/blog/author/root/http://www.phodal.com/blog/annual-2020-general-restart/2020 年,庚子年,注定是不平凡的一年,所以就平凡的过去了。年初,疫情让我在家办公了几个月,年中开始了忙碌的几个月,年底又归于平凡。也因为疫情,多了一些 beach 的时间,不得不休完 20 天的看似,还有没机会用上的婚假,所以我有机会尝试一些新的想法。
太长不读版:
- 编程上,回到底层/系统编程,构建基础设施开发能力。
- 写作上,在 Ledge 项目上结合前端可视化,展示了知识管理的另一种可能性。
- 设计上,依旧还在一天一张画的练习上,暂时没有新的突破。
- 方法化上,丰富和完善了 DevOps/系统重构相关等知识体系。
- 影响力上,靠影响力带来了几个公司的项目,除此没有进展。
好像也没了。再对比一下上一年的目标:
1. 工具,有了更多编程语言、软件工程相关的工具。
2. DSL 抽象,设计的 DSL 主要集中在 Charj 相关的项目上,缺少对业务的抽象。
3. 国际化,几乎没有任务长进。相反的,在做本土化的各种实施。
4. 婚礼,被迫放在 2021 年了。
嗯,大部分都没有实现,反正计划就是计划嘛 :) 。
## 编程
综合疫情带来的 beach 时间,加上外地出差,额外获得了很多的编码时间。
### 项目相关
这一年的项目多少是有些无聊,设计一些方案,指导实施方案的落地,再做一些度量。
参与了某国产操作系统的 IDE,深入了解 Android Studio 和 Intellij Community 背后相关的知识、各类实践。真正意义上,掌握了编程语言端到端的实践 —— 从开发、构建、优化,再到执行等一系列的过程。源码阅读上,包含但是不限于 Gradle、Proguard、R8/D8、JVM、Intellij Community 等。
### 底层编程 + Rust
在那了篇《[六年之后:回到底层编程](https://www.phodal.com/blog/back-native-programming/)》里,我开始了底层编程之旅。
1. Electron + Rust 设计 RPC 架构下的客户端:[Stadal](https://github.com/phodal/stadal/)
2. 可执行的 markdown 工具 exemd (支持依赖):[exemd](https://github.com/phodal/exemd/)
3. Scie 代码识别引擎:[Scie](https://github.com/charj-lang/scie)
4. ……
不过,就目前的情况来看,道路依旧还有点长,需要重新掌握的知识有很多 —— 毕竟以前看会的,和现在真正动手的是两码事。
### 重构工具
在这一年里,与工作相关的一部分话题依然是重构。所以,也利用了大量的业余时间。
- 更完善的分析工具:[Coca](https://github.com/phodal/coca)
- 多语言分析工具:[Chapi](https://github.com/phodal/chapi)
- Ant 转 Maven 工具:[Merry](https://github.com/phodal/merry)
- 和同事搞的 CSS 重构工具:[Lemonj](https://github.com/twfe/lemonj)
有意思的是,这几个项目的技术栈是:Go + Antlr、Kolint + Antlr、Go + Antlr、TypeScript + Antlr ……。嗯 ,真的是只要涉及编程语言相关、DSL 相关,Antlr 就是一个非常不错的工具。
### DSL 与 Charj
快到年底的时候,和我同事一起开启了 Charj 语言的坑,也是为自己的未来找一些有意思的事情干。我们日常做项目的时候,最难的就是启动一个项目 —— 要搭建架子,相当于设计架构。所以,在这一年里,努力地把整个架子搭建了起来。
- [Charj](https://github.com/charj-lang/charj) 语言工程
- [Movable](https://github.com/charj-lang/movable) 语言转换器
- [Typography](https://github.com/charj-lang/movable/tree/master/typography) 通用解析器
- [intellij-charj](https://github.com/charj-lang/intellij-charj) IDEA 支持
这一个也作为了下一年,或者是未来几年的的一个方向。(PS:有兴趣的话,欢迎入坑,微信:phodal02 (注明来意))
## 写作
写作最重要的是,构建成了一个完整的体系。虽然我平时写的文章多,看上去没有体系,但是还是有一些基本的体系的 —— 也就是围绕着我要去做的东西。
### 万物代码化
关于这部分内容的总体思路:《[万物代码化:从低代码、云开发到云研发](https://www.phodal.com/blog/codify/)》,这部分的各部分文章见:
- 《[需求代码化](https://www.phodal.com/blog/requirement-as-code/)》
- 《[文档代码化](https://www.phodal.com/blog/document-as-code/)》
- 《[代码的代码化语言](https://www.phodal.com/blog/charj-lang/)》
- 《[如何为代码建模?](https://www.phodal.com/blog/modeling-for-code/)》
- 《[代码生成模式:未来我们会怎样写代码?](https://www.phodal.com/blog/code-generator-pattern/)》
完整内容见:https://github.com/phodal/ascode.ink
### 知识体系构建
工作时间越长,越发现知识体系的重要性。哪怕是写了一系列的文章,查阅的时候,也算是过于分散了。在这一年里,主要梳理了这两部分的知识体系:
- 《遗留系统重构指南》:https://github.com/phodal/migration 。 手把手教你分析、评估现有系统、制定重构策略、探索可行重构方案、搭建测试防护网、进行系统架构重构、服务架构重构、模块重构、代码重构、数据库重构、重构后的架构守护。我原以为这是一个很小众的领域,没想到年底的时候一看,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
简单,然后专注,这就够了。