2017 年,我挖的那些开源软件坑

造*,是一个程序员的基本装逼技能。这些*可以的来源可以是:

  • 我们日常工作中遇到的一些问题,提出的解决方案。

  • 使用某个开源软件的过程中,发现它不能满足我们的需求

  • 我想开发一个工具,来帮助其它人

  • 无聊,我就是想造个*

日子过得很快,作为一个 markdown 程序员,在这一年,我造了一些有意思的*;还有一些 markdown 工具。如果你已经很了解我了,那么你可能都已经在 GitHub 上 follow 我了,那么这一年造了什么,你可能也很清楚。

2017 年,我挖的那些开源软件坑

图上的颜色深度,实际上也表明了哪段时间*造得比较频繁。比如:

  • 三月份的 Stepping

  • 五月份的 Growth 3.0

  • 十月份的 Serverless 系列

  • 十一月份的 ADR

  • 十二月份的 Dore

那么,就让我来愉快地回顾一下,这一年我做了些什么。

Growth 3.0

2017 年,我挖的那些开源软件坑


GitHub: https://github.com/phodal/growth

Growth 3.0 在现在看来,算是一个 “失败” 的版本,主要的原因是:功能太多,导致多而不精。并且由于开发人手的不足,导致了很多功能难以按时完成。

在这个版本里引入了:

  • LeetCode 试题,适合于地铁思考模式

  • 算法动画学习工具

  • 正则表达式练习

  • 设计模式简介

  • 内置 VS Code 的编辑器

但是核心的内容没有发生多少变动。但是考虑到仍然有大量的用户在使用 Growth,如果能招集到一定的开发人员,那么就会开发下一个版本:

2017 年,我挖的那些开源软件坑

感谢 @travelgeezer、@airt、@chinesedfan、@zld、@entronad 在这个过程中帮忙填坑。

Stepping

GitHub:https://github.com/phodal/stepping

我在 Stepping 项目上花费了大量的时间,它最初是为了解决我在学习领域驱动设计中的 “事件风暴” 而产生的框架。最初其设计思想是通过 DSL 来生成领域模型:

2017 年,我挖的那些开源软件坑

后来,我的脑洞又大开了。我在里面添加了数据库 Schema:


  1. detail: 商品

  2.  model: product

  3.   - id: int (long, md5)

  4.   - name: string (64)

  5.   - number: string (64)

  6.   - manufacturers: string (128)

计划用来对接 Swagger 的 API 生成库,可以直接用来生成对应的代码:


  1. {

  2.    "count": 1,

  3.    "next": null,

  4.    "previous": null,

  5.    "results": [

  6.        {

  7.            "id": 0,

  8.            "name": "name",

  9.            "number": 0,

  10.            "manufacturers": "manufacturers"

  11.        }

  12.    ]

  13. }

造着,造着,我就弃坑了。

我终于知道为什么产品经理,每天会有那么 SB 的需求。我的需求看上去一点也不聪明,也很 SB。

Serverless 系列

在我学习 Serverless 的时候,我顺手造了一堆*,估计大家都用不到:

  • 基于 Serverless 的微信公共平台: https://github.com/phodal/mp

  • Serverless 事件和错误日志系统: https://github.com/phodal/molog

  • Serverless 表单系统:https://github.com/phodal/moform

  • Serverless 短链服务:https://github.com/phodal/shorter

你可以在我的博客上,或者公众号的历史找到相关的记录。

ADR

ADR 可能是我今年把需求控制得最好的项目了——没有额外的功能。不对,还是有一些多余的需求,但是我 “觉得” 还是很有必要的。

ADR 是一个轻量级架构决策记录工具,简单的来说就是使用 Markdown 来记录架构决策记录

GitHub:https://github.com/phodal/adr

它使用 TypeScript 编写,支持 Windows, GNU/Linux, Mac OS、生成 HTML 报表、国际化支持、状态查询 blabla。

2017 年,我挖的那些开源软件坑

在提交了 300+ 次之后,我终于控制自己不再往里面加需求了。我就是一个万恶的产品经理,对自己太残忍了。

Dore

作为年底的最后一个大项目,Dore 是一个使用 React Native 实现的 WebView 容器,可以让你在 WebView 调用 React Native 组件。

2017 年,我挖的那些开源软件坑

它算是对我今年工作的一个总结,其初衷是作为迁移 Cordova 的 WebView 应用到 React Native 的 WebView 的基础设施。

GitHub:https://github.com/phodal/dore

在实现 Dore 的这两星期里,在 @travelgeezer 的帮助下(每次需要填坑的时候,我都想到了 @travelgeezer),已经嫁接了二十几个插件。中间,我还写了一些 Objective-C 和 Java 的原生代码。

尽管这个项目不会很成功(我的意思是有很多 star),但是我对它非常满意。

明年,我会造更多的坑。

2017 年,我挖的那些开源软件坑