摘要: ## 背景 在开发过程中我们更多的是使用Spring的声明式事务,也就是使用`@Transactional`注解。 需要注意的是`@Transactional`在很多种情况下失效,总结起来大概两种场景,第一没有经过Spring Bean的AOP代理,比如同一个bean中,一个方法调用另一个方法,如果 阅读全文
posted @ 2023-08-21 10:48 暮色之狐 阅读(119) 评论(0) 推荐(0)
摘要: ## 镜像下载 华为云镜像下载CentOS镜像,镜像使用 CentOS-7-x86_64-Minimal-2207-02.iso [repo.huaweicloud.com/centos/7/isos/x86_64/](https://repo.huaweicloud.com/centos/7/is 阅读全文
posted @ 2023-07-23 21:52 暮色之狐 阅读(219) 评论(0) 推荐(0)
摘要: > 单元测试作为软件质量的重要一环,往往在整个开发流程中被大多数开发人员所忽略,本文旨在分析如何写好单元测试并探索一些测试驱动开发的应用。 ## 单元测试原则 在写单元测试前,先要明确什么是单元测试,单元测试的原则是什么?明确这些问题前不妨先参考一下前人总结的单元测试First原则。 在工作过程中经 阅读全文
posted @ 2023-07-14 18:13 暮色之狐 阅读(176) 评论(0) 推荐(0)
摘要: ## JUnit 4 以下是JUnit 4中一些常用的类和注解的相关API: 1. **注解:** - `@Test`:标记测试方法。 - `@Before`:在每个测试方法之前执行的方法。 - `@After`:在每个测试方法之后执行的方法。 - `@BeforeClass`:在整个测试类之前执行 阅读全文
posted @ 2023-07-14 17:38 暮色之狐 阅读(617) 评论(0) 推荐(0)
摘要: > 在线上商城的一次功能迭代中,我们遇到了一个线上问题。虽然很快解决,但是觉得这个问题在软件设计开发中非常典型,对问题产生的原因以及如何避免类似问题的产生做一次复盘分析 ## 背景 商城的用户具有不同的会员等级,包括黄金会员、白银会员和普通会员。根据会员等级的不同,商品的价格策略也不同。具体来说,黄 阅读全文
posted @ 2023-07-08 21:17 暮色之狐 阅读(84) 评论(0) 推荐(0)
摘要: > 事件驱动的开发方式在业务系统开发中扮演着关键角色,若能妥善运用,将对系统的拓展性产生至关重要的影响。Spring框架对事件驱动进行了出色的封装,然而在实际业务应用中,我们发现了一些可优化的领域,因此针对这些问题进行了封装和优化工作。 ## Spring事件驱动的使用 在电商订单创建的场景中,一旦 阅读全文
posted @ 2023-06-30 10:30 暮色之狐 阅读(368) 评论(0) 推荐(0)
摘要: > 复杂业务系统经过长期迭代,难免逐渐腐化,如何治理腐化,并设计出能够延缓腐化,保持长期搞笑的方案是开发人员难免要遇到的问题,本文旨在分析系统腐化的原因以及DDD的一些落地实践 ## 概述 系统经过长时间的迭代,人员的更替,如果没有能够长期维持的规范以及行之有效的架构设计,业务逻辑的演进会愈加复杂, 阅读全文
posted @ 2023-06-13 17:38 暮色之狐 阅读(291) 评论(0) 推荐(0)
摘要: ## 现状 1、产品提需求,讨论开发,熟悉数据库,增删改查,加班,恶性循环 2、有些人比较爱学习,刷视频。视频讲的都挺好,源码课看了,喜欢看,但是越看越累,看完也不知道这东西怎么用,在公司就负责某个模块,天天围绕着几张表,处理不完的杂事 3、面试突击背题,背完就忘 4、不知道最精通的技术是什么,每天 阅读全文
posted @ 2023-06-11 22:30 暮色之狐 阅读(56) 评论(0) 推荐(0)
摘要: 什么样的代码可以称之为好代码?又如何评价代码比较差?每个人也许都有自己的标准,但是在软件设计领域中,有一套通过经验总结出来的,可以有效解决问题的指导思想和方法论,遵从这些原则,可以事半功倍,反之则有可能带来一些麻烦。 ## SOLID `SOLID`是五种设计原则首字母的缩写,有趣的是这个单词本身就 阅读全文
posted @ 2023-06-11 16:16 暮色之狐 阅读(123) 评论(0) 推荐(1)
摘要: ## 起因 在版本迭代的过程中发现,订单计算的方法过于复杂,在新增或者修改功能时往往需要通篇将方法通读一遍甚至多遍,不能迅速找到应该修改的地方进行功能的改造,通过分析发现存在以下的缺陷(姑且称之为缺陷) 1. 没有进行逻辑划分,代码行数太长 2. 没有进行有效的封装抽象,虽然将部分代码封装成函数,但 阅读全文
posted @ 2023-05-29 18:56 暮色之狐 阅读(105) 评论(0) 推荐(0)
摘要: Typora安装注册 先安装 typora-setup-x64-1.2.4.exe,并记录安装路径,下载地址 将 app.asar 替换到安装路径下的resources文件夹,替换掉app.asar文件 重启typora!!!!!! 输入邮箱、注册码,邮箱随便输入,注册码:E8Q9Y5-KXMTL5 阅读全文
posted @ 2023-05-02 17:53 暮色之狐 阅读(678) 评论(0) 推荐(0)
摘要: 下载工具包 工具包下载地址 重要说明: 1、工具包下载后,放到本地合适的位置,存放路径不要有汉字和空格,否则可能会导致激活失败 2、工具下载后是zip格式,需要解压,然后按照下面步骤进行 3、工具安装后,不要移动或者删除工具包,否则后续IDEA打开会出现闪退,或提示找不到Jar文件 激活工具包解压后 阅读全文
posted @ 2023-05-02 17:53 暮色之狐 阅读(25383) 评论(10) 推荐(7)
摘要: 为了方便博客管理,我是将博客源码放在resource分支,最终生成部署的页面文件放在master分支,每次更新博客都需要先提交博客文件,然后手动部署到GiHub Pages,次数一多就显得麻烦,而且还容易出错。那么有没有一种方法让这个过程自动化,在提交完博客文件后自动帮我们编译部署文件到GitHub 阅读全文
posted @ 2021-10-07 17:53 暮色之狐 阅读(159) 评论(0) 推荐(0)
摘要: 背景 在项目实施的过程中,经常需要调用一些本地程序(DLL,EXE或OCX),常用的方法就是将本地程序封装成OCX插件,在本地电脑安装注册,然后使用JavaScript进行调用,然而这种方案主要存在几个问题: 本地程序质量参差不齐,频繁的无响应或者崩溃导致浏览器卡死或崩溃,极大的降低了用户的体验 高 阅读全文
posted @ 2021-08-17 12:26 暮色之狐 阅读(1258) 评论(0) 推荐(0)
摘要: PowerDesigner:16.5.0.3982 数据库:Oracle 11g PowerDesigner使用反向工程功能连接Oracle数据库自动生成模型以及过程中出现的问题 连接数据库 首先打开PowerDesigner,依次点击 文件 --> 反向工程 --> Database... ,如下 阅读全文
posted @ 2021-08-15 23:01 暮色之狐 阅读(1115) 评论(0) 推荐(0)
摘要: tomcat作为开发中常用的web应用服务器,给开发和测试带来了很大的方便,tomcat运行依赖JDK的支持,在安装JDK时,经常会配置环境变量JAVA_HOME,用以指定所使用的JDK。然而有时候运行tomcat时需要依赖指定版本的JDK,我们又不能更改JAVA_HOME以免影响其他项目,下面将说 阅读全文
posted @ 2021-08-15 22:58 暮色之狐 阅读(1199) 评论(0) 推荐(0)
摘要: 应用部署是工程人员(包括开发、测试和运维),每天需要面对的重要工作之一,尤其是交付比较频繁的项目,工程人员需要花费很多的时间和精力去完成越来越频繁的部署工作,那么部署的方式是选择增量部署还是全量部署呢? 增量部署 增量部署一般是指在部署的过程中提取提取当前版本和部署版本之间的增量文件,并且在部署的过 阅读全文
posted @ 2021-08-15 22:55 暮色之狐 阅读(1845) 评论(0) 推荐(0)
摘要: 最近开始负责公司项目工程的打包发布,之前都是在IDE中手动打包,需要发布版本包时费时费力,而且很容易出错,为了提高工作效率(主要是因为懒),开始接触学习自动化部署,一番折腾下来,总结了自动化部署的几个前提。 版本管理 在大多数的公司或者项目中,虽然都使用了SVN/Git进行代码版本管理,但是在实际应 阅读全文
posted @ 2021-08-15 22:54 暮色之狐 阅读(120) 评论(0) 推荐(0)
摘要: 应用场景 项目上做运维时,经常不知道客户数据库服务器远程访问的用户名和密码,只知道Oracle数据库的链接信息。Oracle11g以后数据库备份如果使用exp命令进行,经常有些表导出不成功或者出错,用expdp命令导出的话,备份文件又在服务器上,取不出来。这种情况下如果使用expdp命令导出,又想要 阅读全文
posted @ 2021-08-15 22:46 暮色之狐 阅读(529) 评论(0) 推荐(0)
摘要: 为什么需要统一配置? 我们在开发系统时,一般会将一些信息添加到配置文件中,比如数据库信息、日志等,如果需要更改也是修改配置文件然后再发布到生产中,这种方式在集群的环境下就会显得很麻烦。那么有什么解决方法呢? 将公共配置抽取出来 提供统一的配置入口对公共配置进行修改 修改后的内容能够同步到各集群系统中 阅读全文
posted @ 2021-08-15 22:32 暮色之狐 阅读(919) 评论(0) 推荐(0)