首页 > 其他分享 >1. 分模块开发

1. 分模块开发

时间:2023-07-04 10:12:35浏览次数:37  
标签:功能 模块 项目 domain 开发 拆分

1. 分模块开发设计

(1)按照功能拆分

我们现在的项目都是在一个模块中,比如前面的 SSM 整合开发。虽然这样做功能也都实现了,但是也存在了一些问题,我们拿银行的项目为例来聊聊这个事。

  • 网络没有那么发达的时候,我们需要到银行柜台或者取款机进行业务操作
  • 随着互联网的发展,我们有了电脑以后,就可以在网页上登录银行网站使用 U 盾进行业务操作
  • 再来就是随着智能手机的普及,我们只需要用手机登录 APP 就可以进行业务操作

上面三个场景出现的时间是不相同的,如果非要把三个场景的模块代码放入到一个项目,那么当其中某一个模块代码出现问题,就会导致整个项目无法正常启动,从而导致银行的多个业务都无法正常班理。所以我们会按照功能将项目进行拆分。

(2)按照模块拆分

比如电商的项目中,有订单和商品两个模块,订单中需要包含商品的详细信息,所以需要商品的模型类,商品模块也会用到商品的模型类,这个时候如果两个模块中都写模型类,就会出现重复代码,后期的维护成本就比较高。我们就想能不能将它们公共的部分抽取成一个独立的模块,其他模块要想使用可以像添加第三方 jar 包依赖一样来使用我们自己抽取的模块,这样就解决了代码重复的问题,这种拆分方式就说我们所说的按照模块拆分。

image

经过两个案例的分析,我们就知道:

  • 将原始模块按照功能拆分成若干个子模块,方便模块间的相互调用,接口共享。

刚刚我们说了可以将 domain 层进行拆分,除了 domain 层,我们也可以将其他的层也拆成一个个对立的模块,如:

image

2. 分模块开发实现

2.1 抽取 domian 层

  1. 创建新模块

  2. 项目中创建 domain 包

  3. 删除原项目中的 domain 包

  4. 建立依赖关系

        <dependency>
          <groupId>com.north</groupId>
          <artifactId>maven_01_pojo</artifactId>
          <version>1.0-SNAPSHOT</version>
        </dependency>
    
  5. 编译项目

  6. 将项目安装本地仓库

2.2 运行测试并总结

将抽取后的项目进行运行,测试之前的增删改查功能依然能够使用。

所以对于项目的拆分,大致会有如下几个步骤:

(1) 创建 Maven 模块

(2) 书写模块代码

分模块开发需要先针对模块功能进行设计,再进行编码。不会先将工程开发完毕,然后进行拆分。拆分方式可以按照功能拆也可以按照模块拆。

(3)通过 maven 指令安装模块到本地仓库(install 指令)

团队内部开发需要发布模块功能到团队内部可共享的仓库中(私服),私服我们后面会讲解。

标签:功能,模块,项目,domain,开发,拆分
From: https://www.cnblogs.com/NorthPoet/p/17524914.html

相关文章

  • 最新windows10 下搭建vue开发环境
    特别说明:下面任何命令都是在windows的命令行工具下进行输入,打开命令行工具的快捷方式如下图: 详细的安装步骤如下:一、安装node.js说明:安装node.js的windows版本后,会自动安装好node以及包管理工具npm,我们后续的安装将依赖npm工具。node.js的官方地址为:https://nodejs.org/e......
  • 振动监测传感器模块方案简析
    前记 振动监测(VM)已经问世很长一段时间,并且已被用于监测机器、设备或结构的健康状况。在机器运行过程中,可以利用专用传感器收集其振动数据以对其进行实时监测和分析。 随着近几年技术的革新,传感器的发展和dsp处理技术的发展,这块逐渐朝着智能化,小型化方向发展。 在这块做了......
  • 公共语言运行库(CLR)开发系列课程(3):COM Interop基础 学习笔记
    公共语言运行库(CLR)开发系列课程(3):COMInterop基础学习笔记  上章地址什么是COMComponentObjectModel组建对象模型 基于接口(Interface)接口=协议IID标识接口V-table虚表方式调用单继承 对象(Object)实现一个或者多个接口举例:IDispatch......
  • 前端工程化实战-开发企业级CLI
    1.前言脚手架大家一定都不陌生,比如我们经常使用的vue-cli、create-react-app,它可以帮助我们快速的初始化一个项目,无需从零配置,极大的方便我们的开发。到这里你可能会疑惑,既然市面上有成熟的脚手架,为什么需要写一个属于自己的脚手架呢。因为公......
  • day05--23.7.3JDK、JRE、JVM以及开发环境搭建
    JDK、JRE、JVMJDK:JavaDevelopmentKit--JAVA开发者工具--用于程序开发java--编译运行javajavac--编译运行javajavadoc--java生成文档jar--java打包成应用JRE:JavaRuntimeEnvironment--JAVA运行时环境appletlibrariesJVM:JavaVirtualMachine--JAVA虚拟机java开发......
  • 编程开发 --- vue是什么
    只面向视图层的html模板引擎只面向视图层指的是可以在浏览器独立运行且只关注视图。模板引擎指的是使得html具备完备编程语言的特性。比如if语句 Vue是一种用于构建用户界面的渐进式JavaScript框架。它是一个开源项目,由尤雨溪(EvanYou)开发,并得到了广泛的社区支持和贡献。Vue......
  • Python | import mmap模块详解(处理大文本)
    如果现在有一个需求,我们需要处理一个20G的大文件,我们会怎么处理呢?思考下,我们需要怎么实现这个功能。我们可能会这么实现:defget_datas():source_text_path="路径"withopen(source_text_path,'rb')asf:data=f.readlines()yielddataif__na......
  • 安卓开发-基础篇(更新中)
    安卓开发-基础篇本篇文章算是自己学习的记录和补充,防止以后忘记。如果能够对大家有所帮助那就更好了。本文将会持续更新(根据本人的学习进度),如有问题,欢迎在评论区留言指正。目录目录安卓开发-基础篇目录1.简单控件1.1文本显示(Text,Color)1.1.1简要介绍1.1.2文本颜色1.2视......
  • python基础day36 软件开发架构
    软件开发架构网络编程:我们要基于网络来编写一款B/S或者C/S架构的软件,比如ATM,我们现在写的都是单机版本的,没有接入网络的系统,别人是无法访问到的目的:以ATM为例,现在我们想把之前写的ATM系统变成基于网络传输的,别人如果想用,就必须把客户端下载到本地电脑上,以登录为例,用户把用户名......
  • 怎样在C语言软件开发代码中加入音乐?
    在使用C语言编写游戏时,许多朋友遇到了添加音乐的问题,不知道该如何处理。今天我将一次性向大家分享解决方法!使用mciSendString函数播放音乐mciSendString函数支持多种媒体格式,如mp3、wma、wav、mid等。使用起来非常简单。下面是一个简单的示例,使用mciSendString函数播放MP3格式的......