原文英文,约800词,阅读约需3分钟。
📝
内容提要
数据导向编程1.1版本更新旨在改善原则的表达和组织,主要修改包括将“数据不可变”转为规范性声明,强调透明性,并将边界验证纳入非法状态不可表示的策略中。同时增加了操作的指导原则。尽管原则的权重分配有所改进,但仍存在相互依赖的问题,未来可能需要进一步优化。
🔎
延伸解读
从描述到规范:原则表述的改进
1.0版本中,“数据不可变”是描述性陈述,与其他规范性原则不一致。1.1将其改为规范性声明,并加入透明性,使其成为讨论record的理想载体。这一改动不仅统一了原则形式,还突出了透明性对在数据类之外实现操作的重要性。
边界验证的重新定位
1.1将“在边界验证”归入“使非法状态不可表示”之下,作为实现该目标的一种策略。这反映出两者紧密相关:边界验证是防止非法状态进入系统的具体手段。这种整合使原则更简洁,但也可能模糊了边界验证的独立价值。
操作原则的补充与权重变化
1.1新增“将操作与数据分离”原则,弥补了1.0对操作指导的缺失。然而,原则间的权重分配仍不平衡:以字数衡量,操作部分(2.6k字)是防止非法状态(0.8k字)的三倍多。部分原因是正交性不足,导致某些主题已在其他文章中覆盖。
遗留问题与未来方向
1.1仍存在原则相互依赖、正交性改善有限的问题。例如,调整前两条原则的顺序就显示出它们之间的依赖。“模型数据,全部数据,且仅有数据”虽朗朗上口,但不够精确,作者甚至考虑舍弃。未来1.2可能需要进一步优化原则的独立性与表述。
❓
Q&A
数据导向编程1.1版本更新的主要目的是什么?
主要目的是改善原则的表达和组织。
在1.1版本中,如何处理“数据不可变”的原则?
将“数据不可变”转为规范性声明,并强调透明性。
1.1版本中新增了哪些指导原则?
新增了操作的指导原则。
更新后的原则之间存在什么问题?
原则之间仍存在相互依赖的问题,且权重分配不均。
边界验证在1.1版本中是如何处理的?
边界验证被纳入非法状态不可表示的策略中。
未来的版本1.2可能会改进哪些方面?
可能会进一步优化原则的组织和权重分配。
🏷️