`
javatar
  • 浏览: 1718743 次
  • 性别: Icon_minigender_1
  • 来自: 杭州699号
社区版块
存档分类
最新评论

模块划分方式回顾

阅读更多
模块的划分,一直是争议比较大的地方,各种方案相去甚远,
模块定义,范围,大小,分包,装配各不相同。
根据不同的产品,项目,可能都会有不同的设计。
如果一个公司自用的快速开发平台,它的模块应该如何设计?
简单确立一下设计目标:
1. 低耦合高内聚
2. 模块复用度高
3. 模块可扩展性强
4. 模块自描述,自包含
5. 模块自发现,自装配
6. 模块以业务为中心
7. 模块易于开发测试
8. 模块易于集成部署
.....
初步设想需要解决:
1. 模块的粒度多大
2. 是否区分功能模块与服务模块
3. 模块如何检测和加载
4. 如何描述模块间的依赖关系,并保证依赖关系稳定
5. 模块如何区隔上下文或名称空间
6. 模块如何统一处理全局风格整体置换
7. 模块间如何以对等的方式互相"侵入"
8. 模块如何统一暴露服务API
9. 模块如何识别SPI策略实现
10.模块扩展点如何设计
11.模块如何注册与发布事件
12.模块如何处理截面,拦截器
13.模块元数据如何定义,方便开发,也方便检测
14.模块如何控制版本
15.模块如何简化部署和分发
......
在刚做完的项目中,系统按主用户群使用范围,划分为运单管理,结算管理,巴枪管理,基础数据管理等子系统,
再按业务功能划分为几十个功能模块,按理论,每个功能模块都能部署到任意子系统中,
并且每个模块就是一个jar包,直接扔到lib目录下,即可使用,
框架自动发现模块,自动装配,自动释放访问资源,自动加载配置,
因为是以项目为中心搭建的框架,所以大量采用了命名约定方式,来处理装配过程,尽量减少配置,
但在开发过程中,因为开发人员较多,培训不够,各开发小组协调差,时间仓促等原因,
出现了命名冲突,循环依赖,开发环境搭建难,集成测试不过,等诸多问题,
最后框架为了应付各种情况,做了很多通容的处理,整体都有些变形,
这是设计之初写的blog文章:
http://javatar.iteye.com/blog/182149
当时和leadyu讨论,也觉得有些风险,但还是用上了。
现在想想,虽然不太完美,但在近半年的优化调整后,以及开发人员的磨合,也算比较通畅,
对下一步开发还是很有帮助的,也希望在此基础上作进一步思考。
1
0
分享到:
评论

相关推荐

    功能模块图功能模块图

    功能模块图是软件工程中一种重要的设计工具,它通过图形化的方式清晰地展示了系统的各个组成部分及其相互关系,有助于开发者理解和构建复杂的系统。在宿舍备忘录管理系统中,功能模块图扮演着至关重要的角色,它将...

    PCB技术回顾及展望(第二版)(上).pdf

    按照组装方式划分,PCB可分为通孔安装板、表面贴装板等。 PCB技术的发展历程可以分为雏形期、成长期、发展期。在PCB技术发展的每一个阶段,都有相应标志性的技术被开发出来。例如,随着HDI技术的出现和成熟,电子...

    知识点小结回顾

    4. **模块化构建**:项目被划分为不同的模块(如M400 SMS和Portal),有单独的构建脚本处理每个模块。 5. **部署流程**:`deploy.cmd`脚本展示了自动化部署的过程,可能包括复制文件、启动服务、配置检查等环节。 6....

    计算机类论文的十大模块

    7. **总体设计文档**:总体设计更关注系统的宏观架构,包括模块划分、接口定义、系统流程图等,它提供了系统设计的全局视角。 8. **系统测试报告**:在开发完成后,通过系统测试来验证软件是否满足需求。测试报告...

    操作系统磁盘调度算法课程设计.doc

    包括模块划分、模块调用关系图、子模块程序流程图等多个环节。通过明确的模块划分,学生能够清晰地了解整个课程设计的架构,把握设计重点。模块调用关系图和子模块程序流程图则帮助学生构建起对操作系统磁盘调度算法...

    《JSP课程设计案例精编》

    每个实例都采用系统分析和模块划分的方法,讲解了各个系统是如何设计和实现的。 由于本书不是以理论介绍为重点,而更多侧重于实践应用,因此本书适合对JSP有一定了解或有一定Java编程基础的读者。本书可以作为高等...

    bug等级划分

    - **应用模块无法启动或异常退出**:关键模块的启动失败或非正常退出,阻碍了系统的正常使用。 - **无法测试**:由于bug的存在,测试人员无法进行正常的测试流程,严重影响了测试进度。 - **造成系统不稳定**:bug...

    对单元测试的回顾1

    - 这种将测试按功能层划分的组织方式有助于保持测试代码的清晰性和可维护性。每个模块都有对应的测试类,使得定位和修复问题变得更加容易。例如,如果`DepartmentController`出现问题,开发者可以直接查看`...

    2021软件工程复习回顾一.pdf

    软件设计关注于软件体系结构的构建,体系结构包括模块划分、接口设计、数据结构设计等。软件概要设计关注于系统的整体结构,包括数据库设计、用户界面设计等。 最后,软件工程还涉及软件的测试、部署以及维护,这是...

    一个完整的软件开发流程.zip

    架构设计确定软件的整体结构,模块划分将大任务分解为可管理的小部分,数据库设计则确保数据的有效存储和访问。 3. 编码实现 编码是将设计转化为实际代码的过程。开发者依据设计文档,选择合适的编程语言和框架进行...

    小学数学单元整体模块教学的实践研究.pdf

    2. **聚点模块研究**:在理解单元整体的基础上,教师聚焦关键知识点,将其划分为若干个模块,逐个进行深入研究。这样可以避免知识点的孤立,增强知识的连贯性,帮助学生逐步构建数学概念和技能。 3. **整理回顾提升...

    c++设计报告最终成品.doc

    2. 总体设计思路:这部分内容阐述了系统整体功能与模块划分的思想。系统功能部分详细列出了银行储蓄管理的主要业务,包括开户、显示账户信息、存款、取款、查询余额、转账、修改密码、挂失、销户等操作。各个模块...

    毕业设计项目全流程指导:从选题到实现的设计思路

    接下来是系统设计阶段,这包括设计整体架构、模块划分以及技术选型,其中系统架构要考虑到前端和后端的分层设计,模块划分要明确每个模块的功能和接口。在技术选型方面,选择合适的编程语言、框架和数据库至关重要。...

    全套项目开发文档范例

    2. **概要设计说明书**:基于需求说明书,概要设计说明书描绘了系统的整体架构,包括模块划分、模块间的关系、数据结构和算法选择,以及主要界面设计。 3. **数据库设计说明书**:这部分描述了数据库的逻辑结构、...

    JavaWeb图书馆管理系统.doc

    系统设计部分包括了系统概要设计、功能模块划分、设计思想、模块设计及功能描述、数据库设计等。在功能模块中,以模块化的方式,明确各个模块所承担的功能,如系统登录界面、图书类别管理、图书借阅管理等。 程序...

    需求、用户手册概要、详细、模块开发说明书规范、开发用户验收报告

    3. **详细设计文档**:基于需求文档,详细设计文档进一步描绘了软件的具体实现方式,包括系统架构、模块划分、接口设计、数据结构、算法选择等。它是开发人员进行编码的依据,有助于保证代码质量和项目的可维护性。 ...

    1453381-曾鸣-操作系统课程设计报告1

    报告详细介绍了从需求分析到详细设计的整个过程,包括模块划分、数据结构定义、测试与调试,以及最终的用户使用说明。 1. **磁盘文件结构**: 在UNIX系统中,磁盘文件被组织成一系列的块,每个块通常包含固定大小...

    2022年市场-多媒体教学软件设.pptx

    首先,多媒体教学软件设计的关键要素包括超媒体结构设计、总体风格设计、模块划分以及系统功能模块的构建。超媒体结构设计涉及到节点、链和网络结构,其中节点代表特定主题的信息单元,链则连接不同节点,形成非线性...

    oa系统模块

    历史任务管理模块提供了对过去任务的查询和回顾功能,帮助用户总结经验教训。 **4.6 流程统计** 流程统计功能能够提供关于工作流程的数据分析报告,帮助企业了解流程效率并作出改进决策。 **4.7 流程设计** 流程...

    高职电子信息类模块化课程体系的研究.pdf

    在此基础上,学者们提出了模块化课程结构的概念,它将课程内容划分成若干个相对独立的单元,这些模块与职业岗位能力要求紧密相关,能够根据标准编制为课程模块。 模块化课程体系的划分方法多种多样,根据不同的视角...

Global site tag (gtag.js) - Google Analytics