(Archived) About me

关于

  • 对计算机和软件感兴趣,想结交更多在开发/PL/FP方面志同道合的好友。
  • 很喜欢学习和使用设计良好的现代编程语言,例如Haskell、C#、Kotlin、Scala或者OCaml。
  • 对OOAD之类的依托答辩没有任何兴趣,我更喜欢把不同的编程范式和设计理念结合起来,按照实际需求找到自己的工具箱可以组合出的最好的写法。
  • 对现代化的面向对象编程设计有一定兴趣,不管是桌面/移动/跨平台终端应用,前后端或者全栈/devOps实践,或者是3D/游戏的开发。
  • 很好奇编程和计算机可以提供什么样的可能性,还有实现具体的算法和想法的愉悦感。
  • 喜欢讨论不同的编程范式和优雅的编程实践,并且也想要把它们用上。不过并没有很熟练吧。

总而言之是个废柴的家伙(

喜欢的东西

建筑设计、去偏远的地方旅游、吃好吃的东西、看到了好看的房子或者风景就想拿手机拍照。

喜欢玩各种游戏,不过主要还是在 Minecraft 里面盖房子规划城市。

对计算机的兴趣更多在于想要了解计算机理论的发展史,了解 PLT 和编译理论,并且试图寻找在具体项目里面的应用场景,也希望能找到与此相关的工作机会。

喜欢一切设计得很精美的东西,包括设计良好的现代计算机语言,仔细思考过交互设计的 web 或者客户端 app,或者是能够体现出设计感的海报/绘画/风景画/建筑……

讨厌的东西

官僚主义、糟糕过时的产品、不考虑用户体验的网站或者 app、臃肿过时沉重又累赘的技术栈,比如说 JavaEE 或者 WinForm 之类的。

996、007或者无处不在的PUA。对我来说,技术应该为了造福个人,社会和人类而被应用,而不是用来欺诈和制造谎言。

还有伤害别人的话语和行为。

有关计算机的信念

我相信抽象(Abstraction)和组合(Composition)是计算机和编程的基本原则。

对我来说,可扩展、可维护的软件,还有合理的抽象,都是软件设计的重要目的。我并不相信YAGNI之类的东西,也不认为「客户要求」是什么宗教信仰一样的信条。

现在在做什么呢

目前是在读CS的学生,主要感兴趣的方向有

  • 现代化的OOP
  • FP(函数式编程)
  • 编译学理论

对跨平台有浓厚的(存疑?)的兴趣,但是还没找到一个明晰的方向。同时,也希望能找到一个可以把编译原理方面的知识应用到的场合。

很享受实现某个东西的乐趣,也期望可以发现不同的模式和规律。然而不幸的,不管是哪一个范式都没有熟悉呢。

一般来说,可以用主流编程语言(包括但不限于 Java/Kotlin/C#/OCaml/TypeScript/Python)来实现简易的项目,在实现过程中分析不同的技术可能,并且有限地考虑上有关性能调优、代码组织等方面。会努力用尽量清晰的结构来组织代码。但总的来说还是缺乏实践。

也对 C++/Haskell/Scala 有非常有限的了解,能够尽量 follow the modern way。

常用的语言

使用的工具

  • IDEA
    • Java, Kotlin, Scala
    • ANTLR, Vert.x, Quarkus
  • WebStorm
    • TypeScript, React, Ant Design
    • Vue, Nuxt, Svelte, Three.js
  • Rider
    • C#, .NET Core, Avalonia, MAUI
  • Visual Studio Code
    • OCaml, Haskell
  • Sketch, Affinity Designer, Jupyter, Android Studio, WSL
  • Docker, Kubernetes, Helm Chart
  • Visual Studio, Unity, C++, GRPC, Flutter

代码风格

我会尽量把代码写得更好,但这其实也挺难的吧。

对我来说,类型安全,不可变的数据结构,函数组合还有组合优于继承,还有自解释的代码,算是我自己的设计准则了。我也尽可能在写代码的时候遵循这些规则,去想办法让自己的代码质量更高更可读(当然对于Clean的见解因人而异,有人还认为叠床架屋的class是一种干净代码呢)。

一般来说,我是更喜欢把函数式编程、声明式编程应用起来,并且伴以少量注释和文档的。

不过,我的代码库经常还是会发现很多面条代码的,我会尽量避免,但无法保证它们不会出现。比较典型的例子大概有:

  • 耦合的项目结构
  • 过早的优化或者一些奇怪的扩展设计
  • 少量的代码片段的重复出现

喜欢什么呢

  • MC建筑
  • 音乐,包括Touhou,Hololive,Himehina等
  • PLT

个人项目

  • Simulatte 一个对Swift Playground(的前两章)的拙劣模仿的服务端实现
  • Fubuki-lang 尝试去实现一个简单的命令式语言编译器前端

联系方式

- 就是这个blog了

- 堆满了乱七八糟的东西的仓库

顺便一提

kokoro and aya are from Hatano Kokoro 秦心 and Shameimaru Aya 射命丸文, two lovely characters from the Touhou Project :)


(Archived) About me
http://inori.moe/1970/01/01/about-me/
作者
inori
发布于
1970年1月1日
许可协议