如何合理设计一套springcloud+springboot项目中的各个微服务模块之间的继承关系的最优方案

文章目录

    • 一、模块化设计所遵循的原则
    • 二、项目架构设计
    • 三、各个模块作用说明
      • 3.1 core 模块
      • 3.2 common 模块
      • 3.3 generatorcode模块
      • 3.4 business 模块
      • 3.5 web 模块
      • 3.6 admin 模块
      • 3.7 父pom
    • 四、采用import引入SpringBoot

在springcloud微服务项目中经常用到多模块化的架构设计,随着业务模块的增多,各个服务模块之间的依赖关系就越来越复杂;本文从项目起初的搭建,给出一套Model优秀设计方案。

一、模块化设计所遵循的原则

  1. 单一职责原则 (Single Responsibility Principle):

每个模块应该专注于执行一个清晰且明确定义的功能,遵循单一职责原则,以降低模块的复杂性。

  1. 高内聚性 (High Cohesion):

模块内的组件和类应该紧密相关,共同实现模块的目标。高内聚性有助于提高代码的可理解性和可维护性。

  1. 低耦合性 (Low Coupling):

模块之间的依赖应该尽可能减少,以便修改一个模块时不会对其他模块造成影响。低耦合性有助于实现独立的模块。

  1. 可重用性 (Reusability):

模块应该设计成可重用的组件,以便在项目的不同部分或未来的项目中能够复用。这通过提取通用功能到独立的模块(如common模块)来实现。

  1. 清晰的界限和接口 (Clear Boundaries and Interfaces):

模块之间的界限和接口应该明确,确保模块之间的交互清晰可见。这有助于团队成员理解各个模块的职责。

  1. 适度的模块化 (Moderate Modularity):

将功能相近的组件放在同一模块中,但避免过度细化,以免引入不必要的复杂性。适度的模块化有助于提高项目的可维护性。

  1. 分层架构 (Layered Architecture):

通过采用分层架构,如控制层、服务层、数据访问层等,有助于模块的划分和管理。这有助于代码的组织和理解。

  1. 依赖倒置原则 (Dependency Inversion Principle):

模块之间的依赖关系应该依赖于抽象而不是具体的实现。这有助于降低模块之间的耦合性。

  1. 测试容易性 (Testability):

模块应该设计成易于测试的单元,以便进行单元测试、集成测试和端到端测试。

  1. 适应未来扩展 (Adaptability for Future Extension):

模块设计应该考虑未来的扩展性,以便在需求变化时能够轻松地添加新功能或模块。

二、项目架构设计

整体项目使用的是Maven管理的项目。架构:

├─tigerhhzz-admin
│  └─src
│      ├─main
│      │  ├─java
│      │  │  └─com
│      │  │      └─tigerhhzz
│      │  │          └─admin
│      │  └─resources
│      └─test
│          └─java
│              └─com
│                  └─tigerhhzz
│                      └─admin
├─tigerhhzz-business
│  └─src
│      ├─main
│      │  └─java
│      │      └─com
│      │          └─tigerhhzz
│      │              └─business
│      └─test
│          └─java
│              └─com
│                  └─tigerhhzz
│                      └─business
├─tigerhhzz-common
│  └─src
│      └─main
│          └─java
│              └─com
│                  └─tigerhhzz
│                      └─common
├─tigerhhzz-core
│  └─src
│      └─main
│          └─java
│              └─com
│                  └─tigerhhzz
│                      └─core
├─tigerhhzz-generatorcode
│  └─src
│      ├─main
│      │  ├─java
│      │  │  └─com
│      │  │      └─tigerhhzz
│      │  │          └─generatorcode
│      │  │              ├─config
│      │  │              ├─controller
│      │  │              ├─domain
│      │  │              ├─mapper
│      │  │              ├─service
│      │  │              └─util
│      │  └─resources
│      │      └─mapper
│      └─test
│          └─java
│              └─com
│                  └─tigerhhzz
│                      └─generatorcode
└─tigerhhzz-web└─src├─main│  └─java│      └─com│          └─tigerhhzz│              └─web└─test└─java└─com└─tigerhhzz└─web

