最近在开发CloseOnion的过程中,有一系列的技术路线选择,我意识到是时候去谈谈OpenOnion的工程技术方面的文化了。
·-- 5.26
如何保证代码质量?如何保证长期可靠交付?
OpenOnion的价值观是 简单可重复
代码要简单,简单是可读性,可维护性的要求。写代码千万不能和自己过不去,We don't fuck up our brain。
代码的功能要可复用,可被模块化。
可复用是对整体的一致性的保证。也是让开发者和用户都保持最小惊讶。要实现可复用,当然你会自然而然地选择让你的实现细节依赖于抽象,而不是抽象依赖于细节。
当然,还有很多外在的东西都很重要,比如接口隔离,比如自动化测试,比如持续集成,比如及时重构。这些都是对我们代码简单可重复的保证,如果你想要做到简单可重复,就会自然而然在将来渐渐注意到这些。它们的目的都是为了让代码简单可重复。
我希望我们在以后的开发中,都能先想到这部分的代码是否足够简单,是不是别人一眼就能看懂,而不需要依赖解释或者文档。 不要过分使用技巧和语法糖,就要写地笨蛋都能看懂。 要能想到某个函数是否写地太长了,把它拆开成小的函数是否更加清晰明确。 当前的文件或者功能是否过分地耦合了,是否是抽象依赖于细节,将来这个部分是否能够复用?
每个开发者在编写代码时,都应该自问以下几个问题:
- 代码是否足够简单? 别人是否能一眼看懂?
- 代码是否易于维护? 修改一个部分是否会影响到其他部分?
- 代码是否具有可复用性? 是否可以模块化并在其他地方使用?
- 代码是否过度耦合? 是否实现了细节依赖抽象的原则?
通过持续地问自己这些问题,我们能够确保代码保持简单、清晰和可维护,从而实现我们的核心价值观:简单可重复。
只有坚持这些原则,才能在技术不断变化的环境中保持竞争力,持续交付高质量的软件产品。