【复盘】2024年终总结

工作

重构风控系统

今年上半年其实就是整体重构系统,经历了多次加班的,其中的辛酸苦辣只有自己知道,现在来看的话,其实对自己还有一定的成长,从这件事情上也明白 绩效能不能拿到A,在分配的任务的时候就决定了。重构系统其实就是相当于在高速跑的汽车进行加油,如何保证无缝切换,保证应用、实例、数据等各个不出问题。以及通过各种方式进行避免各种可能出现的不可控情况。

  • 做之前想清楚,列好对应的todo list,截止时间、分清责任人
  • 多去想想可能的情况,以及可能出现情况的时候如何解决。
  • 上下游系统的API对接兼容,以及职场中各种扯皮的事情等。

我们大概是这样做的,一部分人进行新需求的对接,另外一部分人进行系统重构,分阶段开发,一部分完成先上线。灰度->验收-> 分阶段切流等。用了半年左右的时间完成系统的迁移。

监控系统完善

在系统迁移完毕之后,就开始完善系统的监控报警体系,基本都是业界的参考哪些方式。当系统出现问题时,可以更直观的看到哪里出现问题。

重复的事情不要过三,对于重复的事情 我们要尽量自动化,不仅仅可以提升效率,也可以有更多时间做其他时间。

学习

回顾今天的学习主题,其实主要就是两部分 一个是八股文 MySQL 以及框架中间件源码的阅读。构建了自己对软件设计的知识体系以及大量阅读相关优秀框架、中间件源码,完善自己的技能树。感兴趣的朋友可以star下 。

技能树

https://github.com/qxlx/skill-tree

在这里插入图片描述
整体来说其实就是JUC->Spring->MVC->Tomcat-> mybatis -> cloud -> kafka -> netty 看的源码系列。并且附加 设计模式之美

  • 1-4月 juc、jvm、redis、mysql 复盘学习
  • 5-6月 spring\mvc\tomcat源码阅读
  • 7月 boot\nacos 源码阅读
  • 8-9月 netty 源码阅读 (孙帅netty)
  • 10月 kafka 源码阅读
  • 11-12月 spring 源码阅读(孙帅spring),IOC+AOP+事务

专栏:设计模式之美 (翻来看去 今年看了两遍)、乔新亮的CTO成长复盘、代码精进之路、代码止丑、许式伟的架构(部分)、软件设计之美、职场求生攻略、Spring编程常见错误50例(部分)、王争-(程序员职场生存指南、Java编程之美)专栏、Netty 核心原理剖析与 RPC 实践、深入拆解Tomcat Jetty(部分)、从 0 开始学微服务

以下梳理下自己这一年的一些思考

1.初级程序员在维护代码,高级程序员在设计代码、架构师在重构代码

2.技术方案设计是立足于业务需求的基础上进行设计的

3.优秀的代码后背的设计思想更重要

4.代码之下,不止技术,业务、管理等软实力也重要

5.随时具备离开的能力

25计划

  • 1-2月 Myabtis源码,sql-analysis 源码阅读
  • 3-4月 JUC写一个小册子,从理论到源码到实践
  • 5月 结婚-暂停
  • 6-8 月 RPC、Dubbo源码
  • 9-10 RocketMQ源码
  • 11-12 SpringAlibaba nacos、sentinel、openfeign 、gateway系列源码

其他

  • 支付业务课程系列学习
  • 王争-代码能力提升训练营、系统设计与架构 训练营、重学计算机专业 训练营
  • 专栏
    • 左耳听风、郭东白的架构课、周志明的架构课、李智慧 高并发架构实战课 、商业思维案例笔记、从 0 开始学大数据、技术与商业案例解读
  • 书籍
    • 代码大全、代码整洁之道、架构整洁之道、重构、编写可读代码的艺术、程序员职业素养、代码的未来
    • 课外书籍: 明朝那些事
  • 25年结婚后,花一周时间进行旅游。

2024文章整理

java基础

【Java基础】聊聊你不知道反射的那些事

【Java基础】聊聊你不知道的注解那些事

【Java基础】动态代理与代理模式哪些事儿

