- 博客(130)
- 资源 (1)
- 收藏
- 关注
原创 持续集成与Jenkins安装使用教程
持续集成(Continuous integration,简称CI)指的是,频繁地(一天多次)将代码集成到主干。持续集成的目的,就是让产品可以快速迭代,同时还能保持高质量。它的核心措施是代码集成到主干之前,必须通过自动化测试。只要有一个测试用例失败,就不能集成。通过持续集成,团队可以快速的从一个功能到另一个功能,简而言之,敏捷软件开发很大一部分都要归功于持续集成。
2025-04-02 17:27:27
665
原创 GITLAB部署安装教程
GitLab 是一个用于仓库管理系统的开源项目,使用Git作为代码管理工具,并在此基础上提供了wiki、问题跟踪和CI/CD(持续集成/持续部署)等功能。它允许团队协作开发软件,提供了一个完整的DevOps生命周期的解决方案,从计划、创建、验证、打包、发布到配置、监控等各个环节。但是我们一般只用它的基本免费功能,作为私有仓库使用,然后与jenkins配套使用。
2025-03-21 11:37:49
650
原创 docker学习使用教程
Docker 是一个开源的应用容器引擎,基于 Go 语言 并遵从 Apache2.0 协议开源。Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口(类似 iPhone 的 app),更重要的是容器性能开销极低。多数技术人员在谈到Docker时,主要是指Docker引擎。Docker引擎是用于运行和编排容器的基础设施工具。我们可以通过Dockerfile。
2025-03-10 14:09:01
737
原创 python中如何组织项目工程文件
一个典型的Python项目工程目录结构可以帮助你更好地组织代码、资源和测试,从而使得项目更加清晰和易于维护。
2025-03-01 21:42:14
1033
原创 ERP系统的库存模块业务逻辑及设计
传统上通常将“库存管理”理解为对物料的进、出、存的业务管理,但这种理解在ERP系统中是不全面的。APICS词汇中对库存的定义是“以支持生产、维护、操作和客户服务为目的而存储的各种物料,包括原材料和在制品、维修件和生产消耗、成品和备件等”。库存管理工作应该包括物料的存储、收发、使用及计划与控制等相关的各个方面。
2025-02-28 11:12:32
815
原创 python入门及基本使用
如今AI技术特别火爆,而python又是AI技术的必要语言。我作为java程序员,也是有必要学一下python的技术的,以与时俱进。python官网下载地址:https://www.python.org/downloads一般下载最新的版本,注意加入python到环境变量中。输入python出现版本信息就算安装成功了除了需要解释器,还需要IDE编代码的工具,python的编写工具有很多,推荐使用pycharm。pycharm官网下载地址:https://www.jetbrains.com.cn/py
2025-02-22 22:09:06
766
原创 软件需求规格说明书怎么写?附标准格式样例
【根据不同业务背景的读者,应该提醒重点阅读哪些内容。【术语表应该要解释在本文件中多次出现、易于混淆或者重要的术语,应该被wiki单独管理。【面对破解混沌不清的项目目标,一是破解混沌不清的项目目标,寻找真正的项目发起人,二是外部溯源,寻找外部因素所激发的项目】【要么是解决问题的,要么是创造机会的】例如:(1)解决预约安排不合理的问题:避免出现体检部门超负荷;(2)解决物资供应脱节问题:通过安全库存量管理避免物资短缺现象出现。
2025-02-15 11:32:44
1277
原创 DeepSeek本地部署教程
现在DeepSeek比较火,可以将模型安装在自己电脑上进行使用。害怕有隐私泄露安全隐患的话,可以本地部署一个试试。
2025-02-05 17:20:20
14816
原创 mybatis plus 持久化使用技巧及场景
mybatis plus提供了很多强大的持久化工具,新手容易对这些工具使用困难,下面我总结了一下mybatis plus持久化的使用技巧及使用场景。
2025-02-04 09:38:17
681
原创 CMS内容管理系统的设计与实现:概述
内容管理系统(Content Management System, CMS)是一种由后端内容管理系统和前端内容展示平台两部分组成的软件系统。内容的创作人员、编辑人员、发布人员通常使用后端内容管理系统来提交、修改、审核和发布内容,最终在前端内容展示平台展示给用户,供用户消费(指用户接受内容的方式和行为)。这里的“内容”可以是文字、图片、视频、音频以及文件等形式的信息。在设计内容管理系统时,要站在内容和管理两个角度,基于从内容的生产到用户的消费的整个生命周期来考虑CMS产品设计闭环。
2025-01-23 20:35:44
1230
原创 基于若依框架的动态分页逻辑的实现分析
如果让我们自己写分页查询的逻辑,应该怎么写呢?在前端要完成分页的逻辑实际要做的工作还是挺多的。1.分页查询应该支持查询参数的输入,对于一个有众多属性的列表,可能有很多查询参数,对于不同的参数类型,有的需要like模糊查找、有的需要equals相等、有的必须是一个between时间范围。2.分页查询要有一个查询区的页面组件提供查询参数的输入,这个要考虑查询区的形式,提供平铺式的,还是提供一个简单的搜索输入框,要考虑是否记录历史值,使用get还是post发送请求。
2025-01-18 16:12:08
973
原创 Springboot项目Druid运行时动态连接多数据源的功能
项目支持多数据库连接是个很常见的需求,这不仅是要在编译前连已经知道的多个数据库,有时还要在程序运行时连后期增加的多个数据源来获得数据。
2024-12-26 17:15:04
928
2
原创 低代码开发平台搭建思考与实战
低代码开发平台是一种平台软件,人们能通过它提供的图形化配置功能,快速配置出满足各种特定业务需求的功能软件。具有以下特点:提供可视化界面进行程序开发 零代码或少量代码快速生成应用什么是低代码产品唯一不可缺少的功能?很多人认为是可视化编辑,那么非可视化编辑就是代码编辑。既然可视化编辑是低代码平台必不可少的功能,那可视化编辑就是低代码平台的必要条件。
2024-11-20 11:30:35
1954
1
原创 调用返回的消息契约对象常用后缀命名汇总
在调用/返回风格的程序中,程序员常常被接收和返回的java对象该如何命名而困扰。下面是我总结的针对不同场景的一些命名规范,解决你不知道该如何命名的难题,旨在帮助在Java项目中更有效地命名消息契约模型(DTO)。这些规范可以帮助确保代码的一致性和可读性。
2024-11-18 23:46:20
746
原创 系统架构设计师:软件架构的演化和维护
软件架构一般会经历初始设计、实际使用、修改完善和退化弃用的过程,其中修改完善的过程实际上就是软件架构的演化和维护过程,演化和维护的目的就是为了使软件能够适应环境的变化而进行的纠错性修改和完善性修改等。软件架构的演化和维护过程是一个不断迭代的过程,通过演化和维护,软件架构逐步得到完善,以满足用户需求。
2024-11-15 23:00:36
1186
原创 系统架构设计师:系统架构设计基础知识
从第一个程序被划分成模块开始,软件系统就有了架构。现在,有效的软件架构及其明确的描述和设计,已经成为软件工程领域中重要的主题。
2024-11-15 22:57:21
2860
原创 GIT常用操作及多人提交代码的工作流程
Git 是一个分布式版本控制系统,用于追踪文件的变更历史。它主要用于软件开发中的源代码管理,但也可以用于任何类型的文件。
2024-10-23 01:18:07
461
原创 centos系统安装oracle数据库教程(linux命令行安装)
一般来说我们Windows下进行安装Oracle都很简单,但Linux下却要输入很多命令,配置比较麻烦。以下的安装步骤是本人经过安装Linux下的Oracle经验,希望能帮到大家。
2024-10-22 20:02:37
1651
原创 关于项目从java8升级到java17需要做的变更
现在java最新版本都升级到22了,本着你升任你升,我用java8的原则,之前我的项目也一直是java8。但是最近看到java8项目的占用率逐渐减少,java17和java21的版本占有率逐渐提升,都超过市场一半以上份额了。本着追求新技术的考虑,新版本更优秀的性能以及兼容性的考虑,我将java8升级到了java17了。
2024-10-09 15:10:52
1066
1
原创 基于RBAC的通用权限管理系统的详细分析与实现(实现篇-Spring Security安全管理框架)
安全可以说是公司的红线了,一般项目都会有严格的认证和授权操作,在Java开发领域常见的安全框架有Shiro和Spring Security。Spring Security是一个相对复杂的安全管理框架,功能比Shiro更加强大,权限控制细粒度更高,对OAuth 2的支持也更友好,又因为Spring Security源自Spring家族,因此可以和Spring框架无缝整合,特别是Spring Boot中提供的自动化配置方案,可以让Spring Security的使用更加便捷。
2024-10-03 14:37:25
1763
1
原创 基于RBAC的通用权限管理系统的详细分析与实现(理念篇——权限对象、权限项、功能权限、数据权限、权限组、权限设计)
在与人沟通的过程中,我们很多次提到了权限,但是权限具体的含义每个人理解的含义都不明确,这样很容易造成双方信息不对称,有的人就只是把权限理解成某个页面的是否可访问,但是有的人却理解成其他的东西。所以我们要彻底的定义一下权限是什么?“权限”这个词语,我们谈论时到底是名词属性还是动词属性?这对于权限的含义很重要。如果是名词属性的话,那么它应该是有具体的指代物;如果是动词,则应该具有行为表示。- 权限的名词属性:api接口、页面、业务功能等。- 权限的动词属性:可访问、新增、编辑、可操作、不可操作等
2024-10-02 10:38:28
5009
原创 实现领域驱动设计(DDD)系列详解:集成限界上下文
一个项目中通常存在着多个限界上下文,并且我们需要在它们之间进行集成。在**上下文映射图**中存在两种主要形式:一种是通过绘制一些简单的框图来展示它们之间的集成关系;另一种则是通过代码来实现这些集成关系。到了具体的技术实现,需要确定限界上下文的物理边界,因为它会直接影响架构的设计与实现。限界上下文的物理边界,实际指的是通信边界,以进程为单位分为进程内与进程间两种。
2024-09-24 17:33:14
1200
原创 实现领域驱动设计(DDD)系列详解:厘清限界上下文的边界
软件系统的架构,无非分分合合的艺术。限界上下文封装了分离的业务能力,上下文映射则建立了限界上下文之间的关系。二者合一,就体现了高内聚松耦合的架构原则。高内聚的限界上下文要形成松耦合的协作关系,就需要在控制边界的基础上管理边界之间的协作关系。业务场景的协作是起因,它突破了限界上下文的业务边界。当我们将限界上下文视为团队的工作边界时,这种协作关系就转换成团队的协作,需要用项目管理手段来解决。为了避免限界上下文之间产生混乱的灰色地带,还需要引入一些软件设计手段,让跨限界上下文之间的协作变得更加可控。
2024-09-22 11:00:58
1210
原创 实现领域驱动设计(DDD)系列详解:限界上下文
什么是限界上下文(bounded context)?要明确限界上下文的定义,需要从“限界”与“上下文”这两个词的含义来理解。上下文表现了业务流程的场景片段,整个业务流程由诸多具有时序的活动组成,随着流程的进行,不同的活动需要不同的角色参与,并导致上下文因为某个活动的执行发生切换,形成了场景的边界。因而,上下文其实是动态的业务流程被边界静态切分的产物。
2024-09-15 22:54:51
1727
原创 实现领域驱动设计(DDD)系列详解:服务契约设计
在软件领域,使用最频繁的词语之一就是“服务”。有时候服务器异常关机或程序异常停止了,也会说服务挂了。领域驱动设计也有领域服务和应用服务之分,菱形对称架构则将开放主机服务分为远程服务和本地服务,其中本地服务即提出的应用服务。全局分析阶段输出的业务需求也被称为业务服务。业务服务满足了角色的服务请求,在解空间体现为服务与客户的协作关系,形成的协作接口可称为契约(contract)。
2024-09-08 23:18:40
1667
原创 ant-design-vue中实现a-tree树形控件父子关联选中过滤的算法
在使用ant-design-vue的框架时,a-tree是比较常用的组件,比较适合处理树形结构的数据。但是在与后台数据进行授权交互时,就不友好了。在原生官方文档的例子中,若子项被勾选,则父级节点会被关联勾选,但这勾选并不一定是选中的意思。有可能是半选中,通过方框样式选中,也就是说父级节点的值不会出现在`checkedKeys`的数组中。所以需要将服务传过来的数据`allCheckedKeys`处理,再还原成选中`checkedKeys`和半选中`halfCheckedKeys`的两部分。
2024-09-07 16:06:50
1344
原创 javascript中数组遍历的所有方法
作为后端程序员平常js用得少,但是数组遍历又是常用功能,遍历方法又有很多。在此记录一下,所有用得上的数组遍历方法。
2024-09-06 17:28:04
1061
原创 linux下oracle启动及关于pfile和spfile启动参数文件的配置
在现代企业环境中,Oracle数据库作为关键的业务支撑平台,承载着大量的数据处理和事务管理任务。无论是对于DBA(数据库管理员)还是开发人员来说,掌握Oracle数据库的基本操作和配置技巧都是至关重要的。本文提供了一份全面而实用的指南,涵盖Oracle数据库的启动、关闭以及如何配置PFILE(Parameter File)文件。
2024-09-03 12:14:50
2175
原创 CSS解析:盒模型
在网页上实现元素布局涉及很多技术。在复杂网站上,可能会用到浮动元素、绝对定位元素以及其他各种大小的元素,甚至也会使用较新的CSS特性,比如Flexbox或者网格布局。在此之前我们要打好基础,深刻理解浏览器是如何设置元素的大小和位置的。高级的布局话题基于文档流和盒模型等概念,这些是决定网页元素的大小和位置的基本规则。我们将构建一个两列布局的网页。你可能很熟悉这个布局,因为它是一个经典的CSS入门练习,但是在完成这种布局的过程中,有一些布局中经常被忽略的一些细节。
2024-09-01 21:38:19
1494
原创 CSS解析:定位和层叠上下文
许多开发人员对定位的理解很粗略,如果不完全了解定位,就很容易给自己挖坑。有时候可能会把错误的元素放在其他元素前面,要解决这个问题却没有那么简单。一般的布局方法是用各种操作来控制文档流的行为。定位则不同:它将元素彻底从文档流中移走。它允许你将元素放在屏幕的任意位置。还可以将一个元素放在另一个元素的前面或后面,彼此重叠。
2024-08-31 21:39:38
2281
原创 CSS解析:层叠、优先级和继承
CSS虽说不是编程语言,但是日常使用中经常有很多误解,发现样式不奏效的情况,所以需要加强下CSS基础。CSS本质上就是声明规则,即在各种条件下,我们希望产生特定的效果。如果某个元素有这个类,则应用这些样式。如果X元素是Y元素的子节点,则应用那些样式。浏览器会根据这些规则,判断每个规则应该用在哪里,并使用它们去渲染页面。
2024-08-31 09:02:59
1046
原创 系统架构设计师:信息系统概述及分类
DSS 是一个由语言系统、知识系统和问题处理系统3个互相关联的部分组成的,基于计算机的系统。DSS 应具有的特征是:(1)数据和模型是DSS 的主要资源。(2)DSS 用来支援用户作决策而不是代替用户作决策。(3)DSS主要用于解决半结构化及非结构化问题。(4)DSS 的作用在于提高决策的有效性而不是提高决策的效率。DSS应当是一个交互式的、灵活的、适应性强的基于计算机的信息系统,能够为解决非结构化管理问题提供支持,以改善决策的质量。
2024-08-21 21:56:25
2600
4
原创 实现领域驱动设计(DDD)系列详解:领域模型的持久化
领域驱动设计主要通过限界上下文应对复杂度,它是绑定业务架构、应用架构和数据架构的关键架构单元。设计由领域而非数据驱动,且为了保证定义了领域模型的应用架构和定义了数据模型的数据架构的变化方向相同,就应该在领域建模阶段率先定义领域模型,再根据领域模型定义数据模型。这就是领域驱动设计与数据驱动设计的根本区别。如果领域建模采用对象建模范式,存储数据则使用关系数据库,那么领域模型就是面向对象的,数据模型则是面向关系表的。
2024-07-25 22:33:10
1017
原创 基于RBAC的通用权限管理系统的详细分析与实现(理念篇——角色、角色分类、角色权限指派)
角色是一组权限的统称,在系统中体现为一些相关的职责以及数据权限的范围。用户通过扮演不同的角色来完成权限的控制。对用户比较多,管理上要求角色职责分明的公司可以通过以角色为中间环节,实现更快捷的批量授权功能。
2024-07-24 08:36:41
2312
原创 基于RBAC的通用权限管理系统的详细分析与实现(理念篇——用户、组织和用户组)
RBAC模型是将客体的存取访问的权限在可靠的控制下连带角色所需要的操作一起提供给那些角色所代表的用户,通过授权的管理机制,可以授予一个角色多个权限,而一个权限也可以赋予多个角色,同时一个用户可以扮演多个角色,一个角色又可以接纳多个用户。
2024-07-19 01:43:00
1608
原创 java对接海康摄像头
现在制造业很多都是用的海康的摄像头,作为程序员有时候需要对接海康摄像头,实现门禁访问控制,监控预览,录像文件下载等功能。本文根据官方SDK文档,解释如何通过java调试海康的摄像头。
2024-07-06 14:27:07
8519
14
原创 实现领域驱动设计(DDD)系列详解:异常处理
使用好异常的关键在于让它表达一定的领域含义,即细分模型不愿处理的条件,抛出有领域含义的异常,以便让合适的上级调用者找到合适的处理方式。显然,“购物车已满”的异常比“数组越界”的异常更容易让调用者知道如何处理。有些专家建议,当语言框架中已有相应异常时,不要自己创建异常,这适用于语言级别的异常。对于领域层来说,自定义异常是领域逻辑的一部分,它可以丰富通用语言。相比于错误代码,自定义异常能够很自然地被领域专家所理解。
2024-06-10 13:17:21
1324
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人