app的组件化之路:业务组件化与中间件,MVVM架构的作用

简介: app的组件化之路:业务组件化与中间件,MVVM架构的作用

app发展的两个方向:组件化和新架构。

app组件化包括业务组件和中间件,它起到代码仓库隔离的作用,是模块化的具体应用,每个人通常分工时,做不同的模块从减少代码上传时的代码冲突。

MVVM架构是模块内页面的代码组织形式,能提高模块内页面代码的内聚性,提高代码的结构清晰性,易读性和开维护性。

组件化就是为了提高代码的重用率,架构是为提高具体功能页面的清晰性。组件化作用在文件级别,架构主要体现在页面级别,组件化对多app尤其重要,单app对架构更偏重。

业务组件可以是一个工程也可以不是。因为业务组件通常不需要对所有代码编译测试,它可能不能独立运行,一般不上传私有库,但是上传代码仓库。而私有组件和中间件一般都是一个工程,因为它通常能独立运行,内对所有代码编译测试,不然pod spec lint命令检查不通过,无法上传私有库或公有库。若业务组件能单独运行,等代码稳定了可以把它抽象成私有库。注意:我说的私有库是指通过严格的编译检查,通过pod repo push ******Spec上传私有源的工程仓库,不上传私有源的工程我们不称它为私有库。

业务组件是相当于主工程产生的。主工程一般负责引入和组织业务组件,公有组件,中间件,私有组件;还负责app工程启动与数据加载,登录逻辑等各个app经常变更的页面与逻辑,甚至包括根据请求结果进行架构切换的逻辑。业务组件只实现部分功能,一般业务组件项目不能独立运行全部它的全部功能,需要主工程引用和使用。若他能全部运行并使用它的全部功能,那么它就可以抽象成狭义私有库或中间件了。业务组件可以理解成是松耦合的文件结合,不要求独立运行。

中间件和私有组件:是严格约束的代码库,咱们和公有组件一样都能独立运行,能通过严格的pod spec lint检查。一般放在自己公司的gitlab上,一般也能放在github或码云上。为了保密和不付费,下载速度快,通常放在自己公司gitlab服务器上。中间件就是被其它的多个私有库或业务组件使用的一种私有库,它本质实际也是私有库。

新架构mvvm和组件化是软件工程的两个方面。组件化是指的项目文件的组织方式,而MVVM或MVP是对功能的具体实现与组织形式。所以组件化重在文件,MVVM重在功能。

MVMM一般分为实体类,View(页面元素),控制器,view-model负责具体的请求与参数填写与校验,请求结果的简单解析。所有只要在MVC的基础上抽象出view-model一般都属于MVVM,注意不是使用单例处理所有请求的方式。一般MVVM都使用ReactiveCocoa,大量使用信号和block。MVVM有很多实现方式,只要符合MVVM概念组织页面都属于MVVM架构。但是MVVM架构是有优劣的。

好的架构能让代码组织更清晰,更容易理解,但是决定代码好坏的不是架构,主要是人而不是架构。很差的架构有的人仍旧能写高质量的代码,有的人用最先进的架构写出低劣的代码都是很正常。千万别别指望所有的bug所有的人只要给时间修改就一定能消灭bug。有的人在修改一个bug时产生另一个bug,只是新的bug可能更难测试出来的bug。这个就要看这个人属于那种人了,也要看他的方案的完美性了。如:我们在一个页面请求成功弹出一个会消失的提示框并返回上一个页面。当使用MBProgressHUD等其它库加载在keywindow上,通常是看不到哪个提示框,测试就会给你提个问题单,很多人会采用延迟退出的方式,来让弹出框弹出后再返回。其实这样会降低用户体验,并且可能出现内存泄漏误报,甚至多次点击概率闪退等其它不可控问题,而且通常测试还测试不出来。当然最正确的解决方案是采用多window方案来实现跨页面显示。

程序猿有四类:

