在交互式开发上

主要观点:作者分享了在 Clojure 开发中的各种经验和思考,包括交互式开发、不同组件间的耦合问题、各种库的使用及局限性等。
关键信息

  • 交互式开发在小系统中自然流畅,但随着系统增长需更多努力维持,其好处包括易进入心流状态、支持思维过程、部分替代单元和集成测试等,但其在系统演化中易受侵蚀。
  • 系统组件间的紧密耦合(如初始化时加载所有配置文件等)会导致修改困难,需实现局部控制,如使用生命周期管理库。
  • SQL 查询在交互式开发中较难实现,如 YeSQL 存储 SQL 为字符串无法组合等,HoneySQL 可将 SQL 表示为 Clojure 映射便于操作。
  • 不同的开发场景如 Web 处理、依赖热加载、编辑器集成等在交互式开发中都有各自的问题和解决方法。
  • 对于继承遗留代码,如 re-frame 项目,安装 re-frame-10x 可提高系统可检查性。
  • 对 Clojure 中一些概念的误解,如对宏的扩展性认识等,后来有了新的理解。
  • 介绍了多个项目和工具,如 Compass、Kaoha、Regal 等的开发和改进情况。
    重要细节
  • 详细阐述了系统各方面在交互式开发中受侵蚀的原因及解决办法,如组件生命周期管理、业务逻辑与服务解耦、SQL 查询处理、Web 处理相关问题、依赖热加载及编辑器集成等。
  • 分享了在不同项目中的具体经历,如处理客户端的 rate limit 需求、优化代码质量、接管 re-frame 项目等。
  • 提及了多个相关工具和库的特点及使用场景,如 mount、integrant、makina、YeSQL、HoneySQL、ring、reitit、sieppari 等。
  • 讲述了自己对编程相关概念的思考,如编程与思考的关系、潜意识在编程中的作用等。
阅读 11
0 条评论