项目目录结构总览

在这里插入图片描述

三、各个模块作用说明

3.1 core 模块

应用概述: core 模块是整个项目的核心,专注于提供通用的配置和基础服务。主要功能: 可能包含 Spring Boot 的核心配置、通用的拦截器、全局异常处理等。角色定位: 不包含具体的业务逻辑,主要为其他模块提供基础设施。pom文件:

<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><parent><groupId>com.tigerhhzz</groupId><artifactId>tigerhhzz-cloud</artifactId><version>1.0-SNAPSHOT</version></parent><groupId>com.tigerhhzz.core</groupId><artifactId>tigerhhzz-core</artifactId><packaging>jar</packaging><name>tigerhhzz-core</name><url>http://maven.apache.org</url><properties><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding></properties><dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId><version>${springboot.version}</version></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><version>${springboot.version}</version></dependency><!-- MyBatis-plus --><dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-boot-starter</artifactId><version>${mybatis-plus.version}</version></dependency><!-- Mysql驱动包 --><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>${mysql-connector-java.version}</version></dependency><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>${junit.version}</version><scope>test</scope></dependency><dependency><groupId>com.tigerhhzz.business</groupId><artifactId>tigerhhzz-business</artifactId><version>1.0-SNAPSHOT</version></dependency></dependencies>
</project>

3.2 common 模块

应用概述: common 模块用于存放通用的工具类和公共配置,为整个项目提供共享的基础。主要功能: 包含通用的工具方法、常量、公共配置等。角色定位: 不包含具体的业务逻辑,主要为其他模块提供通用功能。pom文件:

<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><parent><groupId>com.tigerhhzz</groupId><artifactId>tigerhhzz-cloud</artifactId><version>1.0-SNAPSHOT</version></parent><groupId>com.tigerhhzz.common</groupId><artifactId>tigerhhzz-common</artifactId><packaging>jar</packaging><name>tigerhhzz-common</name><url>http://maven.apache.org</url><properties><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding></properties><dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter</artifactId><version>${springboot.version}</version></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-security</artifactId><version>${springboot.version}</version></dependency><dependency><groupId>org.apache.commons</groupId><artifactId>commons-lang3</artifactId><version>${commons-lang.version}</version></dependency><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>${junit.version}</version><scope>test</scope></dependency></dependencies>
</project>

3.3 generatorcode模块

应用概述: generatorcode模块可能是一个工具模块,用于生成代码或加速开发过程。主要功能: 可能包含代码生成器、模板引擎等,用于生成基础代码结构。
角色定位: 可能是一个开发辅助工具,用于提高代码生成的效率。pom文件:

<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><parent><groupId>com.tigerhhzz</groupId><artifactId>tigerhhzz-cloud</artifactId><version>1.0-SNAPSHOT</version></parent><groupId>com.tigerhhzz.generatorcode</groupId><artifactId>tigerhhzz-generatorcode</artifactId><packaging>jar</packaging><name>tigerhhzz-generatorcode</name><url>http://maven.apache.org</url><properties><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding></properties><dependencies><dependency><groupId>org.apache.velocity</groupId><artifactId>velocity-engine-core</artifactId><version>${velocity-engine-core}</version></dependency><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>${junit.version}</version><scope>test</scope></dependency><dependency><groupId>com.tigerhhzz.common</groupId><artifactId>tigerhhzz-common</artifactId><version>1.0-SNAPSHOT</version></dependency></dependencies>
</project>

3.4 business 模块

应用概述: business 模块是项目的业务核心,包含实际的业务逻辑和数据库访问。主要功能: 包含与业务相关的服务、领域逻辑、数据库访问(如 MyBatis、Redis)、业务配置等。角色定位: 为整个项目提供具体的业务功能,可能包括订单处理、用户管理等。pom文件:

