OTAKU / 概述

面向对象软件的哲学

otaku@manifesto:~$ cat OTAKU.md

结构是一种决定,
而不是意外。

OTAKU 是一套面向对象软件的哲学。五条约束决定什么代码可以存在,三种形态决定仓库如何组织。这里讨论的不是某种语言,而是范式。

为什么存在

框架在你想替换某一个部件之前都很优秀——那时它会要求你替换全部。通常的出路是重写,但那只是一种偶然约束替换另一种。OTAKU 押注相反的方向:由小到一次就能读完的部件构成架构,并且可以不经许可被替换。

这个名字既是首字母缩写,也是一种气质:对掌握、纪律和结构纯粹性的技术偏执——愿意删掉一个聪明的抽象,只因为它无法用一句话解释。

如何阅读本书

它拒绝什么

  • 框架渗入领域层。
  • 无法归类为原子、装配或应用的仓库。
  • 在第二个真实用例出现之前就创造的抽象。
  • 圈复杂度超过 5 的方法。
  • 没有契约就发布的接口。
写出永远不需要「修复」的代码,因为它是在绝对约束下构建的。

范围

OTAKU 诞生于 PHPRise,但 PHP 只是起点。规则度量缩进、复杂度、依赖、契约和命名——这些概念每种面向对象语言都能表达。指南覆盖 PHP、C#、Java、C++ 和 TypeScript。

如果你的语言有类、接口、异常和包管理器,这套哲学就适用。如果没有,那它就不是合适的工具——这也是一个正当的答案。

本章目前仅有英文版本。