LZ 是一个 Python 开发者,在公司做 Python Web 开发。
公司的业务变得越来越复杂,团队也越来越大,感觉“ fat Active Record ORM Model ”的模式有点力不从心: Model 越写越臃肿、有的逻辑不明确应该放在哪里、依赖关系有点混乱、测试困难等等等。
现在觉得需要对业务进行一些分层处理,类似 Java 开发中常见的区分出 DAO 和 service 。
我理解的 DAO 即是只处理数据操作,隔离底层数据操作和逻辑。 service 处理逻辑。
在我的理解里,其中又有两种实现方式:
貌似 Rails 开发也有类似的 Service Object 概念,来抽象业务模型间的逻辑。
LZ 对 Java 基本不懂,仅限大学时候“ Hello world ”水平。现在这套分层实践起来并不是很顺手,对于命名和结构都比较模糊。 service 的参数、返回值,以及实现方式也是跟着感觉走。对以上的理解也是来自网上东拼西凑,乱说一气,感觉有时间应该翻来 Martin Fowler 的书看看。
大家有类似的经验、什么好的实践、建议吗?或者有其它的方式解决现在遇到的问题?
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.