Tencent/westore:小程序项目分层架构
Westore是针对小程序的项目分层架构。它在小程序开发中有着重要意义,强制使用面向对象程序设计,其Model可移植,View无业务逻辑且薄,内部通过特定数据处理技术提升编程体验。架...
标签:Github项目Model可移植 Tencent/westore View薄无业务逻辑 小程序项目分层架构 类似MVP架构 面向对象程序设计【Github】项目名:Tencent/westore:小程序项目分层架构
项目简介
Westore是一个针对小程序的项目分层架构。它强制小程序使用面向对象程序设计,开发者从抽象类、类属性和方法以及类之间关联关系入手。其Model可移植,View很薄无业务逻辑,内部使用deepClone + dataDiff换取较好编程体验,View和Model无直接依赖便于测试。架构类似MVP架构,能提升小程序扩展性和维护性。
核心技术
1. 面向对象程序设计:使用职责驱动设计方式抽象出类等关系。例如开发中先设计出Model来表达业务模型。
2. 数据处理技术:内部采用deepClone + dataDiff,换取最短路径setData,只对外暴露update方法隐藏setData,在提升编程体验的同时规避每次setData传递大量新数据的问题。
3. 架构设计类似MVP:View和Store双向通讯、互相引用,View与Model不直接联系通过Store传递,Store引用Model实例,Model不依赖Store,View薄无业务逻辑,Store薄只维护数据和桥接View与Model,Model厚包含所有逻辑。
实践案例
1. 重命名app的开发:传统开发方式与使用Westore重构对比,在使用Westore时定义User实体、UserStore,然后在页面中使用UserStore,展示了代码的解耦和更好的维护性。
2. 贪吃蛇案例:游戏中的浅蓝色部分代码可在小程序、小游戏和Web贪吃蛇项目复用。
3. TodoApp案例:应用中的浅蓝色部分代码可在小程序和Web TodoApp项目复用。
项目总结
目前多数小程序项目业务逻辑堆积在Page构造函数,可读性差、维护成本高。Westore架构将业务/游戏逻辑解耦,使Page只负责展示和接收用户指令并中转给store,store再调用model逻辑,分层边界清晰,维护性、扩展性和可测试性强,能有效控制文件模块大小。欢迎大家留言讨论这个项目。
项目地址
数据统计
数据评估
本站链氪巴士提供的Tencent/westore:小程序项目分层架构都来源于网络,不保证外部链接的准确性和完整性,同时,对于该外部链接的指向,不由链氪巴士实际控制,在2024年12月6日 上午12:00收录时,该网页上的内容,都属于合规合法,后期网页的内容如出现违规,可以直接联系网站管理员进行删除,链氪巴士不承担任何责任。