41 | 组件化和平台化,该如何组织合理稳定的Flutter工程结构?
该思维导图由 AI 生成,仅供参考
组件化
- 深入了解
- 翻译
- 解释
- 总结
Flutter应用的工程架构是软件开发中的重要话题。本文介绍了组件化和平台化作为客户端开发中最流行的分治手段,以及组件化的基本原则和实施步骤。组件化是将一个大型软件系统按照关注点分离的方式拆分成多个独立的组件或模块,每个组件都是一个单独的系统,可以单独维护、升级甚至直接替换。在组件化中,需要遵循单一性、抽象化、稳定性和自完备性原则。具体实施步骤包括剥离基础功能、抽象业务模块和最小化服务能力。通过这些步骤,可以实现整个业务项目的组件化架构。文章通过详细介绍组件化的原则和实施步骤,为读者提供了在设计Flutter应用架构时的指导和思路。 平台化是组件化的升级,即在组件化的基础上,对它们提供的功能进行分类,统一分层划分,增加依赖治理的概念。平台化强调依赖的顺序性,除了不允许出现下层组件依赖上层组件的情况,跨层组件和同层组件之间的依赖关系也应当严格控制。平台化架构设计时需要重点考虑单向依赖原则,即组件依赖的顺序应该按照应用架构的层数从上到下依赖,不要出现循环依赖的现象。平台化与组件化最大的差异在于增加了分层的概念,使得各个组件之间既保持了独立性,同时也具有一定的弹性。 总的来说,组件化和平台化都是软件开发中流行的分治手段,能够将App内的功能拆分成多个独立的组件或模块。分治是一种与技术无关的架构思想,有利于降低工程的复杂性,从而提高App的可扩展和可维护性。本文重点分享了组件化与平台化这两种架构设计的思路,为读者提供了对App架构设计的核心思想的理解和领会。
《Flutter 核心技术与实战》,新⼈⾸单¥59
全部留言(9)
- 最新
- 精选
- 小水滴请问有没有好的方式检测组件之间循环依赖或者层级依赖错误呢,这样可以在开发阶段来规避团队错误的使用方式
作者回复: Dart目前没有特别好用的图形工具可以用来分析依赖,你可以用flutter pub deps来打印工程的完整依赖树,配合简单的字符串扫描脚本,检查下是否存在依赖关系特别深,或是循环依赖的情况
2019-10-082 - 小米老师,关于架构这一讲,有没有demo可以参考一下?
作者回复: 没有哈,我觉得讲架构用图更清晰一些,抽象层次更高。讲代码容易陷入细节
2019-10-26 - 白请问 我目前所做 架构设计稍有不同 第一层是各个模块儿页面 ->各个独立的UI组件(选项卡,slider,bottomSheet,轮播图等等...)->业务逻辑(provider中做逻辑处理然后通知页面)->基础能力模块(网络,加解密,数据存储等...) ,这种方式会有什么隐患或者不足么?
作者回复: 看起来也没啥问题,只要能够有明确的组件划分边界,能够满足业务需求就好
2019-10-192 - 白我在做的App静态资源类主要包括image,color ,icon font ,svg,animation,多语言词条以及一些静态的.json文件,目前我的做法是会写一个脚本去扫描对应的路径生成一个对应的索引类 ex: class AnimationAssets { static const String clock = 'assets/animations/xx.json'; static const String gold = 'assets/animations/xx.json'; }
作者回复: 类似Android R文件的思路,挺好的
2019-10-19 - 神佑小鹿Dart 目前没有特别好用的图形工具可以用来分析依赖,你可以用 flutter pub deps 来打印工程的完整依赖树,配合简单的字符串扫描脚本,检查下是否存在依赖关系特别深,或是循环依赖的情况2023-04-08归属地:广东2
- 小何感觉都是组件化和平台化结合的啊,平台化里面也在用组件化吧2021-07-221
- 陈士玉关于平台化的讲解深受启发,过去的工作中在组件化的基础上有下意识的运用平台化的一些思想(比如单向依赖),但是没有系统的思考过。非常有收获。2023-11-10归属地:北京
- bily和我目前设计的架构思想几乎一致2020-08-30
- outman请教一下,能不能将fluttet这个控件做成组件,比如一个Button ,然后在原生页面使用这个flutter做的button ?2020-05-21