buguge - Keep it simple,stupid

知识就是力量,但更重要的,是运用知识的能力why buguge?

导航

上一页 1 2 3 4 5 6 7 ··· 22 下一页

2025年1月16日 #

状态机幂等

摘要: 与版本号乐观锁相比,有所不同的是,使用状态机幂等,可以不用事先查询数据。 阅读全文

posted @ 2025-01-16 21:37 buguge 阅读(127) 评论(0) 推荐(0)

2025年1月14日 #

【研发笔记20251114】技术自信 & 不因纠结于细节而放弃本该做的事情

摘要: 技术自信 我们要拥有技术自信! 我们许多同学,是缺乏技术自信的。 我们习惯了代码有改动,就提测给测试团队来进行测试验证。 虽说有测试团队,但有些开发改动,我们开发者,凭借我们的专业能力(技术能力),可以自己确信没有问题,可以不用一律提测。 例如:重命名一个底层工具类的public static方法, 阅读全文

posted @ 2025-01-14 22:44 buguge 阅读(87) 评论(0) 推荐(0)

2025年1月13日 #

【研发笔记250113】功利性人际边界

摘要: 功利性人际边界 蛇年将至,岁末之际,开发组计划组织聚餐。上周一,我的搭档ligan同学拉了一个聚餐的临时微信群,周知大家,将在1月13日晚去单位附近的八斗鸡欢聚一堂。从上周五我就想到,要通过微信单独通知一个同学————一个即将离职的同学,他叫yaoxchao。yaoxchao同学因为工作考核未过关, 阅读全文

posted @ 2025-01-13 14:49 buguge 阅读(156) 评论(1) 推荐(0)

2025年1月7日 #

来了,资金类交易业务(如电商交易、支付结算)中,经常提到的Money类!

摘要: 资金类交易业务中 经常提到的Money类,大家了解一下。 了解了Money类,就会对资金类业务如电商交易、支付更了解。 阅读全文

posted @ 2025-01-07 15:24 buguge 阅读(376) 评论(4) 推荐(0)

2024年12月27日 #

浅谈分布式锁的常用实现

摘要: 序言 在单机系统里,如果有多个线程要同时访问某个共享资源的时候,我们可以采用线程间加锁的机制,即基于 mutex(互斥锁),当某个线程获取到这个资源后,就需要对这个资源进行加锁,当使用完资源之后,再解锁,其它线程就可以接着使用了。例如,在 Java 中 synchronized/Lock 等。 如今 阅读全文

posted @ 2024-12-27 18:09 buguge 阅读(118) 评论(0) 推荐(0)

2024年12月18日 #

【开发笔记241211】论“俯瞰”的重要性

摘要: 2024.12初 我司零工平台,为合作企业客户提供向税地服务商充值的功能,我们内部叫在线分账。我们的在线分账功能,包括充值、分账、提现、通知上账这几个步骤。具体来讲, ①充值:充值指的是客户将资金转入到我们为客户开通的银行虚户里。一般有两种途径,一种是客户线下自行转入,一种是通过我司平台提供的B2B 阅读全文

posted @ 2024-12-18 10:58 buguge 阅读(51) 评论(0) 推荐(0)

2024年12月17日 #

系统网站登录,如何合规传输用户登录密码?

摘要: 这里要说的是,用户登录密码属于用户隐私数据。首先,隐私数据属于敏感数据,不能明文传输;其次,系统server端不能直接触碰用户密码。 阅读全文

posted @ 2024-12-17 21:42 buguge 阅读(607) 评论(3) 推荐(0)

2024年12月9日 #

API设计之道:从商户ID参数设计 看 对外商户API与内部中台服务 的参数设计理念的差异

摘要: 有思想、知章法,才能做出更好的系统!正如本案例,如果不假思索地在zhongtai-trans的付款查询接口上加上商户id,就有些唐突了。 阅读全文

posted @ 2024-12-09 21:39 buguge 阅读(69) 评论(0) 推荐(0)

2024年11月20日 #

开发一份API接口,需要注意这些,看你做到了几项

摘要: 本文介绍了设计API接口时需注意的关键点,包括数字签名、敏感数据加密与脱敏、限流、参数校验、统一返回与异常处理、请求日志记录、幂等设计、数据量限制、异步处理、参数定义、完整文档及开发者对接SDK等内容,旨在帮助开发者设计出安全、稳定、易维护的API接口。 阅读全文

