敏捷开发使用

news2024/9/24 17:18:20

1.敏捷开发

	敏捷开发以用户的需求进化为核心,采用迭代、循序渐进的方法进行软件开发。在敏捷开发中,软件项目在构建初期被切分成多个子项目,各个子项目的成果都经过测试,具备可视、可集成和可运行使用的特征。换言之,就是把一个大项目分为多个相互联系,但也可独立运行的小项目,并分别完成,在此过程中软件一直处于可使用状态。

2.敏捷开发优势


如果不进行maven父子工程搭建会有什么问题:
一、业务耦合性高,体积大,A17 in one
所有的业务都在一个大工程里面,体积庞大,如果需求变更频繁,无法快速满足新业务快速上线和持续交付。
二、部署麻烦
开发时,一处修改,需要重启整个服务,启动耗时长。
每次局部小改动上线,需要对整个系统重新打包部署,部署周期长。
三、水平扩展性差
由于是单体应用,不能做某些局部功能对高并发要求高而单独部署,从而造成服务在某些时段响应特别慢。好医生预约挂号病例导入导出
---部署到服务器----并发量---集群
四、稳定性差
在某一时段,一个高并发请求会导致整个服务宕机,轻则响应慢,重则停止对外提供服务。给用户造成不可估量的损失。
五、代码维护成本高
业务在不停迭代的同时,源代码也在不停的更新迭代,源代码的作者也是换了一波又一波,造成后来者很难理解和维护这些代码,更为恐怖的是多处地方出现重复的代码。

3.项目拆分

横向拆分,即按照不同的业务功能,拆分成不同的微服务,如天气数据采集、数据存储、天气查询等服务,形成独立的业务领域微服务集群
纵向拆分,即把一个业务功能里的不同模块或组件进行拆分。例如,把公共组件拆分成独立的基础设施,下沉到底层,形成相对独立的基础设施层

4.项目纵向拆分

1. 创建一个maven项目 作为所有项目的父目录
选择quickstart 。 创建完成之后将src目录删除 配置pom文件为父项目


<?xml version="1.0" encoding="UTF-8" ?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <groupId>com.aaa</groupId>
    <artifactId>haoyisheng</artifactId>
    <name>haoyisheng</name>
    <packaging>pom</packaging>
</project>
2.选择父项目 右键-- new module
	在此处创建子项目
此时在创建的子项目的pom文件中会出现
	<parent>
        <groupId>com.aaa</groupId>
        <artifactId>haoyisheng</artifactId>
        <version>Unknown</version>
    </parent>

而在父项目中会出现
	<modules>
        <module>nd-common</module>
        <module>nd-service</module>
        <module>nd-admin</module>
    </modules>

此时一个父子项目就搭建好了

在这里插入图片描述

5.项目依赖

nd-common  公共资源(工具类等)
nd-service 业务操作(service mapper domain)
nd-admin 对外API (controller)

需要在项目中导入这个依赖 才能完成项目之间的互相调用
admin 依赖 service 就是在admin的pom中导入service的依赖
		<dependency>
            <groupId>com.aaa</groupId>
            <artifactId>nd-service</artifactId>
            <version>1.0-SNAPSHOT</version>
        </dependency>

6.项目的第三方依赖

1.在父项目的pom文件中 导入所有的jar包 所有子项目都可以用
	但是在子项目中,往往不需要部分jar包
	所以子项目只需要使用它所需要的jar包

