再论模型与工具

所有的模型都是错的。所有的模型都应该保持简单。在这两句话上,经济学家和软件架构师能达成完全一致。或许还包括物理学家。

识别出哪些是模型哪些是工具至关重要。它使你的第一个MVP专注在模型上。使看上去“都重要”的需求也有了天然的优先级。

同时,它还使得抽象成了你天然的需要——模型必须是建立在抽象概念上的。接口和实现也自然分开了。并且,哪些组件必须有接口,哪些组件可以先狗着(工期永远不够)也比较清楚。

想起阿里Java开发手册上有一条,要求所有的抽象类都要有Abstract或Base字样。这是错误的。十几二十年前这种做法很普遍。抽象类到底算是模型还是工具?取决于设计。很多时候它是工具,即可以不用它,自己写个类实现接口。这就是近年来业界很多抽象类都被命名XXXSupport的原因。接口实现必须以Impl结尾就更离谱了,这个后缀本来就是反模式。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容