posted @ 2024-11-20 10:16 buguge 阅读(556) 评论(0) 推荐(1)

2024年11月18日 #

API接口的请求参数要更名,如何保持代码可读性?

摘要: API接口的请求参数要更名,如何保持代码可读性? 接口参数名与程序里定义的model属性名,是完全一致的吗?本文通过案例,来讲述他们之间的联系与区别。 阅读全文

posted @ 2024-11-18 21:26 buguge 阅读(156) 评论(1) 推荐(0)

2024年11月11日 #

发现一肉鸡接口,快来围攻啦~

摘要: 本文开篇以系统登录页面的安全加固实践说起,详细分析了服务端提供的`loginEncryptKey` API 代码存在的问题,如接口对任意用户名返回密钥导致的安全风险,以及在高并发场景下可能引起的Redis缓存穿透问题。针对这些问题,提出了改进措施:首先对接口请求参数进行严格校验,确保用户名合法且存在于系统中;其次,优化加密密钥的生成与获取逻辑,采用预生成密钥池结合自定义哈希算法的方式,减少重复生成密钥的资源消耗。此外,为了适应集群环境,提出了利用Redis哈希表存储密钥和结合本地缓存的解决方案。最后,文章建议将密钥预置于应用配置文件中,简化了集群环境下的数据同步需求。 阅读全文

posted @ 2024-11-11 12:46 buguge 阅读(100) 评论(0) 推荐(1)

2024年11月4日 #

【聚合系统开发专栏】支付请求发起后,回调通知先于同步响应,怎么办?

摘要: 以此类推,有同学可能想到mq,并称使用mq能规避”服务故障“、”服务重启“等某些不稳定因素。 还有同学可能想到分布式锁,在付款请求时加锁,在处理回调时判断锁,使用同步锁机制实现串行处理。 我认为没什么必要,有些小题大做,越简单越好。毕竟,付款终态的变更,不是只靠这次的回调。 看似简单的问题,考验的是综合能力。 阅读全文

posted @ 2024-11-04 20:29 buguge 阅读(242) 评论(4) 推荐(0)

2024年10月31日 #

【开发笔记241025】她趣介意时效超5分钟的付款交易。简单一招,应对!

摘要: 她趣介意时效超5分钟的付款交易。简单一招,应对! 我们平台近期入网一个新客户是她趣。她趣这个企业比较关注下发时效,他们那边系统做了告警,当存在超5分钟时效的交易,就会发告警。然后,那边的人就来质问。并声称,现在只是放了3%的量,就总出现下发慢的交易,如果10月份剩下的这5天里依然存在,就不打算用我们 阅读全文

posted @ 2024-10-31 20:56 buguge 阅读(136) 评论(0) 推荐(0)

2024年10月23日 #

Mybatisplus TableInfoHelper:获取entity对应的数据表字段列表

摘要: 如题,调用 TableInfoHelper#getTableInfo(clazz) 这个工具方法可以得到entity类所对应的数据表的字段列表。 import com.baomidou.mybatisplus.core.metadata.TableInfoHelper; import com.bao 阅读全文

posted @ 2024-10-23 19:45 buguge 阅读(609) 评论(0) 推荐(0)

2024年10月22日 #

发现问题就解决,往往是低效的方式。关于对象参数的赋值取值问题

摘要: 走查我们zhongtai-task(中台的task服务,注意,这个task不是Spring/Java里的task,而是我司业务中的企业用工任务)代码时发现一个问题。 先看下面的方法调用关系 ① TaskJobProxy#updateTaskStatus ② TaskLevyReviewService 阅读全文

posted @ 2024-10-22 09:28 buguge 阅读(26) 评论(0) 推荐(0)

定义明确的参数名/变量名--许多时候,授人以渔还真不如直接授人以鱼

摘要: 定义明确的参数名/变量名,是软件开发中的一个重要准则。但是,总这么强调,起的作用似乎并不大。许多时候,授人以渔还真不如直接授人以鱼。 阅读全文

posted @ 2024-10-22 09:27 buguge 阅读(51) 评论(0) 推荐(0)

spring mybatis upgrade to mybatisplus 实战小记