1.做的即慢质量又差的;2.做的即快质量又差的;3.做的慢但是质量好的;4.做的即快质量又好的。个性决定命运。若第一类三年升级不到3它走不到10年80%转行的命运;第二类人并不一定能变成第四类人,排除经验的原因外,很可能是性格使然,这类人通常更容易转行;第三类人通常能进入10年20%保留在本行业内;第四类人除了特殊原因,他们都是我们追求的目标,可惜这种人一般除了在程序猿这行业全能,通常更适合领导,10年不到他们大都去当领导去了。一般只有在它刚干这行的前五年才能见到这类人。所以招聘人就是招聘人和他的工作经验,组件化和架构是非必需条件,有更好。

看一下我们的业务组件化,中间件,公有组件在工程中的组织形式吧:

公有库

私有库和中间件

私有组件工程文件结构

业务组件工程文件结构

目录
相关文章
|
29天前
|
消息中间件 存储 Java
RocketMQ(一):消息中间件缘起,一览整体架构及核心组件
【10月更文挑战第15天】本文介绍了消息中间件的基本概念和特点,重点解析了RocketMQ的整体架构和核心组件。消息中间件如RocketMQ、RabbitMQ、Kafka等,具备异步通信、持久化、削峰填谷、系统解耦等特点,适用于分布式系统。RocketMQ的架构包括NameServer、Broker、Producer、Consumer等组件,通过这些组件实现消息的生产、存储和消费。文章还提供了Spring Boot快速上手RocketMQ的示例代码,帮助读者快速入门。
|
15天前
|
XML 前端开发 Android开发
Kotlin教程笔记(80) - MVVM架构设计
Kotlin教程笔记(80) - MVVM架构设计
|
17天前
|
前端开发 JavaScript 测试技术
android做中大型项目完美的架构模式是什么?是MVVM吗?如果不是,是什么?
在 Android 开发中,选择合适的架构模式对于构建中大型项目至关重要。常见的架构模式有 MVVM、MVP、MVI、Clean Architecture 和 Flux/Redux。每种模式都有其优缺点和适用场景,例如 MVVM 适用于复杂 UI 状态和频繁更新,而 Clean Architecture 适合大型项目和多平台开发。选择合适的架构应考虑项目需求、团队熟悉度和可维护性。
45 6
|
21天前
|
存储 Dart 前端开发
flutter鸿蒙版本mvvm架构思想原理
在Flutter中实现MVVM架构,旨在将UI与业务逻辑分离,提升代码可维护性和可读性。本文介绍了MVVM的整体架构,包括Model、View和ViewModel的职责,以及各文件的详细实现。通过`main.dart`、`CounterViewModel.dart`、`MyHomePage.dart`和`Model.dart`的具体代码,展示了如何使用Provider进行状态管理,实现数据绑定和响应式设计。MVVM架构的分离关注点、数据绑定和可维护性特点,使得开发更加高效和整洁。
147 3
|
27天前
|
存储 前端开发 测试技术
Android kotlin MVVM 架构简单示例入门
Android kotlin MVVM 架构简单示例入门
28 1
|
27天前
|
XML 前端开发 Android开发
Kotlin教程笔记(80) - MVVM架构设计
Kotlin教程笔记(80) - MVVM架构设计
25 1
|
1月前
|
XML 前端开发 Android开发
Kotlin教程笔记(80) - MVVM架构设计
本系列学习教程笔记详细讲解了Kotlin语法,适合需要深入了解Kotlin的开发者。对于希望快速学习Kotlin语法的读者,建议参考“简洁”系列教程。本文重点介绍了Kotlin实现MVVM架构的设计思路和代码实现,包括Model、ViewModel和View层的具体实现,以及如何通过LiveData和viewModelScope有效管理数据和内存,避免内存泄漏。此外,还讨论了MVVM架构的常见缺点及应对策略,帮助开发者在实际项目中更好地应用这一设计模式。
34 1
|
18天前
|
前端开发 Java 测试技术
android MVP契约类架构模式与MVVM架构模式,哪种架构模式更好?
android MVP契约类架构模式与MVVM架构模式,哪种架构模式更好?
26 0
|
1月前
|
存储 前端开发 Java
Kotlin教程笔记 - MVVM架构怎样避免内存泄漏
Kotlin教程笔记 - MVVM架构怎样避免内存泄漏
|
1月前
|
设计模式 前端开发 JavaScript
深入探索研究MVVM架构设计
【10月更文挑战第7天】
23 0

热门文章

最新文章

下一篇
无影云桌面