Feelings of Making an App
C++ Is Hard
在这最近的两个月,我决定自己做一些项目(做了两个)来加深自己对程序员的理解、了解工程思维。最初我想的是,既然我用得最多的是 C++,那不妨就用 C++ 实现自己的宏图。但可惜第一关都差点过不了——最初我用的是 Visual Studio,目的是写一个贪吃蛇,可才写到一半准备编译排查语法错误时,神奇的事情发生了:由于 Unicode 字符的原因,导致它不能正确识别我的代码。那没辙,就准备在 VS Code 写。这下确实没有 UTF-8 格式的困扰了,可是又出了问题——需要用 #include <windows.h>,但我是在 WSL 下的,报错了。行吧,取消 WSL,可还是发生了意外:的确没有格式的烦恼了,但 C++ 无法正确识别 Unicode,输出乱码了。不得已,我回到了 Visual Studio,去调用 Windows 系统的 API,才最终解决。
Rebuilt by Rust
我是性情中人,被 C++ 惹生气了,决定用我擅长的另一门语言——Rust 来重构。那为什么选择 Rust 呢?我会 C/C++、Rust、Python,由于上面的经历,我优先考虑 Rust 和 Python。它们有两个好处——安全:一个有 GC,一个有 Ownership。虽然我也用 Python 做过一些项目,不得不说的确方便,可是我有性能洁癖,再加上 Rust 的语法也很简洁,以及 Rust 的「能编译就一定安全」的语法检查,不仅对人类减少了心智负担,还对 AI 也很友好。我在网上查了一下相关的 Rust 代码作为借鉴。不过用 Rust 的确改变了我一个习惯,那就是拆分文件。因为用 C++ 写题惯了,经常一个文件几百行甚至几千行,看着不多,可这些都是个人文件,只有我一个人管理。
Learning egui
egui 应该是我的梦中情框架,为什么?因为它是纯 Rust 实现的。如果你了解过我,就会发现我的代码风格就是 Rust 的标准风格,哪怕写 C++,也是这个风格。为什么要用这个框架?原因很简单——我想做一个电子版便利贴(现已发布:https://github.com/summerTBD/SimpleNote)。在整个过程中,我感受最深的一点是:构思的重要性。我要实现想象中的功能,就得先确定很多事情——怎么触发、UI 界面是什么样的。其次就是,学习模板代码是怎么实现的,看多了就有思路了。但光有思路还不行,还需要动手操作,让身体和大脑做到协同。