<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><parent><groupId>com.tigerhhzz</groupId><artifactId>tigerhhzz-cloud</artifactId><version>1.0-SNAPSHOT</version></parent><groupId>com.tigerhhzz.business</groupId><artifactId>tigerhhzz-business</artifactId><packaging>jar</packaging><name>tigerhhzz-business</name><url>http://maven.apache.org</url><properties><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding></properties><dependencies><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>${junit.version}</version><scope>test</scope></dependency><dependency><groupId>com.tigerhhzz.common</groupId><artifactId>tigerhhzz-common</artifactId><version>1.0-SNAPSHOT</version></dependency><dependency><groupId>com.tigerhhzz.web</groupId><artifactId>tigerhhzz-web</artifactId><version>1.0-SNAPSHOT</version></dependency></dependencies>
</project>

3.5 web 模块

应用概述: web模块可能是与第三方服务集成的模块,处理外部服务的调用和数据交互。主要功能: 包含与第三方服务通信的代码、集成配置等。角色定位: 为整个项目提供与外部系统的连接,可能包括支付网关、第三方 API 等。

pom文件:

<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><parent><groupId>com.tigerhhzz</groupId><artifactId>tigerhhzz-cloud</artifactId><version>1.0-SNAPSHOT</version></parent><groupId>com.tigerhhzz.web</groupId><artifactId>tigerhhzz-web</artifactId><packaging>jar</packaging><name>tigerhhzz-web</name><url>http://maven.apache.org</url><properties><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding></properties><dependencies><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>${junit.version}</version><scope>test</scope></dependency><dependency><groupId>com.tigerhhzz.common</groupId><artifactId>tigerhhzz-common</artifactId><version>1.0-SNAPSHOT</version></dependency></dependencies>
</project>

3.6 admin 模块

应用概述: admin 模块可能是项目的管理界面,提供对系统的监控和管理功能。主要功能: 包含管理界面的业务逻辑、前端代码、可能的后台服务等。角色定位: 为管理员提供系统监控、用户管理等功能。pom文件:

<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><parent><groupId>com.tigerhhzz</groupId><artifactId>tigerhhzz-cloud</artifactId><version>1.0-SNAPSHOT</version></parent><groupId>com.tigerhhzz.admin</groupId><artifactId>tigerhhzz-admin</artifactId><packaging>jar</packaging><name>tigerhhzz-admin</name><url>http://maven.apache.org</url><properties><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding></properties><dependencies><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>${junit.version}</version><scope>test</scope></dependency><dependency><groupId>com.tigerhhzz.core</groupId><artifactId>tigerhhzz-core</artifactId><version>1.0-SNAPSHOT</version></dependency><dependency><groupId>com.tigerhhzz.generatorcode</groupId><artifactId>tigerhhzz-generatorcode</artifactId><version>1.0-SNAPSHOT</version></dependency></dependencies>
</project>

3.7 父pom

