我的2023年总结:往前看,别回头

2023年已经结束,我借此机会回顾一下我的2023年,同时也为2024年立好flag。

文章目录

  • 2023
    • 印象深刻的实战经历
    • 技术成长与规划
    • 技术分享与交流
      • CSDN博客
      • 参加百度apollo技术讨论会
    • 深入学习Redis源码
    • 多彩的生活
      • 张杰演唱会
      • 《漫长的季节》:往前看,别回头
  • 2024

2023

印象深刻的实战经历

在2023年,我参与了多个Java项目的开发,我深入接触了java的并发编程和性能优化,学习了线程池、锁机制和性能监测机制工具,显著的提高了系统的并发处理能力和响应时间。

技术成长与规划

在2023年,我学习了 nodejs、electron、计算机网络协议栈、 Kubernetes 、golang等技术,并且读Redis源码,熟悉Redis底层原理。
此外,我还深入学习了数据结构和算法,通过在leetcode刷题,提高了自己的算法思维和解决问题的能力。

到2024 年,我计划进一步去阅读优秀技术的源代码,包括Nginx、Kubernetes 、Vue等。我希望能够将这些技术的实现思想应用到自己的开发中。

技术分享与交流

CSDN博客

我在CSDN创作了150+文章,涉及到Java、前端技术、Golang、Redis、Mysql、云原生等领域

参加了2023年度新星计划,有很大成长,认识很多志同道合的朋友和导师。我实力壮大后也做了几次新星计划导师。

CSDN粉丝突破20000+,访问量超过85w。
总排名进入2000内
在这里插入图片描述

创作过程中收集到了45个勋章
在这里插入图片描述

参加百度apollo技术讨论会

在这里插入图片描述
在这里插入图片描述

深入学习Redis源码

Redis是键值存储服务器,可以作为
redis是使用范围最广的key-value存储的非关系型数据库。提供缓存数据库、发布订阅、全文检索等功能,辅助业务数据库。它的代码很简洁,为程序员学习编程思想,提高编程能力提供了很好的范本。
贴出几段Redis核心源代码,希望大家去读源码,学原理

struct redisCommand redisCommandTable[] = {{"module",moduleCommand,-2,"as",0,NULL,0,0,0,0,0},{"get",getCommand,2,"rF",0,NULL,1,1,1,0,0},{"gdouble",gdoubleCommand,2,"rF",0,NULL,1,1,1,0,0},{"set",setCommand,-3,"wm",0,NULL,1,1,1,0,0},{"setnx",setnxCommand,3,"wmF",0,NULL,1,1,1,0,0},{"setex",setexCommand,4,"wm",0,NULL,1,1,1,0,0},{"psetex",psetexCommand,4,"wm",0,NULL,1,1,1,0,0},{"append",appendCommand,3,"wm",0,NULL,1,1,1,0,0},{"strlen",strlenCommand,2,"rF",0,NULL,1,1,1,0,0},{"del",delCommand,-2,"w",0,NULL,1,-1,1,0,0},{"unlink",unlinkCommand,-2,"wF",0,NULL,1,-1,1,0,0},{"exists",existsCommand,-2,"rF",0,NULL,1,-1,1,0,0},{"setbit",setbitCommand,4,"wm",0,NULL,1,1,1,0,0},{"getbit",getbitCommand,3,"rF",0,NULL,1,1,1,0,0},......
}
typedef struct redisObject {unsigned type:4;unsigned encoding:4;unsigned lru:LRU_BITS; /* LRU time (relative to global lru_clock) or* LFU data (least significant 8 bits frequency* and most significant 16 bits access time). */int refcount;void *ptr;
} robj;
typedef struct redisDb {dict *dict;                 /* The keyspace for this DB */dict *expires;              /* Timeout of keys with a timeout set */dict *blocking_keys;        /* Keys with clients waiting for data (BLPOP)*/dict *ready_keys;           /* Blocked keys that received a PUSH */dict *watched_keys;         /* WATCHED keys for MULTI/EXEC CAS */int id;                     /* Database ID */long long avg_ttl;          /* Average TTL, just for stats */list *defrag_later;         /* List of key names to attempt to defrag one by one, gradually. */
} redisDb;

多彩的生活

除了工作还有生活,要享受每一天。

张杰演唱会

8月参加了北京鸟巢张杰的“未live”演唱会,难忘的3小时视听盛宴。
在这里插入图片描述

《漫长的季节》:往前看,别回头

今年最难忘电视剧是《漫长的季节》,印象最深的台词就是“往前看,别回头”。
在这里插入图片描述

2024

2024年我会继续努力学习和进步,提高全栈开发能力。
熟悉AI,使用AI,努力使自己成为不可取代的人。
在CSDN多多创作文章,形成个人影响力。
形成稳定的副业盈利模式。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

bat批处理文件_输出内容到文本

文章目录 1、echo str > test.txt(覆盖原有内容)2、echo str >> test.txt(不覆盖原有内容,追加) 1、echo str > test.txt(覆盖原有内容) 2、echo str >> test.txt&#xff0…

代码随想录 718. 最长重复子数组

题目 给两个整数数组 nums1 和 nums2 ,返回 两个数组中 公共的 、长度最长的子数组的长度 。 示例 1: 输入:nums1 [1,2,3,2,1], nums2 [3,2,1,4,7] 输出:3 解释:长度最长的公共子数组是 [3,2,1] 。 示例 2&#xff1…

如何用离散二维卷积公式描述卷积过程(说实话,我没搞懂为什么索引为什么设置成对称的模式。)

