buguge - Keep it simple,stupid

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

导航

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

2024年11月20日 #

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

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

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

2024年11月18日 #

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

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

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

2024年11月11日 #

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

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

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

2024年11月4日 #

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

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

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

2024年10月31日 #

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

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

posted @ 2024-10-31 20:56 buguge 阅读(128) 评论(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 阅读(560) 评论(0) 推荐(0)

2024年10月22日 #

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

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

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

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

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

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

spring mybatis upgrade to mybatisplus 实战小记

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

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

2024年9月27日 #

程序埋点(Event Tracking)

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

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

2024年9月26日 #

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

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

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

2024年9月24日 #

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

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

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

2024年9月23日 #

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

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

posted @ 2024-09-23 20:19 buguge 阅读(214) 评论(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 阅读(350) 评论(0) 推荐(1)

2024年9月7日 #

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

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

posted @ 2024-09-07 23:26 buguge 阅读(110) 评论(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 阅读(212) 评论(0) 推荐(0)

2024年7月31日 #

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

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

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

2024年7月30日 #

局部变量,在需要时再定义

摘要: 关于局部变量,适时定义可以提高代码可读性并规避不必要的bug。示例代码中,为了避免误解`checkTaskApplyDTO`仅设置了`userId`,在`existAppliedTask`方法内部,可以通过将`checkTaskApplyDTO`的定义与设置属性的操作靠近,以明确其所有属性值的来源。另外,本文还展示了一个因提前定义变量`ret`而导致的bug实例。如果将此变量的定义延迟至其实际使用前,则可以避免此类问题。适时定义变量有助于减少混淆,提高代码质量。 阅读全文

posted @ 2024-07-30 09:00 buguge 阅读(54) 评论(0) 推荐(0)

2024年7月23日 #

jackson序列化(jackson codec)

摘要: Spring MVC 默认使用 Jackson 库进行 JSON 的序列化和反序列化,无需额外的配置 阅读全文

posted @ 2024-07-23 21:39 buguge 阅读(471) 评论(0) 推荐(1)

2024年7月19日 #

系统运营支持-如何快速协助处理excel里的数据?来吧,教你一招

摘要: 我的方法,是基于excel强大的公式和mysql强大的sql来搞。 阅读全文

posted @ 2024-07-19 09:00 buguge 阅读(164) 评论(0) 推荐(1)

2024年7月12日 #

通过一个简单的案例,来谈谈代码的重构

摘要: 本案是一个非常简单的程序重构案例。实际企业应用开发过程中,我们遇到的场景远比这个要复杂。以此为例,希望大家加强对代码重构的理解 阅读全文

posted @ 2024-07-12 11:23 buguge 阅读(151) 评论(0) 推荐(1)

2024年7月3日 #

MySQL 中 SQL 查询语句的执行顺序

摘要: 在 MySQL 中,SQL 查询的执行顺序通常按照以下顺序进行: FROM:从指定的表中选择数据。 WHERE:对数据进行筛选,只选择满足条件的行。 GROUP BY:按照指定的列对数据进行分组。 SELECT:选择要返回的列或表达式。 HAVING:对分组后的数据进行筛选,只选择满足条件的分组。 阅读全文

posted @ 2024-07-03 16:05 buguge 阅读(173) 评论(0) 推荐(0)

2024年6月21日 #

乌龙!Hystrix命令执行超时!

摘要: 我在使用hystrix编写一个模拟命令执行超时的demo。 1 import com.netflix.hystrix.*; 2 import lombok.extern.slf4j.Slf4j; 3 4 @Slf4j 5 public class HystrixTimeoutDemo { 6 7 s 阅读全文

posted @ 2024-06-21 20:29 buguge 阅读(64) 评论(0) 推荐(0)

2024年6月18日 #

【程序设计】做一个发送系统邮件的功能,如何设计数据表?

摘要: 统一系统的邮件发送功能。有两个核心数据表:`mail` 表用于存储邮件基本信息,`mail_receiver` 表记录邮件接收者信息。为了优化查询性能,建议创建`Email_Content`表,将大字段分离,以减少主表大小,并可通过定期的数据结转策略,确保热表只存储最近的数据。 阅读全文

posted @ 2024-06-18 20:35 buguge 阅读(437) 评论(0) 推荐(0)

2024年5月28日 #

网站登录,如何避免明文传输用户登录密码?

摘要: 该文讨论了登录页面中密码安全传输的问题。当使用HTTP时,密码以明文形式传输,存在风险。在示例中,前端使用JavaScript的CryptoJS库和当前时间戳作为动态加密key对密码进行DES加密。后端接收到密文后,利用相同的时间戳解密。为了增强安全性,文章还建议使用RSA等非对称加密算法。 阅读全文

posted @ 2024-05-28 14:03 buguge 阅读(4389) 评论(0) 推荐(0)

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