<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.tigerhhzz</groupId><artifactId>tigerhhzz-cloud</artifactId><version>1.0-SNAPSHOT</version><packaging>pom</packaging><name>tigerhhzz-cloud</name><url>http://maven.apache.org</url><modules><module>tigerhhzz-admin</module><module>tigerhhzz-business</module><module>tigerhhzz-common</module><module>tigerhhzz-core</module><module>tigerhhzz-generatorcode</module><module>tigerhhzz-web</module></modules><properties><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding><java.version>1.8</java.version><aspectjrt.version>1.9.5</aspectjrt.version><javax.validation>2.0.1.Final</javax.validation><commons-beanutils.version>1.9.4</commons-beanutils.version><maven.compiler.plugin.version>3.7.0</maven.compiler.plugin.version><!-- spring --><springboot.version>2.3.2.RELEASE</springboot.version><spring-security-crypto.version>5.3.3.RELEASE</spring-security-crypto.version><spring.mvc.version>5.2.8.RELEASE</spring.mvc.version><!-- alibaba --><!--        <pandora-boot.version>2023-07-stable-hsf</pandora-boot.version>--><pandora-boot.version>2019-06-stable</pandora-boot.version><pandora.boot.maven.plugin.version>2.1.11.8</pandora.boot.maven.plugin.version><!-- 文件上传 --><aliyun-sdk-oss.version>3.10.2</aliyun-sdk-oss.version><!-- nacos --><nacos.client.version>1.2.0</nacos.client.version><nacos.config.spring.boot.starter.version>0.2.7</nacos.config.spring.boot.starter.version><com.alibaba.edas.acm.sdk.version>1.0.9</com.alibaba.edas.acm.sdk.version><!--  rabbitmq--><spring.boot.starter.amqp.version>2.3.1.RELEASE</spring.boot.starter.amqp.version><amqp.client.version>5.5.0</amqp.client.version><mq.amqp.client.version>1.0.5</mq.amqp.client.version><!-- redis --><redis.clients.jedis.version>2.9.3</redis.clients.jedis.version><shiro-redis.version>3.2.3</shiro-redis.version><!-- 序列化 --><com.caucho.hessian.version>4.0.63</com.caucho.hessian.version><gson.version>2.8.6</gson.version><!-- websocket --><org.java-websocket.version>1.5.1</org.java-websocket.version><!-- mybatis --><mysql-connector-java.version>8.0.21</mysql-connector-java.version><mybatis-plus.version>3.3.0</mybatis-plus.version><pagehelper.version>5.2.0</pagehelper.version><pagehelper-spring-boot-starter.version>1.3.0</pagehelper-spring-boot-starter.version><!-- shiro --><org.apache.shiro.version>1.5.3</org.apache.shiro.version><!-- tools --><lombok.version>1.16.20</lombok.version><commons-beanutils.version>1.9.3</commons-beanutils.version><easypoi-annotation.version>4.2.0</easypoi-annotation.version><poi.version>4.1.2</poi.version><swagger2.version>2.9.2</swagger2.version><models.version>1.6.2</models.version><annotations.version>1.6.2</annotations.version><guava.version>28.0-jre</guava.version><!--工具包--><hutool.version>5.5.9</hutool.version><commons-lang.version>3.9</commons-lang.version><velocity-engine-core>2.2</velocity-engine-core><!-- 模板引擎 --><org.freemarker.version>2.3.30</org.freemarker.version><!-- 参数校验 --><hibernate.validator.version>6.1.0.Final</hibernate.validator.version><!--        junit--><junit.version>4.13</junit.version><!-- netty版本 --><netty.all.version>4.1.6.Final</netty.all.version><!-- ip2region版本 --><ip2region.version>1.7.2</ip2region.version><!-- mapstruct版本 --><org.mapstruct.version>1.4.2.Final</org.mapstruct.version><!-- 阿里云短信版本 --><aliyun.sms.version>2.0.9</aliyun.sms.version><com.alibaba.easyexcel.version>3.1.4</com.alibaba.easyexcel.version><!-- xxl-job版本 --><xxl-job-version>2.3.0</xxl-job-version><!-- redisson版本 --><redisson-spring-boot.version>3.17.6</redisson-spring-boot.version></properties><dependencies><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>3.8.1</version><scope>test</scope></dependency></dependencies>
</project>

四、采用import引入SpringBoot

为什么采用import引入SpringBoot?

import 语句可以用于将其他 Maven 项目中的 POM 文件导入到当前项目中。

这样,可以实现模块化的项目管理。使用 import 语句导入其他项目的依赖时,可以在导入时指定版本,使得项目能够更加灵活地选择使用依赖的版本。可以将相关的模块组织到不同的 Maven 项目中,通过 import 在一个父项目中统一管理。这有助于更好地组织项目的结构。

在这里插入图片描述


在你停下来的时候,不要忘记别人还在后面奔跑,在你放弃的时候,不要忘记别人就在你的前面,只差一步而已。


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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

java版询价采购系统 招投标询价竞标投标系统 招投标公告系统源码

在信息化飞速发展的今天&#xff0c;电子招投标采购系统已成为企业运营中的重要一环。这一系统不仅优化了传统的招投标流程&#xff0c;还为企业带来了诸多显著的价值。 首先&#xff0c;电子招投标采购系统极大地提高了工作效率。传统招投标过程中&#xff0c;企业需要耗费大…

