
课程咨询: 400-996-5531 / 投诉建议: 400-111-8989
认真做教育 专心促就业
模块化和组件化都是软件开发程序员在开发app软件的时候都会用到的一个编程技术,下面我们就通过案例分析来了解一下,app软件开发包含哪些要点。
1、组件
App工程上所说的组件,应该翻译为“Component”,意思是组件、部件、元件。在电脑的构造中,CPU这类部件就是电脑构成的基本元素,而且CPU坏了,更换一个新CPU即可,绝不会影响到硬盘等其它部件,具有高内聚,松耦合的特性。在App工程上,组件是构成业务或者功能模块的基本单位。原则上,组件与组件之间互不依赖。
例如,网络请求功能,应该叫“网络组件”,而不是“网络模块”。因为网络请求数据从功能、业务上,已经不能往下拆了。
网络请求可能使用okhttp,或者retrofit。无论网络组件用okhttp网络库,还是retrofit网络库,都不会影响这个组件的功能,因此组件具有可替换性;同时,网络组件可以被多个业务使用,因此组件具有可复用性,而且组件的开发需要遵守软件设计模式中”单一职责”原则。
同理,日志功能,叫“日志组件”,不叫“日志模块”。因为从编码的角度来看,我们不可能特意去划分订单日志或是抢单日志,应该是统一记录日志即可。
2、模块
模块翻译为“Module”。模块由多个组件构成,它可以实现一个独立的功能,甚至业务。
例如,胖猫司机的订单功能,是一个业务,可以叫“订单模块”,产品培训或各部门交涉时习惯上叫“订单业务”。它可以拆分更小的模块:订单搜索、订单调度车辆等,只是目前功能较小,不必过度拆分,否则得不偿失。
3、组件和模块的关系
从上面的阐述可以得出,一个工程,由多个模块组成,每个模块由多个组件构成。但很多时候,两者界限还是相当模糊。例如“日志组件”称为“日志模块”,也没有违和感。
组件从业务角度上不能继续拆分,可替换,可复用;
模块的定义比较笼统,可以是一个Business业务,可以是技术架构中一个业务,也可以是几个组件构成的小功能。
通过以上的种种描述来看组件化侧重点是应该基于重用,而模块化侧重点应该是基于解耦。无论是组件化还是模块化,目标都是把臃肿的工程,拆分为更小的部分,解耦各种复杂的逻辑,便于代码管理。
4、业务划分
产品经理根据业务部门的需求在规划产品功能,或者做产品原型时,业务已经划分好了。如果业务庞大的App项目,后端牛逼的话,他们也会做业务划分,极有可能根据业务进行负载均衡来提高服务器交互性能。所以,App端做业务划分时,可以咨询后端,正所谓一个优质软件的形成离不开各个环节,前后不分家,也可以咨询产品经理。
【免责声明】:本内容转载于网络,转载目的在于传递信息。文章内容为作者个人意见,本平台对文中陈述、观点保持中立,不对所包含内容的准确性、可靠性与完整性提供形式地保证。请读者仅作参考。更多内容请加danei0707学习了解。欢迎关注“达内在线”参与分销,赚更多好礼。