当前位置: 首页 > 后端技术 > Node.js

关于项目中Repository层的思考

时间:2023-04-03 11:00:53 Node.js

前言项目中需要Repository层吗?这个问题似乎没有确定的答案。以下是我的思考与大家分享。如果您不喜欢它,请不要喷它。Repository的定位我理解Repository是一个大仓库,里面可以包含MySQL、Redis、MongoDB……等数据。维护这一层的开发人员可以称为仓库管理员。当用户需要查询数据时,需要告诉仓库管理员,仓库管理员会交给他。至于仓库管理员从哪里获取数据,与用户没有关系。同样,当你需要创建或更新数据时,也需要告诉仓库管理员,由仓库管理员对数据进行操作。总结:Repository主要封装了数据的查询、创建、更新、删除等逻辑,供用户调用。Repository实现可配置条件查询可配置数据转换可配置数据验证说明“可配置数据转换”:当我们需要返回隐私字段时,比如手机号,如果用户没有数据权限,手机号字段中间4位需要要加*,返回的时间格式要处理。如果你使用的是Laravel框架,可以参考andersao/l5-repositoryRepository的接口。Repository层的接口可以理解为契约(可以理解为LaravelContracts目录),由Domain驱动。存储库中定义的函数应该反映域意图和约束。Domain需要的我会提供,不需要的我不会提供。例如,接口名称可以定义为searchUsersById和searchUsersByName,但不能定义为searchUsersByInfo。不建议将查询字段设置为*,只查询必填字段返回。什么是域?可以理解为领域层。总结使用Repository层有优点也有缺点。缺点是有点繁琐,不如ORM流畅。当然还有很多优点,主要是大大提高了后期的可维护性。列举一些优点:更换或升级ORM引擎时,业务逻辑不会受到影响;方便单元测试,可以用Mock对象代替实际的数据库访问;以上,希望对你有所帮助。最后,如果您觉得这篇文章对您有点帮助,请点个赞。或者可以加入我的开发交流群:1025263163互相学习,我们会有专业的技术解答。如果您觉得这篇文章对您有用,请给我们的开源项目一个小星星:http://github。crmeb.net/u/defu非常感谢!PHP学习手册:https://doc.crmeb.com技术交流论坛:https://q.crmeb.com