物联网——UNIX时间戳、BKP备份寄存器、RTC时钟

RTC时钟 Unix时间戳 UTC/GMT 时间戳转换 时间戳转换 BKP简介 RTC框图 RTC基本结构 硬件供电电路 RTC操作注意事项 接线图&#xff08;读写备份寄存器和实时时钟&#xff09;

系统思考—跳出症状看全局

在和企业创办人交流中&#xff0c;经常听到这样的疑问&#xff1a;“为什么我们试了这么多办法&#xff0c;问题却还是没有解决&#xff1f;”其实很多时候&#xff0c;根本原因并不在于对策不到位&#xff0c;而是连问题的本质都没找对。 曾经和一家企业合作&#xff0c;为了解…

RK3568平台开发系列讲解(platform虚拟总线驱动篇)实验:点亮一个LED

🚀返回专栏总目录 文章目录 一、设备树二、平台驱动三、应用沉淀、分享、成长,让自己和他人都能有所收获!😄 📢xxx 程序编写的主要内容为添加 LED 灯的设备树节点、在驱动程序中使用 of 函数获取设备节点中的属性,编写测试应用程序。 • 首先向设备树添加 LED 设备节点…

【售前方案】工业园区整体解决方案,智慧园区方案,智慧城市方案,智慧各类信息化方案(ppt原件)

基于云计算、物联网、移动通信计算的智慧园区集中运营管理平台是一个高度集成化、智能化的管理系统&#xff0c;它利用先进的技术手段对园区进行全方位的监控和管理。 软件资料清单列表部分文档清单&#xff1a;工作安排任务书&#xff0c;可行性分析报告&#xff0c;立项申请审…

Nacos 配置中心变更利器:自定义标签灰度

作者&#xff1a;柳遵飞 配置中心被广泛使用 配置中心是 Nacos 的核心功能之一&#xff0c;接入配置中心&#xff0c;可以实现不重启线上应用的情况下动态改变程序的运行期行为&#xff0c;在整个软件生命周期中&#xff0c;可以极大降低了软件构建及部署的成本&#xff0c;提…

两大新兴开发语言大比拼:Move PK Rust

了解 Move 和 Rust 的差异有助于开发者根据项目的具体需求选择最合适的语言。选择不恰当的语言可能会导致项目后期出现技术债务。不同语言有其独特的优势。了解 Move 和 Rust 的差异可以帮助开发者拓展技术视野&#xff0c;发现不同语言在不同领域的应用潜力。 咱们直奔主题&a…

【大语言模型】ACL2024论文-16 基于地图制图的罗马尼亚自然语言推理语料库的新型课程学习方法

【大语言模型】ACL2024论文-16 基于地图制图的罗马尼亚自然语言推理语料库的新型课程学习方法 目录 文章目录 【大语言模型】ACL2024论文-16 基于地图制图的罗马尼亚自然语言推理语料库的新型课程学习方法目录摘要&#xff1a;研究背景&#xff1a;问题与挑战&#xff1a;如何解…

面试题:Kafka(一)

1. Kafka如何保证消息不丢失 生产者发送消息到Brocker丢失 设置异步发送 消息重试 消息在Brocker中存储丢失 发送确认机制acks 消费者从Brocker接收消息丢失 Kafka 中的分区机制指的是将每个主题划分成多个分区&#xff08;Partition&#xff09;topic分区中消息只能由消费者…

基于多模板配准的心腔分割算法

&#x1f3e1;作者主页&#xff1a;点击&#xff01; &#x1f916;编程探索专栏&#xff1a;点击&#xff01; ⏰️创作时间&#xff1a;2024年11月18日20点09分 神秘男子影, 秘而不宣藏。 泣意深不见, 男子自持重, 子夜独自沉。 论文链接 点击开启你的论文编程之旅…

ScubaGear:用于评估 Microsoft 365 配置是否存在安全漏洞的开源工具

