</> htmx ~ Codin' Dirty

主要观点:作者介绍自己“脏代码”的编程方式,包括认为一些大函数是好的、更倾向于集成测试而非单元测试、尽量减少类的数量等,并希望给年轻开发者一些启发,表明不必完全按照所谓“清洁代码”的建议来编程也能取得成功。
关键信息:

  • 大函数:作者认为一些大函数在代码库中是好的,大型“关键”函数约 200 - 300 行,还有 10 - 20 行的“支持”函数和 5 - 10 行的“实用”函数,如 htmx 中的issueAjaxRequest()函数近 400 行,SQLite、Chrome、Redis 和 IntelliJ 等成功软件中也有大函数,实证研究结果也不一致。
  • 测试方式:作者喜欢在项目早期进行一些单元测试,等模块核心 API 和概念确定后用集成测试来测试 API,认为集成测试比单元测试更有用,能在代码重构时保持稳定,且可进行高层次的测试驱动开发。
  • 类的数量:作者尽量减少项目中的类、接口和概念数量,认为不应过度追求小类或多态,以 Active Record 为例说明其在 Ruby on Rails 中的作用,虽可能有“杂糅”功能,但能减少对象数量和处理层次。
    重要细节:
  • 作者提到自己的编程方式并非要让他人效仿,只是希望年轻开发者知道有不同的编程途径可成功,如很多成功软件就是“脏代码”写的,只要关注软件工程的核心思想就能成功。
  • 文中列举了多个成功软件的代码示例,如 htmx、SQLite、Chrome、Redis 和 IntelliJ 等,说明大函数在实际项目中的存在。
  • 对测试方式的讨论中,指出早期采用测试优先方法可能导致测试随项目进展而变得复杂且难以维护,而集成测试更注重高层次的不变量。
  • 在关于类的数量讨论中,对比了不同编程方式,如 Active Record 与更重分解的实现,强调了简化对象处理的重要性。
阅读 7
0 条评论