avatar
文章
30
标签
27
分类
8
首页
归档
标签
分类
关于
pyf的日记
首页
归档
标签
分类
关于

pyf的日记

特殊格式JSON自定义解析装配
发表于2024-04-22|敲代码后端
问题描述 业务需要调用一个第三方图像识别的API,然后将识别出来的结果区分出不同类型,并分别装配到对应的Java实体类里 听起来是一个很正常的需求,现在JSON解析的工具有很多,而且都很成熟,但奈何识别出的JSON结果嵌套了很多复杂的结构,找不到现成的工具方法解决这个问题,JSON格式如下所示: 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192{ "words_result": [ { "result": { "AmountInWords": [ { ...
记录一次MySQL中varchar主键踩坑
发表于2023-09-12|敲代码后端MySQL
问题描述 软件版本: MySQL: 8.0.24 SpringBoot:2.6.5 Mybatis-plus:3.5.0 在一个项目的新建账号业务中用户反馈出现了bug,该业务是给一个课程中添加学生,输入学号姓名添加,如果系统中存在以该学生学号为主键的账号,那么就使用该账号记录,若没有则在账号表中新建账号 bug最终定位到是一张存储用户账号信息的表出现了重复的脏数据,如下图所示(图中学号为测试数据,无实际意义) 下图为该账号表表结构,没有分库分表,除主键没有其他约束,没有触发器: 但有一点奇怪的问题,这张表用户id(stu_id)是主键,用的varchar字段类型,但出现了重复的记录 在进一步的尝试探索中,我发现好像一条记录主键是数字,一条记录主键是字符串,如下图所示,加引号就少查出来一条 于是我决定删除数字的那条脏数据,输入了 1delete from t_student where stu_id = 2406249104 and wechat is null 但结果是报错:ERROR 1292(22007):Truncated incorrect DouBLE...
Java设计模式
发表于2023-07-20|敲代码后端
3,软件设计原则 在软件开发中,为了提高软件系统的可维护性和可复用性,增加软件的可扩展性和灵活性,程序员要尽量根据6条原则来开发程序,从而提高软件开发效率、节约软件开发成本和维护成本。 3.1 开闭原则 对扩展开放,对修改关闭。在程序需要进行拓展的时候,不能去修改原有的代码,实现一个热插拔的效果。简言之,是为了使程序的扩展性好,易于维护和升级。 想要达到这样的效果,我们需要使用接口和抽象类。 因为抽象灵活性好,适应性广,只要抽象的合理,可以基本保持软件架构的稳定。而软件中易变的细节可以从抽象派生来的实现类来进行扩展,当软件需要发生变化时,只需要根据需求重新派生一个实现类来扩展就可以了。 下面以 搜狗输入法 的皮肤为例介绍开闭原则的应用。 【例】搜狗输入法 的皮肤设计。 分析:搜狗输入法...
Java面经
发表于2023-07-19|敲代码后端
...
导览项目KD-Tree最近地点搜索优化
发表于2023-05-17|敲代码算法
...
前端基础:React项目打包部署服务器教程
发表于2023-04-23|敲代码前端
问题背景 我做了一个React框架的前端的Node项目,是一个单页面应用。 页面路由用的是,然后使用了React.lazy在路由层级对每一个不同页面进行了懒加载,只有打开那个页面才会加载对应资源。 然后现在我用了Webpack5对项目进行了打包,需要将项目部署到服务器上。 PS:vue项目打包部署同理。 打包好的build文件夹如下图。 问题解决 方法一:Serve静态服务器 使用前服务器环境需要安装好NodeJS和npm。 使用npm -v 和 node -v进行查看。 安装好之后就要安装serve。 12# 全局安装servenpm install -g serve 安装好之后,将本地打包的build文件夹都上传到服务器目录中。 用终端打开对应的项目的文件夹(注意文件路径是在build文件夹的上一层,如下图)。 终端输入serve -s build运行静态服务器。 运行成功的效果如上图所示,该项目就运行在指定的端口中,可以输入 -l 参数,指定运行端口。 1serve -s -l 3333...
算法题随记
发表于2023-02-19|敲代码算法
力扣算法面试必考精华版75题 数组 / 字符串 交替合并字符串 给你两个字符串 word1 和 word2 。请你从 word1 开始,通过交替添加字母来合并字符串。如果一个字符串比另一个字符串长,就将多出来的字母追加到合并后字符串的末尾。 返回 合并后的字符串 。 123456789101112131415161718192021public class test { public static void main(String[] args) { System.out.println(mergeAlternately("abc","pqr")); // "apbqcr" System.out.println(mergeAlternately("ab","pqrs")); // "apbqrs" ...
React首页加载速度优化
发表于2023-01-25|敲代码前端
背景 本文将以一个什么优化都没有的加载比较慢的React项目为例,一步一步探索怎样提升React首次打开项目首页时加载特别慢的问题。 问题分析 用网页控制台查看了一下网页加载的进度,定位到了加载速度很慢的地方 发现下载网页的js文件,有15mb大小,用了8秒,然后看了下打包好的build文件夹,有19.1mb,并且没有分包,是一个js文件。 问题探索 代码精简自查 我首先想到的是删除每个js文件中没有使用到的导入,简化一下文件依赖结构,再删除一些不需要的代码,清理一下用不到的图片素材之类的。 删除这个的时候,我没找到什么好办法,我使用的是vscode自带的功能,自动整理所有未使用的import。 使用方法: 打开左上角,文件-首选项-设置,输入“setting”,选择“字体”,点击“在settings.json中编辑”,在json文件中输入 1"editor.codeActionsOnSave": { "source.organizeImports": true...
Redis消息队列实现ES与MySQL异步双写
发表于2022-07-26|敲代码后端Redis
...
React父子组件重渲染异常刷新问题
发表于2022-05-26|敲代码前端
问题描述 在进行项目前端开发的过程中,遇到的一个数据刷新问题。 前端使用的是React框架,Antd组件库。 在上述这个页面中,弹窗的是子组件,背景页面是父组件,子组件的操作导致了父组件和子组件一同进行了重渲染。 实际展示出的效果就是点击了加分按钮,这个小弹窗被瞬间关闭再打开,这很显然不是期望的效果。 问题分析 为了查明这个问题,我去查询了相关资料,搞明白了React底层的Hook函数的重渲染机制。 首先,如果只有一个组件,当组件内部的useState创建的值发生了改变(setState),会导致React发生重渲染,但它只会定向的渲染改变了的部分,这是由于React的Reconciliation算法。 Reconciliation 被称为 diff 算法,它用来比较两颗 React 元素树之间的差异,为了让组件重新渲染变得高效,React 尽可能地复用现有的组件和 DOM。为了降低时间复杂度,Diff...
123
avatar
pyf
一个努力ing的程序员的博客
文章
30
标签
27
分类
8
CSDN
最新文章
windows计划任务执行bat脚本失败踩坑2025-04-11
Excel多线程带进度条异步导出框架2025-01-06
Excel流式多线程带进度条功能的导入框架2024-12-26
Java实体类属性轻量级验空抛错工具2024-10-24
sm2+sm4混合加密服务间开放接口鉴权2024-07-16
分类
  • 敲代码29
    • 前端3
    • 后端20
      • ElasticSearch3
      • MySQL2
      • Redis2
    • 算法4
    • 运维2
标签
策略模式 加密 docker JSON 长轮询 反射 踩坑 Java Excel 最近地点 Java八股文 高并发 消息队列 算法 遗传算法 ssh ElasticSearch Redis 索引 React MySQL 多线程 kkfileview 设备指纹 鉴权 DSL 算法题
归档
  • 四月 2025 1
  • 一月 2025 1
  • 十二月 2024 1
  • 十月 2024 1
  • 七月 2024 2
  • 六月 2024 1
  • 四月 2024 2
  • 九月 2023 1
网站信息
文章数目 :
30
本站总字数 :
187.7k
本站访客数 :
本站总浏览量 :
最后更新时间 :
©2021 - 2025 By pyf
框架 Hexo|主题 Butterfly