摘要: spring-mybatis项目集成Mybatisplus实战小记 阅读全文

posted @ 2024-10-22 09:27 buguge 阅读(921) 评论(1) 推荐(0)

2024年9月27日 #

程序埋点(Event Tracking)

摘要: 程序埋点(Event Tracking)是指在软件程序中嵌入记录用户行为或系统运行状态的代码,以便收集数据用于分析和监控。程序埋点通常用于分析用户行为、性能监控、问题排查、产品优化等目的。 何时使用程序埋点: 用户行为分析:了解用户在应用中的行为,例如点击量、页面访问次数等。 性能监控:监控应用性能 阅读全文

posted @ 2024-09-27 09:00 buguge 阅读(176) 评论(0) 推荐(0)

2024年9月26日 #

系统里这个同时查冷热表的sql,动动手指,从12s降到3s

摘要: 系统将交易数据按交易时间分为热表(最近3个月)和冷表(3个月前)。为保证用户体验,当企业门户端查询跨越冷热表时,尤其针对大客户,查询性能优化至关重要。以下是程序的SQL查询语句及其优化版本。 阅读全文

posted @ 2024-09-26 21:18 buguge 阅读(86) 评论(0) 推荐(0)

2024年9月24日 #

redis序列化数据时,如何包含clsss类型信息?

摘要: 通过配置 `com.fasterxml.jackson.databind.ObjectMapper` 的 `enableDefaultTyping` 方法,可以使序列化后的 JSON 包含类信息。 阅读全文

posted @ 2024-09-24 20:11 buguge 阅读(293) 评论(0) 推荐(0)

2024年9月23日 #

编程的本质:LCD-逻辑、控制与数据的解耦艺术

摘要: 我们所使用的各种编程范式和设计方法,本质上都是围绕这三个方面展开工作。 阅读全文

posted @ 2024-09-23 20:19 buguge 阅读(237) 评论(0) 推荐(1)

2024年9月21日 #

niubility!即使JavaBean没有默认无参构造器,Fastjson也可以反序列化。- - - - 阿里Fastjson反序列化源码分析

摘要: 本文详细分析了 Fastjson 反序列化对象的源码(版本 fastjson-1.2.60),揭示了即使 JavaBean 沲有默认无参构造器,Fastjson 仍能正常反序列化的技术内幕。文章通过案例展示了 Fastjson 在不同构造器情况下的行为,并深入探讨了 `ParserConfig#getDeserializer` 方法的核心逻辑。此外,还介绍了 ASM 字节码技术的应用及其在反序列化过程中的角色。 阅读全文

posted @ 2024-09-21 11:33 buguge 阅读(392) 评论(0) 推荐(1)

2024年9月7日 #

【聚合系统开发专栏】【优秀程序设计/good-practice】聚合系统如何实现通道侧回调的业务结果通知?

摘要: 本文介绍了公司短信平台聚合系统中,短信通道回调的业务处理方法。文章详细描述了如何通过统一回调接口与合理分层设计优化代码结构,避免烟囱式代码堆砌,提高扩展性和维护性。 阅读全文

posted @ 2024-09-07 23:26 buguge 阅读(129) 评论(0) 推荐(0)

2024年8月29日 #

java中的enum-java中特殊的class;通过字节码来分析enum构成

摘要: §1 先思考一个问题 先思考一个问题:我们在enum类里,可以直接使用 values() 或 valueOf(String name) 方法,我们也没有在enum类里定义这两个方法,怎么就能直接使用呢? 这里先按下不表。 下面是正文。 §2 enum类及其编译后的字节码 在java编程中,我们经常会 阅读全文

posted @ 2024-08-29 20:32 buguge 阅读(232) 评论(0) 推荐(0)

2024年7月31日 #

解决非Spring Bean访问Spring Bean的问题:实用指南

摘要: 在非SpringBean类中直接获取SpringBean可能会引发问题,例如上面案例里提到的空指针和自动装配失败。为避免这些问题,建议将需要访问Spring Bean的类也注册为Spring Bean,以确保依赖关系得到正确管理。 阅读全文

posted @ 2024-07-31 09:31 buguge 阅读(393) 评论(0) 推荐(0)

上一页 1 2 3 4 5 6 7 ··· 22 下一页