ScubaGear 是由网络安全和基础设施安全局 (CISA) 创建的开源工具&#xff0c;用于自动评估 Microsoft 365 (M365) 配置中是否存在潜在的安全漏洞。 ScubaGear 分析组织的 M365 租户配置&#xff0c;提供可操作的见解和建议&#xff0c;以帮助管理员解决安全漏洞并加强 Microso…

PgSQL汇总

SQL sql执行顺序 1.from 2.on 3.join 4.where 5.group by(开始使用select中的别名&#xff0c;后面的语句中都可以使用) 6. avg,sum.. 7.having 8.select 9.distinct 10.order by 11.limit⭐流程控制语句 CASE 写法一&#xff1a; CASE case_valueWHEN when_value THENsta…

.NET 简介

文章目录 一、组件二、免费且开源三、支持四、.NET 生态系统 .NET 是一个免费的跨平台开放源代码开发人员平台&#xff0c;用于生成多种类型的应用程序。 .NET 可以运行使用多种语言编写的程序&#xff0c;其中 C# 是最常用的语言。 .NET 依赖于许多大规模应用在生产中使用的高…

Linux之vim模式下全选命令

在Linux系统中&#xff0c;使用Vim编辑器进行全选操作可以通过以下几种方式实现&#xff1a; 1.使用键盘快捷键 按下 ”ggVG”&#xff08;先按下”g”&#xff0c;再按下”g”&#xff0c;再按下”V”&#xff0c;最后按下”G”&#xff09;可以全选当前文件内容。其中 ”g…

【学习笔记】大模型调优(llms_tuning)

项目地址&#xff1a;GitHubchunhuizhang/llms_tuning 文章目录 01 TRL SFTTrainer 中的 formatting_func 与 DataCollatorForCompletion02 accelerate ddp 与 trl SFTTrainer03 finetune_llama3_for_RAG04 optimizer Trainer 优化细节&#xff08;AdamW&#xff0c;grad clip、…

剧本杀门店预约小程序,解锁沉浸式推理体验

一、开发背景 剧本杀作为一种热门娱乐游戏&#xff0c;深受大众的欢迎&#xff0c;但随着市场的快速发展&#xff0c;竞争也在不断加大&#xff0c;对于剧本杀线下商家来说面临着发展创新。 剧本杀线下门店数量目前正在逐渐增加&#xff0c;竞争激烈&#xff0c;而门店的获客…

OpenCV从入门到精通实战(九)——基于dlib的疲劳监测 ear计算

本文实现Python库d和OpenCV来实现眼部闭合检测&#xff0c;主要用于评估用户是否眨眼。 步骤一&#xff1a;导入必要的库和设置参数 首先&#xff0c;代码导入了必要的Python库&#xff0c;如dlib、OpenCV和scipy。通过argparse设置了输入视频和面部标记预测器的参数。 from…

candence : 如何利用EXCEL 绘制复杂、多管脚元件

如何利用EXCEL 绘制复杂、多管脚元件 前面的步骤直接略过 我们以STM32F407VEXX 系列 100pin 芯片为例讲解&#xff1a; 1、新建好一个空元件 2、使用阵列&#xff0c;放置管脚 点击 “ ok ” 3、选中所有管脚 右键 “edit properites” 出现如下页面 4、点击 左上角&…

Java多线程回顾总结

目录 一.线程与创建线程方式简介 二.Thread继承 三.实现Runnable接口 四.Callable接口 五.使用线程池 一.线程与创建线程方式简介 线程与进程的区别&#xff1a; 1、一个进程至少包含一个线程 2、比如电脑上QQ,运行起来就是一个进程&#xff0c;QQ可以聊天同时也可以传文…

深度学习基础练习:代码复现transformer重难点

2024/11/10-2024/11/18: 主要对transformer一些比较难理解的点做了一些整理&#xff0c;希望对读者有所帮助。 前置知识&#xff1a; 深度学习基础练习&#xff1a;从pytorch API出发复现LSTM与LSTMP-CSDN博客 【神经网络】学习笔记十四——Seq2Seq模型-CSDN博客 【官方双语】一…