MySQL

【数据库】聊聊explain如何优化sql以及索引最佳实践

【数据库】聊聊InnoDB存储引擎结构

【数据库】聊聊MVCC机制与BufferPool缓存机制

【数据库】聊聊MySQL事务隔离级别与锁机制

【数据库】聊聊常见的索引优化-上

【数据库】聊聊常见的索引优化-下

【MySQL】聊聊自增id用完怎么办?

【MySQL】聊聊全表查询会不会把数据库内存打爆

【数据库】聊聊普通索引和唯一索引怎么选

【MySQL】如何判断一个数据库是否出问题

【MySQL】聊聊你不知道的前缀索引原理以及使用场景

【MySQL】聊聊脏页flush的原理和控制策略

【MySQL】聊聊count的相关操作

【MySQL】聊聊order by 是如何排序的

【MySQL】聊聊MySQL常见的SQL语句阻塞场景

【MySQL】聊聊唯一索引是如何加锁的

【MySQL】一般大厂数据库规约

【MySQL】聊聊数据库是如何保证数据不丢的

并发

【Java并发】聊聊Future如何提升商品查询速度

【Java并发】聊聊活锁

【Java并发】聊聊concurrentHashMap扩容核心流程

【Java并发】聊聊concurrentHashMap的put核心流程

【Java并发】深入浅出 synchronized关键词原理-下

【Java并发】深入浅出 synchronized关键词原理-上

【并发设计模式】聊聊生产者-消费者模式

【并发设计模式】聊聊Thread-Per-Message与Worker-Thread模式

【Java并发】聊聊Disruptor背后高性能的原理

JVM

【JVM】聊聊JVM生产环境常见的OOM问题

【JVM】聊聊常见的JVM排查工具

【JVM】聊聊JVM参数以及调优

【JVM】聊聊垃圾回收之三色标记算法

【Redis】聊聊Redis常见数据类型底层结构

【设计模式】聊聊观察者设计模式原理及应用

源码系列

【tomcat】tomcat系统架构以及核心启动流程

【tcomat】聊聊tomcat是如何打破双亲委派模型进行类加载的

【tomcat】Tomcat如何扩展Java线程池原理

【SpringBoot】SpringBoot核心启动流程源码解析

【SpringBoot】SpringBoot自动装配原理

【SpringBoot】SpringBoot内置Servlet容器源码分析-Tomcat

【Nacos】Nacos服务注册与发现 心跳检测机制源码解析

netty

【Netty】netty启动流程源码解析

【Netty】netty接收、读、写整体过程源码解析

【Netty】ChannelPipeline以及事件执行流程源码解析

【Netty】Netty时间轮实践与源码解析

【Netty】FastThreadLocal比ThreadLocal快之源码解析

【Netty】netty中都是用了哪些设计模式

Kafka 源码阅读

【消息队列】聊聊你不知道的Kafka消费者组重平衡详细流程

【Kafka】聊聊如何做Kafka集群部署方案

【Kafka】Kafka源码解析之producer过程解读

【Kafka】Kafka Producer的缓冲池机制原理

【Kafka】Kafka源码解析之Consumer过程解读

Spring源码系列

【Spring编程常见错误50例】02.原型bean被固定

【Spring编程常见错误50例】03.依赖注入常见错误-上

【Spring编程常见错误50例】03.依赖注入常见错误-下

【方案设计】基于AOP+ThreadLocal 记录耗时接口调用

【Spring编程常见错误50例】04. Spring Bean 生命周期常见错误-上

【Spring】聊聊@EventListener注解原理

【定时任务】定时任务技术实现原理和选型分析

【SpringAOP】深入浅出SpringAOP从原理到源码

【Spring事务】深入浅出Spring事务从原理到源码

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/949155.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

美食烹饪互动平台

本文结尾处获取源码。 一、相关技术 后端:Java、JavaWeb / Springboot。前端:Vue、HTML / CSS / Javascript 等。数据库:MySQL 二、相关软件(列出的软件其一均可运行) IDEAEclipseVisual Studio Code(VScode)Navica…

