发布

shigen的学习笔记

专栏成员
119
文章
45237
阅读量
21
订阅数
使用springboot自带的请求、响应缓存实现请求响应打印
在日常的开发中,日志往往是我们用来排查问题的重要依据,请求和响应也是其中重要的组成部分。也看到了很多业务系统记录日志的方式:
shigen
2024-12-24
1781
Mac实况壁纸太难看?自己动手实现高清壁纸自由
Mac 系统虽然提供了很多的精美的壁纸,但是一次性只能设置一个实况,并且随机的时间有点长。虽然我也尝试了使用随机的实况,但是总感觉随机的有点问题,总是循环那几种实况,看久了还让我觉得厌倦了。于是自己探索了一下:实现自己爬取网络上的 4K 照片,然后写定时任务的脚本更新系统的壁纸。
shigen
2024-12-14
1100
后端服务、服务间接口限流实现
接口的限流相信大家并不陌生,如果服务不做好限流的话,极容易造成网络、内存、磁盘等等性能的波动,重则出现服务被流量打挂的场景,服务的限流更多的是主动的防御。那么服务调用三方的接口不限流的话,就容易造成三方服务的大面积报错。最近在阅读同事的代码时候,就遇到了这样的一个问题:在for循环中调用第三方接口:
shigen
2024-10-26
1630
python将照片集变成视频
一个安静的下午,看着电脑里乱七八糟的照片,有大有小,宽高不一,突然想找个方式把他们统一起来,然后做成视频更好(其实我在上高中的时候就喜欢把照片做成视频,觉得意义很大)。要满足批量、自动化,肯定得动用代码了。于是首先我列举了下我希望的功能:
shigen
2024-10-13
810
借助spring的IOC能力消除条件判断
在前边讲到了如何借助HashMap、枚举类、switch-case消除条件判断,这里讲到我们最常见的用spring的IOC能力来消除代码中的逻辑判断。其实大部分的设计模式用的方法也和接下来的这种类似。
shigen
2024-09-28
1270
巧用switch-case消除条件判断
现在分享最原始、也是最简单的switch-case判断,还是一样先上代码,你会觉得震惊不已:
shigen
2024-09-28
630
巧用枚举消除条件判断
在上一篇的文章结合HashMap与Java 8的Function和Optional消除ifelse判断中有讲到如何结合HashMap与Java 8的Function和Optional消除ifelse判断,相关的文章可以点击链接查看,这里做一些小小的改造,将不同的处理方式抽成一个方法,最终的代码是这样的:
shigen
2024-09-28
630
结合HashMap与Java 8的Function和Optional消除ifelse判断
也许稍微有点经验的同学会想到我用策略模式、工厂方法等等来优化一下这段代码。可以,至少会设计模式的基本使用了,但是对于这样同类型的问题,我们没有必要整的这么复杂。
shigen
2024-09-22
890
盘点java8 stream中隐藏的函数式接口
所谓的函数式接口指的是只定义一个抽象方法的接口。接口类常用这个注解@FunctionalInterface表明:
shigen
2024-09-01
1350
分享大厂对于缓存操作的封装
缓存大家再熟悉不过了,几乎是现在任何系统的标配,并引申出来很多的问题:缓存穿透、缓存击穿、缓存雪崩.......哎,作为天天敲业务代码的人,哪有时间天天考虑这么多的破事。直接封装一个东西,我们直接拿来就用岂不是美哉。看了项目组的代码,我也忍不住 diy 了,对于增删就算了,就是 get set 的 API 调用,修改?直接删了重新添加吧,哪有先查缓存再去修改保存的。难点就在于缓存的查询,要不缓存的穿透、击穿、雪崩会诞生对吧。
shigen
2024-07-07
1650
mybatis-plus配置拦截器实现完整sql打印
在使用mybatis-plus(mybatis)的时候,往往需要打印完整的sql语句,然而输出的日志不是很理想:
shigen
2024-06-16
4800
通过 Python+Nacos实现微服务,细解微服务架构
一直以来的想法比较多,然后就用Python编写各种代码脚本。很多的脚本都是通过Python的Flask框架实现,如[file-server],然后部署到云服务器。但是这样只提供一个端口就可以通过http访问,无异于在互联网上裸奔。而且这样的服务有很多个,一直在想如何实现一个统一认证然后就可以访问这么多的服务。在Java领域最常见的设计就是使用微服务架构,把每个服务拆分出来,然后通过网关统一拦截、验证、分发流量。蹭了一张架构图(发现飞书的模板已经很好了):
shigen
2024-06-10
8000
vscode打造舒适的python开发环境
突然想写一些python小脚本,提升我的mac使用体验和日常效率提升的小工具。但是资料的查找+环境的部分配置太麻烦了,而且GPT不是很懂我,所以我把所有的过程总结了一下,减少后期不必要的时间开销。
shigen
2024-05-16
1350
springboot实现文件防盗链设计
👋👋👋hello,伙伴们好久不见,最近shigen遇到了很多的事情,现在算是安顿好了,也可以开始技术分享了。但是分享的频率的话,肯定会比之前低的很多,因为我也要正式的学习新的技术了。
shigen
2024-05-12
1790
修改docker镜像版本,容器大小缩小10%!
是的,你看的没错:修改docker镜像的版本,我的容器大小缩小到了10%。效果如下:
shigen
2024-04-24
1920
闲不住,手写了数据库文档生成工具
逛博客的时候,发现了一个很有意思的文章:数据库表结构导出工具。带着好奇,我也去DIY了一个,先看看效果:
shigen
2024-04-16
1770
分享Fork/Join经典案例
在上一篇的文章java 多线程+分治求和,太牛了的文章中,提到了forkjoin,在一番了解之后,发现这个forkjoin基本上和线程池差不多
shigen
2024-04-09
1900
Java多线程+分治求和,太牛了
最近的一个面试,shigen简直被吊打,简历上写了熟悉高并发。完了面试官不按照套路出牌,我说了我用了countdownLanch,他问forkjoin了解吗?LRU怎么设计……一脸懵,尴尬的直接抠脚。
shigen
2024-04-08
2870
看不惯各种信息收集表,我手写了一个身份证号输入组件
shigen最近的需要填写各种报名表的场景有点多,很多场景都要输入身份证号。对于这些信息,我特别的敏感,所以,我想着能糊弄过去就糊弄过去。之前也确实有乱填,只要凑够了18位,或者我随意改动身份证上的某一位数字就行了。但是,直到我遇到了一种表单:我改一个数字,它发现了,不让我提交!我气急败坏,我要研究一下这玩意怎么实现的。总不至于调用了某云的身份证地址库吧。
shigen
2024-04-07
1530
通过学习mayfly,我学会了前端如何优雅的设计字典值
shigen在假期的最后一天早晨起来,翻看了一下博客,一个mayfly-go的开源项目吸引了我的注意力,其实很久之前准备去啃它的,后来看到了代码就放弃了。现在正好有这个决心,打开了mayfly-go官网准备学习一番。发现官方给的更多的是展示的效果,没有详细的设计文档和技术文档,直到我我找到了mayfly-go的语雀文档,认真的研读了一番,最后在枚举值统一管理维护这一块看得我豁然开朗。因为在shigen之前的文章后段数据字典的优雅设计的文墨就提到了我的困惑,也接触了很多稀烂的项目,所以困惑更深,设篇文章的设计正好为我提供了一个巧妙的解决方案。于是,我花了一下午的时间来研究者问题,并写了如下的代码验证。
shigen
2024-04-06
1850
点击加载更多
社区活动
Python精品学习库
代码在线跑,知识轻松学
博客搬家 | 分享价值百万资源包
自行/邀约他人一键搬运博客,速成社区影响力并领取好礼
技术创作特训营·精选知识专栏
往期视频·干货材料·成员作品 最新动态
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档