业务组件化的缺点

简介: 业务组件化的缺点

业务组件虽然能实现代码隔离,多人开发减少影响,增加新功能不减少对老功能的影响。但是它也有很多缺点,甚至特别的项目无法使用业务组件化设计。业务组件化有下面的缺点:

1.业务组件化的代码通常不是自测试,非严格测试,只是对文件头文件进行检测,可能对方法实现的.m文件不深入检测。造成业务组件化的方法本来就是错误的,但是项目能正常运行,但是不报错。这个就让人很奇怪了,闪退了就不一定知道。如业务组件化里的这个函数竟然不报编译错误。

- (NSString *)totalNum {
    if (self.datas.count > 0) {
        LKSameCityButtonModel *model = [self.datas objectAtSafeIndex:self.selectedIndex];
        return model.title;
    } else {
        @"0";
    }
}

2.业务组件化多了,维护时间成本很高,经常打包是一个人修改了,另一个人没有拉最新代码,sourcetree的提示更新也不是那么及时准确,我们十六个业务组件导致每次打包漏代码,一个一个库拉代码又很费时间。

3.业务组件访问图片等资源需要拼接地址,不同的库出现重名的相同图片资源也不报错误徒增app大小。

4.多个业务组件出现相同的文件可能不报错,也可能报错,有可能因人而已,我们出现过一次,不知道是特例还是常规问题。

4.若上马甲包,采用工具混淆时,无法使用混淆工具混淆业务组件。大家知道使用业务组件的工程,所有主要逻辑都在业务组件里,主工程通常是一个空壳或很少的代码,所以只能把所有的业务组件撤销合并成一个工程,业务组件的工程合并成一个工程工作量很大,资源访问要重新整改,搞不好取到的图片为空还不报错。

综上所述:不是所有的工程都适合业务组件,业务组件不能太多,多了要合并,减少维护成本。


目录
相关文章
|
负载均衡 Kubernetes API
Istio:Gateway设计与实现
Istio:Gateway设计与实现
Istio:Gateway设计与实现
|
关系型数据库 MySQL 数据库
MySQL的delete误操作的快速恢复方法
如果我们在数据库中不小心执行了类似“delete from t1”这样的不带where条件的语句,那么整张表的数据就全被删除了,如何在最短的时间恢复被删除的数据就显得十分关键。下面来演示如何通过binlog来快速恢复表数据。
15876 0
MySQL的delete误操作的快速恢复方法
|
4月前
|
移动开发 JavaScript 前端开发
《抉择与权衡:Vue技术栈下uni-app与Taro的跨端较量》
在Vue技术栈为主的团队中,选择跨端开发框架时,uni-app与Taro各有优势。uni-app基于Vue.js,语法熟悉度高,开发效率快,HBuilderX工具支持强,跨端覆盖广(iOS、Android、Web及多小程序平台),性能优化特性丰富,生态插件完善。而Taro虽支持Vue语法,但核心仍带React风格,需适应新思维,其性能在React Native和H5上表现突出,适合对这些平台有高性能需求的项目。团队应根据开发效率、跨端需求及性能要求权衡选择。
274 30
|
10月前
|
缓存 算法 前端开发
如何降低 SPA 单页面应用的内存占用
单页面应用(SPA)由于其良好的用户体验而被广泛使用,但随着应用复杂度的增加,内存占用问题日益突出。本文将介绍几种有效降低SPA内存占用的方法,包括代码分割、懒加载、状态管理优化等技术,帮助开发者提升应用性能。
|
11月前
|
JavaScript
Node.js单点登录SSO详解:Session、JWT、CORS让登录更简单(二)
Node.js单点登录SSO详解:Session、JWT、CORS让登录更简单(一)
359 0
|
调度 Windows Python
windows计划任务的“等待空闲时间”已弃用
【8月更文挑战第19天】若Windows的“等待空闲时间”已弃用,可用这些策略替代:1) 定义特定触发时间,如设定在每日固定低峰时段执行任务;2) 设置重复任务间隔,模仿空闲检测效果;3) 使用第三方调度软件,依据资源使用情况智能调整执行时机;4) 透过PowerShell等脚本监测性能指标来触发任务;5) 根据任务重要性调整优先级,并优化任务以降低资源消耗。
385 9
|
API Swift iOS开发
都2022年了,我们来看看iOS StoreKit 2 吧
都2022年了,我们来看看iOS StoreKit 2 吧
1316 0
|
索引
java.sql.SQLIntegrityConstraintViolationException: Duplicate entry ‘****‘ for key ‘****.****‘
java.sql.SQLIntegrityConstraintViolationException: Duplicate entry ‘****‘ for key ‘****.****‘
461 1
|
物联网 应用服务中间件 Linux
CentOS7.9 Nginx+EMQX集群组建MQTTS平台
通过以上步骤,您已成功搭建了一个基于CentOS 7.9、Nginx和EMQX的MQTTS平台。这个平台既能保证数据传输的安全性,又能利用Nginx的负载均衡能力和EMQX的高性能、高并发处理能力,实现稳定高效的消息服务。在部署和配置过程中,务必注意证书、域名以及EMQX配置的正确性,确保系统安全和稳定运行。此外,定期更新软件和系统,以及监控系统性能,也是保证MQTTS平台长期稳定运行的重要环节。
335 4