linux-centos-安装miniconda3

参考: 最新保姆级Linux下安装与使用conda:从下载配置到使用全流程_linux conda-CSDN博客 https://blog.csdn.net/qq_51566832/article/details/144113661 Linux上删除Anaconda或Miniconda的步骤_linux 删除anaconda-CSDN博客 https://blog.csdn.net/m0_…

[读书日志]从零开始学习Chisel 第一篇:书籍介绍,Scala与Chisel概述,Scala安装运行(敏捷硬件开发语言Chisel与数字系统设计)

简介:从20世纪90年代开始,利用硬件描述语言和综合技术设计实现复杂数字系统的方法已经在集成电路设计领域得到普及。随着集成电路集成度的不断提高,传统硬件描述语言和设计方法的开发效率低下的问题越来越明显。近年来逐渐崭露头角的敏捷化设…

工厂模式与抽象工厂模式在Unity中的实际应用案例

一、实验目的 实践工厂模式和抽象工厂模式的实际应用。 创建一个小型的游戏场景,通过应用这些设计模式提升游戏的趣味性和可扩展性。 掌握在复杂场景中管理和使用不同类型的对象。 比较在实际游戏开发中不同设计模式的实际效果和应用场景。 学习如何进行简单的性…

vue3+Echarts+ts实现甘特图

项目场景&#xff1a; vue3Echartsts实现甘特图;发布任务 代码实现 封装ganttEcharts.vue <template><!-- Echarts 甘特图 --><div ref"progressChart" class"w100 h100"></div> </template> <script lang"ts&qu…

[Linux]redis5.0.x升级至7.x完整操作流程

1. 从官网下载最新版redis&#xff1a; 官网地址&#xff1a;https://redis.io/download 注&#xff1a;下载需要的登录&#xff0c;如果选择使用github账号登录&#xff0c;那么需要提前在github账号中取消勾选“Keep my email addresses private”&#xff08;隐藏我的邮箱…

android 外挂modem模块实现Telephony相关功能(上网,发短信,打电话)

一.背景 当前模块不支持Telephony相关的功能,例如上网、发短信等功能,就需要外挂另一个模块实现此功能,这就是外挂modem模块实现Telephony功能,此篇主要就是说实现外挂modem模块功能中的Framework层实现逻辑,如下流程是在Android 13中实现的外挂pcie模块的流程 二.ril库相…

倍思氮化镓充电器分享:Super GaN伸缩线快充35W

快节奏的时代,在旅游、办公等场景下,一款高效、便捷的充电器可以让我们的生活更便捷、高效。今天就给大家推荐一款倍思氮化镓充电器——Super GaN伸缩线快充35W。它具备多重亮点,可以满足我们在许多场景下的充电需求,成为我们的得力助手。 倍思氮化镓Super GaN伸缩线快充35W的亮…

若依前后端分离项目部署(使用docker)

文章目录 一、搭建后端1.1 搭建流程&#xff1a;1.2 后端零件:1.2.1 mysql容器创建&#xff1a;1.2.2 redis容器创建&#xff1a;1.2.3 Dockerfile内容&#xff1a;1.2.4 构建项目镜像&#xff1a;1.2.5 创建后端容器&#xff1a; 二、前端搭建&#xff1a;2.1 搭建流程&#x…

STM32驱动NRF24L01

一、NRF24L01的相关介绍 1.2 引脚的介绍 关于SPI的引脚就不再说了&#xff0c;这里介绍其余的两个引脚&#xff1a; CE 模块控制引脚&#xff1a;芯片开启信号&#xff0c;激活RX或TX模式 IRQ 模块中断信号输出引脚&#xff1a;其低电平有效&#xff0c;也就是中断时变为低电平…

OneOS操作系统入门-驱动-03:I2C总线及驱动

一、I2C总线 1.1、I2C总线简介 IIC(Inter-Integrated Circuit) 总线是一种由 PHILIPS 公司开发的两线式串行总线&#xff0c;用于连接微控制器以及其外围设备。它是由数据线 SDA 和时钟线 SCL 构成的串行总线&#xff0c;可发送和接收数据&#xff0c;在 CPU 与被控 IC…