问题描述:如何用离散二维卷积公式描述卷积过程(说实话,我没搞懂为什么索引为什么设置成对称的模式。) 众所周知,描述图像卷积过程,可以使用图形法描述,也可以用公式法描述,但是具体用…

第十课:计算机心理学、教育科技及奇点,天网,计算机的未来

第十课:计算机心理学、教育科技及奇点,天网,计算机的未来 第三十八章:计算机心理学0、计算机中用到的心理学原理1、易用度2、颜色强度排序和颜色排序3、分组更好记4、直观功能5、认出VS回想6、让机器有一定的情商以及Facebook的研…

新兴电商平台都有哪些?新手做哪个比较盈利?

我是电商珠珠 近年来的电商平台层出不穷,由于购物方式发生了改变,传统的电商模式已经不能满足当前人们的需求,所以在抖音推出电商-抖音小店后,让整个电商圈发生了全新的改变。 抖音小店的出现顺势将直播电商带了起来&#xff0c…

计算机研究生论文检索方法汇总

计算机研究生论文检索方法汇总 作为一名优质(冤种)计算机在读研究生,检索论文是一项不可或缺的技能之一。 一、paperwithcode paperswithcode是一个免费开放的资源平台,提供了机器学习领域的论文、代码、数据集、方法和评估表。在这里我们可以检索不同…

Python|使用Missingno库可视化缺失值(NaN)

在真实世界数据集的情况下,数据集中的某些值丢失是非常常见的。我们将这些缺失值表示为NaN(非数字)值。但是要构建一个好的机器学习模型,我们的数据集应该是完整的。这就是为什么我们使用一些插补技术来用一些可能的值替换NaN值。…

DevOps(6)

目录 26.如何在Linux下跨不同的虚拟桌面共享程序? 27.无名(空)目录代表什么? 29.什么是守护进程? 30.如何从一个桌面环境切换到另一个桌面环境,例如从KDE切换到Gnome? 26.如何在Linux下跨不同的虚拟桌面…

你的网站或许不需要前端构建(二)

前一阵,有朋友问我,能否在不进行前端编译构建的情况下,用现代语法开发网站界面。 于是,就有了这篇文章中提到的方案。 写在前面 这篇文章,依旧不想讨论构建或不构建,哪一种方案对开发更友好,…

MySQL——视图

目录 一.视图介绍 二.基本使用 三.视图规则和限制 一.视图介绍 视图是一个虚拟表,其内容由查询定义。同真实的表一样,视图包含一系列带有名称的列和行数据。视图的数据变化会影响到基表,基表的数据变化也会影响到视图。 二.基本使用 创…

【mysql django】解决Django提示mysql版本过低

目录 一、解决Django提示mysql版本过低:django.db.utils.NotSupportedError: MySQL 8 or later is required (found 5.7.26) 一、解决Django提示mysql版本过低:django.db.utils.NotSupportedError: MySQL 8 or later is required (found 5.7.26) 报错&…

Netty初探:掌握高性能网络通信框架,提升Java网络编程技能

Netty初探 NIO 的类库和 API 繁杂 , 使用麻烦: 需要熟练掌握Selector、 ServerSocketChannel、SocketChannel、 ByteBuffer等。 开发工作量和难度都非常大: 例如客户端面临断线重连、 网络闪断、心跳处理、半包读写、 网络拥塞和异常流的处…

2.C++的编译:命令行、makefile和CMake

1. 命令行编译 命令行编译是指直接在命令行中输入以下指令: 预处理:gcc -E main.c -o main.i 编译:gcc -S main.i -o main.s 汇编:gcc -c main.s -o main.o 链接:gcc main.o -o main 命令汇总:gcc main.c …

JVM篇:直接内存

直接内存 直接内存并不是JVM的内存结构,直接内存是操作系统的内存,Java本身并不能对操作系统的内存进行操作,而是通过调用本地方法。直接内存常用于NIO作为缓冲区存在,分配成本较高但是读写性能好,并且不受JVM内存回收…

FingerprintService启动-Android13

FingerprintService启动-Android13 1、指纹服务启动1.1 rc启动Binder对接指纹厂商TA库1.2 FingerprintService启动1.2.1 SystemServer启动FingerprintService1.2.2 注册Binder服务fingerprint 2、获取底层信息2.1 AIDL 对接TA中获取2.2 指纹类型判断 android13-release 1、指纹…

PyTorch基础操作

一、Tensor 在 PyTorch 中,张量(Tensor)是一个核心概念,它是一个用于存储和操作数据的多维数组,类似于 NumPy 的 ndarray,但与此同时,它也支持 GPU 加速,这使得在大规模数据上进行科…

CSS 放大翻转动画

<template><div class="container" @mouseenter="startAnimation" @mouseleave="stopAnimation"><!-- 旋方块 --><div class="box" :class="{ rotate-scale-up-hor: isAnimating }"><!-- 元素内…

使用爬虫爬取热门电影

文章目录 网站存储视频的原理M3U8文件解读网站分析代码实现 网站存储视频的原理 首先我们来了解一下网站存储视频的原理。 一般情况下&#xff0c;一个网页里想要显示出一个视频资源&#xff0c;必须有一个<video>标签&#xff0c; <video src"xxx.mp4"&…

Note: A Journey Across Canada

A Journey Across Canada 一场横穿加拿大的旅行 across journey After a quiz last autumn, Kuang crossed the continent eastward to Toronto to visit his schoolmate, the distance measuring approximately 5000 kilometers. 去年秋天一次考试后&#xff0c;Kuang向东穿…