2.各自导入各自需要的都需要的在最底层导入
nd-commpn 公共资源((工具类等)              1ombok spring aop
nd-service 业务操作(service mapper domain) mybatis
nd-admin 对外API (contro1ler)              mvc
	common中需要 lombok但是 service依赖于common 会导致lombok也会导入到service中
	
3.
 	   <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <version>1.18.28</version>
            <optional>true</optional> 设置为true表示不可依赖传递
        </dependency>
	这样会导致版本迭代问题
4. 解决方案:在父项目中引入 子项目中添加 

	父项目pom
	<dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>org.projectlombok</groupId>
                <artifactId>lombok</artifactId>
                <version>1.18.28</version>
            </dependency>
        </dependencies>
    </dependencyManagement>
	
	子项目pom
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
        </dependency>

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1079404.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

基于NIFI工具搭建生产级别的IIOT系统

本示例内容在使用NIFI构建一个高度可扩展的物联网应用数据管道示例的基础上进行。 前文中的示例&#xff0c;如果放到生产环境中&#xff0c;那么MQTT和MINIFI部署在智能设备中&#xff0c;NIFI部署在数据中心服务器上。 如果需要修改MINIFI中的ETL任务&#xff0c;那么我们需…

Java架构师海量数据的存储方案

目录 1 导学2 海量数据和大数据的区别3 海量数据处理的核心思想4 数据库架构设计的方法论5 海量数据处理的方法6 海量数据的存储方案7 海量数据当中的写的方案8 海量数据当中读的方案9 总结1 导学 本章的主要内容呢是大型系统架构设计难点之一的海量数据架构设计相关的知识落到…

配置mysql+Navicat+XShell宝塔:Mark

Centos7开放3306端口&#xff08;iptables 防火墙 未设置&#xff09; Centos7开放3306端口_centos开启3306端口-CSDN博客 firewall-cmd --zonepublic --add-port3306/tcp --permanent Navicat连接1130错误的解决方法 Navicat连接1130错误的解决方法 - 风纳云 ERROR 1062 …

零基础转行网络安全可以做什么工作

一直在说网络安全行业好就业、薪资高、前景也好&#xff0c;但是大家对网络安全这个行业具体做什么工作可能还一知半解。所以今天来跟大家聊聊&#xff0c;网络安全学完可以找到什么样的工作&#xff0c;顺便把不同岗位的不同技术要求也说一下。 安全运维工程师 由于一些知名…

儿童龋齿:原因与预防护理

引言&#xff1a; 儿童的健康是每个家庭都十分关心的问题&#xff0c;其中口腔健康尤为重要。儿童龋齿&#xff0c;也被称为童年龋齿&#xff0c;是一种常见但可预防的口腔健康问题。本文将探讨儿童龋齿的原因&#xff0c;以及提供有关如何预防和护理儿童口腔健康的重要信息。…

Java架构师缓存架构设计解决方案

目录 1 缓存常见的三大问题1.1 缓存雪崩1.2 缓存穿透1.3 缓存击穿2 缓存key的生成策略3 热点数据集中失效的问题4 如何提高缓存的命中率5 缓存和数据库双写不一致的问题6 如何对缓存数据进行分片7 如何应对缓存数据的热点问题1 缓存常见的三大问题 缓存常见的三大问题就是缓存雪…

uni-app生命周期

uni-app的生命周期包括&#xff1a;应用生命周期、页面生命周期、组件生命周期 一、应用生命周期&#xff08;只能在App.vue文件中监听&#xff09; 函数说明onLaunch初始化完成时触发&#xff08;全局只触发一次&#xff09;onShow启动时或从后台进入前台显示onHide从前台进入…

Jenkins 执行远程shell脚本部署jar文件问题起不来

如图&#xff1a;最开始的时候没有加&#xff1a; source /etc/profile 这一行&#xff0c; run.sh里面的java -jar xxxx.jar 一直执行不来。 一开始以为是Jenkins执行退出后会kill一切它启动的进程&#xff0c;所以加了在run.sh里面加了export BUILD_IDdontKillMe&#xff0…

ArcGIS: 第二届全国大学生GIS技能大赛(广西师范学院)详解-下午题

目录 01 题目 02 思路和实操 2.1 流域提取-思路 2.2 流域提取-实操 2.2.1 获取DEM ​编辑 2.2.2 水文分析-提取流域基于单出水口 2.3 河网分级-思路 2.4 河网分级-实操 2.4.1 提取河道网络 2.4.2 河网分级 ​编辑 2.5 子流域提取和处理-思路 2.6 子流域提取和处理-实…

软考高项-第十章:项目进度管理

重要知识点&#xff1a; 以上总结&#xff0c;仅供参考。

第三章-完善MBR

为什么mbr编译时设置数据的起始地址vstart0x7c00&#xff0c;就可以保证程序加载器能将MBR加载到内存的0x7c00&#xff1f; 程序加载器负责将根据编译后的程序地址加载到内存中&#xff0c;mbr 用 vstart0x7c00 来修饰的原因&#xff0c;是开发人员知道 mbr 要被加载器&#x…

Transformer [Attention is All You Need]

&#xff08;一&#xff09;论文部分 Abstract (1)The best performing models also connect the encoder and decoder through an attention mechanism. 最好的性能通过注意力机制将编码器和解码器连接在一起。 (2)the Transformer, based solely on attention mechanisms,…

安装JAVA 依赖环境 Maven 教程

一、下载链接与Tips Maven 过去版本下载传送门&#xff1a;&#xff08; Java 8 兼容 Java 7&#xff0c;即 Java 8 的 JDK 能运行 3.8.8 以下的 Maven&#xff09; Maven Releases History Download 点击 release notes 点击 available for download. 选择 bin 的安装包 然…

【使用 TensorFlow 2】03/3 创建自定义损失函数

一、说明 TensorFlow 2发布已经接近5年时间&#xff0c;不仅继承了Keras快速上手和易于使用的特性&#xff0c;同时还扩展了原有Keras所不支持的分布式训练的特性。3大设计原则&#xff1a;简化概念&#xff0c;海纳百川&#xff0c;构建生态.这是本系列的第三部分&#xff0c;…

Linux之open/close/read/write/lseek记录

一、文件权限 这里不做过多描述&#xff0c;只是简单的记录&#xff0c;因为下面的命令会涉及到。linux下一切皆是文件包括文本、硬件设备、管道、数据库、socket等。通过ls -l 命令可以查看到以下信息 drwxrwxrwx 1 root root 0 Oct 10 17:06 open -rwxrwxrwx 1 root roo…

js 滚动鼠标滑轮放大缩小图片

<div><h1>原图</h1><imgsrc"https://so.360tres.com/dmsmty/160_160_100/t01b29734b9604fb7aa.webp"/><h1>可放大缩小的图</h1><div class"imgView"><imgsrc"https://so.360tres.com/dmsmty/160_160_10…

建设一个完整的企业经营管理体系是什么样的

建设一个完整的企业经营管理体系是确保企业高效、可持续发展的基础。该体系包括组织架构、战略规划、运营管理、人力资源管理、财务管理等多个要素&#xff0c;下面将逐一进行详细介绍。 一、组织架构&#xff1a; 组织架构是企业内部各个部门、职能和层级之间的关系和分工。…

代码随想录算法训练营第五十三天 |1143.最长公共子序列、1035.不相交的线、53. 最大子序和动态规划

一、1143.最长公共子序列 题目链接/文章讲解&#xff1a;代码随想录 视频讲解&#xff1a;动态规划子序列问题经典题目 | LeetCode&#xff1a;1143.最长公共子序列_哔哩哔哩_bilibili 思考&#xff1a; 1.确定dp数组&#xff08;dp table&#xff09;以及下标的含义 dp[i][j]…

关键词搜索天猫商品列表数据,天猫商品列表数据接口

在网页抓取方面&#xff0c;可以使用 Python、Java 等编程语言编写程序&#xff0c;通过模拟 HTTP 请求&#xff0c;获取天猫网站上的商品页面。在数据提取方面&#xff0c;可以使用正则表达式、XPath 等方式从 HTML 代码中提取出有用的信息。值得注意的是&#xff0c;天猫网站…

pytest + yaml 框架 -56. 输出日志优化+allure报告优化

前言 v1.4.8 版本优化接口请求和响应输出日志&#xff0c;生成的allure报告也按步骤优化request和response详情日志 优化日志 用例 test_log1: -name: log1request:url: http://127.0.0.1:8000/api/test/demomethod: GETvalidate:- eq: [status_code, 200]- eq: ["cod…