【可实战】Bug的判定标准、分类、优先级、定位方法、提交Bug(包含常见面试题)

一、Bug相关概念 &#xff08;一&#xff09;bug判定标准 &#xff08;二&#xff09;常见 Bug 分类 &#xff08;三&#xff09;bug优先级 1.bug严重程度与优先级的关系 有些很严重的Bug&#xff0c;只在极端的条件下才出现&#xff0c;用户碰到的概率很低&#xff0c;这种情…

nginx学习之路-nginx配置https服务器

文章目录 1. 生成证书2. 配置证书1. 拷贝证书文件2. 修改conf/nginx.conf文件内容 3. 查看效果1. 重载配置2. 访问 1. 生成证书 在linux系统下执行&#xff0c;使用openssl命令。&#xff08;windows环境也可以使用cmder&#xff09; # 1. 生成私钥 server2025.key(无密码保护…

【mybatis】Mybatis整体架构解析

从本篇开始我们开始学习mybatis的系列源码&#xff0c;主要的主题可能就是四个方面 从整体把握mybatis系统架构通过一个查询SQL 源码解析核心流程mybatis的缓存机制-源码级别mybatis的插件机制-源码级别spring是如何整合的mybatis框架的 1.整体架构 上述是mybatis的源码&…

DDcGAN_多分辨率图像融合的双鉴别条件生成对抗网络_y译文马佳义

摘要&#xff1a; 在本文中&#xff0c;我们提出了一种新的端到端模型&#xff0c;称为双鉴别条件生成对抗网络&#xff08;DDcGAN&#xff09;&#xff0c;用于融合不同分辨率的红外和可见光图像。我们的方法建立了一个生成器和两个鉴别器之间的对抗博弈。生成器的目的是基于特…

K8s高可用集群之Kubernetes集群管理平台、命令补全工具、资源监控工具部署及常用命令

K8s高可用集群之Kubernetes管理平台、补全命令工具、资源监控工具部署及常用命令 1.Kuboard可视化管理平台2.kubectl命令tab补全工具3.MetricsServer资源监控工具4.Kubernetes常用命令 1.Kuboard可视化管理平台 可以选择安装k8s官网的管理平台&#xff1b;我这里是安装的其他开…

计算机网络-数据链路层(CSMA/CD协议,CSMA/CA协议)

2.2 ppp协议 点对点协议ppp是目前使用最广泛的点对点数据链路层协议。 2.3 媒体接入控制基本概念 共享信道要着重考虑的一个问题就是如何协调多个发送和接收站点对一个共享传输媒体的占用&#xff0c;即媒体接入控制MAC。 2.3.1 静态划分信道 频分复用 时分复用 波分复用 码分复…

富芮坤FR800X系列之软件开发工具链(如IDE、编译器、调试器等)

文章目录 一、IDE&#xff08;集成开发环境&#xff09;二、编译器三、调试器四、其他辅助工具五、小结 FR800x系列作为一款低功耗蓝牙芯片&#xff0c;其软件开发工具链对于开发者来说至关重要。以下是对FR800x软件开发工具链的详细介绍&#xff0c;包括IDE&#xff08;集成开…

Oracle数据库如何找到 Top Hard Parsing SQL 语句?

有一个数据库应用程序存在过多的解析问题&#xff0c;因此需要找到产生大量硬解析的主要语句。 什么是硬解析 Oracle数据库中的硬解析&#xff08;Hard Parse&#xff09;是指在执行SQL语句时&#xff0c;数据库需要重新解析该SQL语句&#xff0c;并创建新的执行计划的过程。这…

从零开始开发纯血鸿蒙应用之实现起始页

从零开始开发纯血鸿蒙应用 一、前言二、主要页面三、应用起始页四、MainPageContent 实现1、一级结构2、二级结构2.1、EmptyContent2.2、FileListContent2.2.1、ViewAction&#xff1a;2.2.2、EditAction2.2.3、DeleteAction2.2.4、ShareAction 五、载入起始页的时机五、总结 一…