现有的项目里,一次功能变更可能带来了大量的缺陷。于是乎,我试着回溯项目的开发过程,寻找出导致问题的根因。现阶段,我只能想到时的只有实施技术战略性投资,也暂时也想不到更好的方法,以在开发初期解决问题。
或许是出自于对编写编程语言的兴趣,又或许是对于创建 IDE/编辑器的兴趣,对于『IDE/编辑器是如何提供编程语言的支持』,我充满了兴趣。其中的一个主要原因是,这是每天我们打交道最多的工具,另外一个原因可能是,咦,我们怎么没有国产的 IDE(手动狗头)。
最近的几个月里,一直在编写代码识别引擎 Scie ,好不容易解决了各种奇怪的问题。随后,在尝试做了一次 benchmark 之后,发现我写了的这么一些 Rust 代码,运行起来的速度非常慢。同样是对一个代码文件的分析,Scie 差不多要 12S 完成,而同样的 Node.js Addons 则只需要 200ms。于是,我开始了我的性能优化之旅。
最近一直在编写 Gradle 以及 Intellij IDEA 相关的东西。由于市面上最复杂的相关的开源软件就是 Android 相关的,即 Android Studio 和 Android Gradle Plugin,于是我也在不断学习相关地源码。所以,我写了很多相关的文章,在介绍相关的内容。文章中包含了大量的技术细节和实现,所以这些技术文章也就只能在我的博客上看到了。
最近在为新的工具 Scie 设计一个模型,以用于描述一个具体的代码工程。而刚好最近也在学习 Gradle 相关的项目模型,便想写一篇文章记录一下相关的模型,以支撑起 Scie 的开发。
最近和同事在使用 Rust 编写 Scie,即重写 vscode-textmate,期间遇到一个严重的 bug,需要调试一下 vscode-textmate 的底层的 vscode-oniguruma WASM 绑定。
项目上需要使用 R8 来对 Java 代码进行压缩、混淆,并转换为多个 dex 的形式。由于种种原因,需要从头编译源码,并通过 jar 包引用。考虑到可重复过程的问题,我决定写一篇文章记录一下这个过程。
软件开发是一个非常有意思的复制 + 粘贴活动。开发业务代码的时候,大部分人都不会不加思索地添加代码。毕竟,聪明的产品经理/项目经理们,天才式地想出了用代码行数的方式来计算 KPI,又或者是通过提交次数来进行考核 —— 虽然小步提交是个好东西,但是吧,大部分人不经过练习还是掌握不会的。
这是一个非常有趣的故事,所以我想写篇文章记录一下。