保持事物同步:派生与测试

主要观点:编程中常见问题是程序多部分需保持同步,“DRY”等原则主张一处定义规则并多处派生,然而有时遵循此原则会弊大于利,应考虑其他方法。

关键信息:

  • 本质问题:修改某行为需多处改易致遗忘产生 bug,如 30 天限制定义及告知用户界面。
  • 理想方案:通过“derive”,一处定义规则,其他处自动派生,如 Python 中定义常量并导入使用。
  • 替代方案:通过测试,如写测试用例检查代码行为同步,对于某些情况比“derive”更有效,如外部数据源默认值处理。
  • 示例:

    • 例 1:外部数据源中默认值处理,用简单测试代替复杂“derive”。
    • 例 2:定义域对象的 UI 行为,手动同步并加测试比“derive”更优,简单易理解、可自定义错误消息等。
    • 例 3:外部多态和静态类型,添加穷尽性检查测试以防遗漏新命令。
    • 例 4:网页开发中确保设计一致,CSS 变量可实现“derive”,但全自动化工具带来诸多问题,可用“test”方法,手动添加测试检查设计令牌同步。
  • 结论:不必完全依赖全自动“derive”消除手动同步,手动加测试机制是合理解决方案,可避免“derive”带来的高成本。

重要细节:

  • 编程原则应理解为谚语而非绝对法律,需根据实际情况选择合适方法。
  • 不同示例中在各种编程场景下具体运用“derive”和“test”方法及优缺点。
  • 提及个人博客及观点不代表其他方面意见。
阅读 12
0 条评论