我个人不喜欢MyBatis-Plus。 我觉得里面的很多设计都不好。挑2个典型的来说 1.代码生成器 程序是用来解决重复的,不是用来制造重复的。 你
当列表内容很多的时候,分批加载是不得不考虑的设计。 在PC端上,往往会采用分页的设计。但在移动端,有时也会考虑下拉滚动时加载更多。 在程序开发上
2023年了,大多数程序员对数据库、对索引的认识都越来越深了。 不像以前,性能慢二话不说上来就是一个索引。 若一个表里如状态字段只有几种状态时,
前几天在禅道上看到个bug。一个4级的级联下拉带了个搜索框,但是后端接口并未提供搜索实现。 当时我看到后,就找产品商量,直接删掉这个搜索框。级
行政区划是一套典型的树状结构数据。大多数系统对这种树状菜单都会设计成 id --> parent_id 等来实现上下级关联。 例如 id parent_id name 层级hierarchy 1 中国 11 1 广东
公司采购了一套流程引擎K2,据说嫌贵,采购的是阉割版。 由于公司内部多半只是简单的审批流,加上内部的一些KPI导向,又再次封装(阉割)了一般,
方式一姑且叫它原生枚举。 public enum Gender { MALE,FEMALE,OTHER } 方式二因被广大程序员普遍使用,暂且叫它通用枚举(mybatis-plus也这样叫)。 public enum Gender { MALE(1, "Male"), FEMALE(2, "Female"), OTHER(3, "Other");
令牌桶和漏桶是常用的流量整形算法,具体来说,它们可以限制数据传输的速率,避免网络拥塞和资源浪费。 两者的使用场景和实现机制有所不同。 令牌桶 令牌
概述 第二章主要讨论了领域的限界上下文(Bounded Context)和上下文映射(Context Mapping)。具体内容包括: 限界上下文的
概述 第一章主要介绍了什么是领域驱动设计(Domain-Driven Design,DDD)以及为什么需要使用DDD。 作者提出了传统开发模式在大
背景 代码规范一直是个让人头疼的问题。尽管市面上已经存在了一些代码规范检查工具,如pmd和checkstyle,通用的规则已经涵盖了许多常见问
近两年经济形势不好,公司内也比较动荡。 躺平、摸鱼、摆烂,是平时比较常见的词语了。 前两天脑子突然莫名涌起一些想法,稍加整理记录下来。 何为摸鱼 我
故事 代码评审的时候,是不是还会看到有小伙伴写下null == a这样的代码。 有时心血来潮,我会问一句,为什么这样写? 如果他回答里有防止空指针的话,
故事 文件上传(如图片)等几乎是每个项目的标配了。 不管用不用第三方存储,相信不少团队都会针对文件上传、下载单独封装一个服务。 这里面的细节设计就
背景 在做web开发的时候,我们往往不会直接去处理http请求,而是使用各种各样的web框架。 如Java的SpringMVC、NodeJS的e
我实在搞不懂,在已经有了BaseMapper后,为什么还要再整出一个 IService ? 它的出现,令很多人本就困惑的 Service 和 Dao/Mapper 的模糊的边界,更加混乱。
在十几年前我还在上大学学编程的时候,就已经诞生了各种各样的代码生成器。 现在2023年了,各种代码生成器依然大行其道。 读取数据库表结构并生成相
背景 当和第三方通讯的时候,对接口进行鉴证是很有必要的事。 在原有参数的基础上,额外增加appid、timestamp、nonce、sign是一
背景 做Web开发写CRUD的Java程序员,Controller、Service、Dao是耳熟能详,天天写代码也是写这些东西。 但是代码分层到
背景 看到公司一个项目里,网关层把controller抛出的异常消息都吃了,统一只给客户端返回 { code: "E001", msg: "系统异常" } 我非常纳闷
故事 在一个项目里看到一个奇怪的“规范”。 如果需要用到缓存,必须将这个Service再包一层CacheService。 举一个不符合该“规范”的
故事 在JavaWeb开发里,Controller、Service、Dao(Mapper)的分层大家都耳熟能详了。 尽管实际代码里划分得也是一言
昨晚在知乎偶然刷到个月经贴(月月有人问,年年有人愁) 为什么那么多公司做前后端分离项目后端响应的 HTTP 状态一律 200? 赞同一律200的一些观点虽然
背景 做一个业主报修的项目,系统内建了一堆标准问题,业主报修的时候要先选一个问题分类。 因为涉及到质保期,举例窗户保修1年,如果过了1年就得付费
背景 公司某会议室里放了小米电视用于投屏。 默认情况下,电脑插入hdmi后电视会提示信号源已接入,需要用遥控器按一下确定,电视才会显示电脑的屏幕
事实上,我个人是不喜欢逻辑删除的。 写了另外一篇文章逻辑删除是我们唯一的选择吗? 但本文不讨论了,假定项目里就是采用了逻辑删除的方案。 场景 很多人
目前一提到逻辑删除,就是在表内增加一个字段,比如deleted,=1时表示已删除,=0时表示未删除。 但它也会带来一些问题,其中对我们日常开发
系统里有个Excel报表导出,以前是导出xls格式,没问题。后来改成xlsx后,打开就报错了。 一开始同事还以为是用的Excel工具库不支持x
场景 相信大家工作中应该都有遇到过表单内包含列表数据的情况。如下图,一个出差申请单里同行人员是可以填写多行的。 首次保存是新增场景,直接inse
背景 前两天在做需求评审的时候,其中有个需求是这样的, 其中abcdefg是从标准库里选取出来的明细项,修改项就只有保修期。 一开始从标准模板库里
背景 前两天团队内在做数据库设计评审,其中有个数据库表对应的UI类似下面: 分区 A B C 客厅 √ √ √ 厨房 √ √ 餐厅 √ √ 次卧 √ 天台 √ √ 其中 ABC是同一个
案例 某项目采用微服务架构,将系统切分成大量微服务,服务间通过feign调用。 为了方便调用方,无需多个调用方各自去生成客户端代码,API提供方