当前位置: 首页 > news >正文

李光明从程序员到架构师的逆袭之路(三)

我,李光明,正在参加一个重要的技术会议。会场上,我们团队正在讨论着接口设计以及接口设计模式。我深知,一个好的接口设计应当遵循简洁、清晰、可扩展的原则。比如,在设计一个用户信息查询接口时,我们会定义一个明确的接口名,如getUserInfo,并规定好输入参数,如用户ID,以及返回的数据结构,确保它既能满足当前的需求,又能为未来可能的功能扩展留下空间。

会议结束后,我回到工位,想起自己曾经的困惑和迷茫。那时,我虽然每天忙碌于编写代码,但却对工作缺乏激情。直到某天,我偶然发现了几本技术书籍,它们如同明灯一般照亮了我的前行之路。我开始系统地学习书中的知识,每一章节都仔细研读,每一个技术点都努力实践。

在学习过程中,我遇到了一个棘手的问题:使用Executors工具类创建线程池时导致了内存溢出(OOM)。我深入研究后发现,Executors工具类虽然提供了便捷的线程池创建方式,但如果不当使用,很容易引发资源耗尽的问题。例如,Executors.newCachedThreadPool()方法会创建一个可缓存的线程池,但在高并发场景下,它可能会无限制地创建新线程,最终导致内存溢出。

为了解决这个问题,我深入学习了《JVM实战》一书,通过调整线程池的配置参数,如核心线程数、最大线程数、队列深度等,成功解决了OOM问题。这次经历让我更加深刻地理解了Java虚拟机和线程池的工作原理。

此时,公司正在规划一个新的零售数据中台项目。我恰巧读到了《零售数据中台指南》这本书,书中详细阐述了零售数据中台包括数据采集、数据清洗、数据存储、数据分析、数据服务等模块,这些模块共同构成了一个完整的数据处理流程,为企业的决策提供了强有力的数据支持。

为了更好地参与项目中,我继续深入研究了《Elastic Stack实战手册》(早鸟版),学习了如何利用Elasticsearch、Logstash和Kibana构建日志和搜索分析系统,这对于数据中台中的日志收集和分析至关重要。

同时,我还研读了《Spring Cloud微服务构架设计与实战》一书。这本书详细讲解了Spring Cloud的各个组件,如Eureka服务发现、Config配置中心、Ribbon负载均衡、Feign声明式HTTP客户端等,这些知识对于构建微服务架构非常有帮助。


重磅!!!最新阿里云340本殿堂级内部课程资料“揭秘”流出,进阶必备!!!

重磅!!!最新阿里云340本殿堂级内部课程资料“揭秘”流出,进阶必备!!!

重磅!!!最新阿里云340本殿堂级内部课程资料“揭秘”流出,进阶必备!!!


此外,《Spring Boot 2.5开发实战》和《Dubbo分布式服务治理实战》两本书也让我受益匪浅。前者教会了我如何使用Spring Boot快速开发Web应用,后者则让我掌握了Dubbo这一高性能、轻量级的分布式服务框架的使用和治理方法。

通过不断地学习和实践,我的技术能力得到了显著提升。如今,我已经不再是一名普通的程序员,而是逐渐成长为一名具有全局视野和深厚技术功底的架构师。在公司的零售数据中台项目中,我发挥了关键作用,成功地设计并实施了高效稳定的技术方案。

相关文章:

李光明从程序员到架构师的逆袭之路(三)

我,李光明,正在参加一个重要的技术会议。会场上,我们团队正在讨论着接口设计以及接口设计模式。我深知,一个好的接口设计应当遵循简洁、清晰、可扩展的原则。比如,在设计一个用户信息查询接口时,我们会定义…...

基于Spring Boot+VUE毕业生信息招聘平台

系统详细设计 1管理员功能模块 管理员登录,管理员通过输入用户名、密码、角色等信息进行系统登录,如图1所示。 图1管理员登录界面图 管理员登录进入毕业生信息招聘平台可以查看首页、个人中心、企业管理、空中宣讲会管理、招聘岗位管理、毕业生管理、个…...

设计模式-创建型-04-建造者模式

1、盖房项目需求 1)需要建房子:这一过程为打桩、砌墙、封顶2)房子有各种各样的,比如普通房,高楼,别墅,各种房子的过程虽然一样,但是要求不要相同的3)请编写程序&#xf…...

jenkins中配置参数化,并在python脚本接收参数实现参数化执行

在公司内进行Monkey测试脚本集成jenkins时,因为需要指定公司内不同的app进行测试。那么可以有两种方法解决该问题,要么创建多个脚本文件,多个jenkins jobs,进行构建。要么可以在配置job时通过传参数的方式,在python脚本…...

【SCAU数据挖掘】数据挖掘期末总复习题库应用题及解析

1. 给定圆的半径为e ,令 MinPts3,考虑下面两幅图。 (1)哪些对象是核心对象? m,p,o,r(因为这些核心对象在半径e的范围内都至少包含MinPts3个对象) (2)哪些对象是直接密度可达的? 对象q是…...

ADB->获取当前正在显示的Fragment和Activity的ADB命令

获取当前显示的Activity adb shell "dumpsys window | grep mCurrentFocus"指令拆解adb shell:启动一个远程shell来运行设备上的命令dumpsys window:获取当前窗口管理器的信息|:将前一个命令的输出作为后一个命令的输入grep mCurr…...

C#——集合List

list list集合和Arraylist基本一样,只不过list是C#2.0版本新加入的范型类型。list也可以通过索引操作里面的元素,也有对list进行增删改查 概念 Array静态数组 * Arraylist 动态数组 * list集合 * 1. Array是容量是固定的,但是ArrayList和…...

小程序-生命周期(2) 应用周期/页面周期

一.应用周期 应用周期指的是小程序:启动->运行->销毁的整个过程。 应用周期伴随一些函数来进行控制,这些函数卸载app.js里面的App方法里。 分别由onLaunch, onShow,onHide依次进行。 onLaunch:初始化的时候运行…...

什么是模板字符串?

模板字符串(Template Literals)是ES6(ECMAScript 2015)中引入的一种新的字符串表示方法,允许我们嵌入表达式,并在运行时将它们转换为字符串。模板字符串使用反引号()来定义&#xff…...

服务器数据恢复—热备盘未完全启用导致raid5阵列崩溃的数据恢复案例

服务器存储故障: 一台EMC某型号存储由于存储中raid5阵列出现故障导致服务器崩溃,由于数据涉密,需要工程师到现场恢复数据。 服务器数据恢复工程师到现场后对数据进行检测,经过检测发现服务器崩溃是由于raid中某些硬盘掉线所导致。…...

微服务项目雪崩的解决思路

雪崩的介绍 雪崩是微服务中某个服务挂了,无法返回请求,导致调用改服务的上层服务也故障,最终形成连锁反应,导致整个系统故障。 解决思路 一般有四种思路: 1.最简单的就是超时处理,即超过一段时间就返回…...

汇编语言程序设计 - 新建一个文件:d:\abc.txt,从键盘输入文件的内容(不超过100个字符)

80x86汇编习题 题目描述:编写一个程序,新建一个文件:d:\abc.txt,从键盘输入文件的内容(不超过100个字符) 思路: 1,定义好文件名,记得末尾0 2,定义好缓冲区…...

【Linux】进程间通信2——命名管道

1. 命名管道(FIFO) 1.1. 基本概念 简单,给匿名管道起个名字就变成了命名管道 那么如何给 匿名管道 起名字呢? 结合文件系统,给匿名管道这个纯纯的内存文件分配 inode,将文件名与之构建联系,关键点在于不给它分配 D…...

语音翻译软件app排名来啦,这些工具让旅游畅通无阻

#这个夏天我们一定要去看海# 出国旅行时,语言障碍常常是最让人头疼的问题之一。 特别是在像缅甸这样英语并不普及的国家,基本的日常交流,比如用餐或问路,都可能成为难题。 然而,随着技术的进步,现在有了…...

nginx脚本原理if指令实现详解

之前的文章我们探讨了nginx的变量,接着就是脚本原理,也就是复杂变量,理解了前面的实现原理,接下来了解if,break,return,set就要简单多。 指令有不少,没必要全部探讨,了解了其中之一…...

数据提取与治理:企业数字化转型的双引擎

在当今数字化浪潮中,企业正面临着前所未有的挑战和机遇。为了在这场变革中立于不败之地,数字化转型成为了企业不可或缺的战略选择。而在数字化转型的众多关键要素中,数据提取与治理技术无疑扮演着至关重要的角色,它们如同双引擎一…...

Java8 新特性 记录【持续更新】

目录 一、Stream 相关 1、findFirst 方法 二、Optional 1、如何构造Optional 2、ifPresent 方法 一、Stream 相关 1、findFirst 方法 Stream的findFirst方法在此流中查找第一个元素作为Optional。 如果流中没有元素,findFirst返回空的Optional。 如果流没…...

Protobuf详解及入门指南

Protobuf详解及入门指南 大家好,我是免费搭建查券返利机器人省钱赚佣金就用微赚淘客系统3.0的小编,也是冬天不穿秋裤,天冷也要风度的程序猿!在分布式系统和跨平台通信中,高效、轻量的序列化协议尤为重要。Google的Pro…...

[Java基本语法] 逻辑控制与方法

🌸个人主页:https://blog.csdn.net/2301_80050796?spm1000.2115.3001.5343 🏵️热门专栏:🍕 Collection与数据结构 (92平均质量分)https://blog.csdn.net/2301_80050796/category_12621348.html?spm1001.2014.3001.5482 🧀线程与…...

新手教学系列-​​​​​​基础知识(SSH使用)

基础知识(SSH使用) 什么是ssh Secure Shell(安全外壳协议,简称SSH)是一种加密的网络传输协议,可在不安全的网络中为网络服务提供安全的传输环境[1]。SSH通过在网络中创建安全隧道来实现SSH客户端与服务器之间的连接[2]。虽然任何网络服务都可以通过SSH实现安全传输,SS…...

RocketMQ延迟消息机制

两种延迟消息 RocketMQ中提供了两种延迟消息机制 指定固定的延迟级别 通过在Message中设定一个MessageDelayLevel参数,对应18个预设的延迟级别指定时间点的延迟级别 通过在Message中设定一个DeliverTimeMS指定一个Long类型表示的具体时间点。到了时间点后&#xf…...

docker详细操作--未完待续

docker介绍 docker官网: Docker:加速容器应用程序开发 harbor官网:Harbor - Harbor 中文 使用docker加速器: Docker镜像极速下载服务 - 毫秒镜像 是什么 Docker 是一种开源的容器化平台,用于将应用程序及其依赖项(如库、运行时环…...

label-studio的使用教程(导入本地路径)

文章目录 1. 准备环境2. 脚本启动2.1 Windows2.2 Linux 3. 安装label-studio机器学习后端3.1 pip安装(推荐)3.2 GitHub仓库安装 4. 后端配置4.1 yolo环境4.2 引入后端模型4.3 修改脚本4.4 启动后端 5. 标注工程5.1 创建工程5.2 配置图片路径5.3 配置工程类型标签5.4 配置模型5.…...

51c自动驾驶~合集58

我自己的原文哦~ https://blog.51cto.com/whaosoft/13967107 #CCA-Attention 全局池化局部保留,CCA-Attention为LLM长文本建模带来突破性进展 琶洲实验室、华南理工大学联合推出关键上下文感知注意力机制(CCA-Attention),…...

STM32+rt-thread判断是否联网

一、根据NETDEV_FLAG_INTERNET_UP位判断 static bool is_conncected(void) {struct netdev *dev RT_NULL;dev netdev_get_first_by_flags(NETDEV_FLAG_INTERNET_UP);if (dev RT_NULL){printf("wait netdev internet up...");return false;}else{printf("loc…...

《Playwright:微软的自动化测试工具详解》

Playwright 简介:声明内容来自网络,将内容拼接整理出来的文档 Playwright 是微软开发的自动化测试工具,支持 Chrome、Firefox、Safari 等主流浏览器,提供多语言 API(Python、JavaScript、Java、.NET)。它的特点包括&a…...

大数据零基础学习day1之环境准备和大数据初步理解

学习大数据会使用到多台Linux服务器。 一、环境准备 1、VMware 基于VMware构建Linux虚拟机 是大数据从业者或者IT从业者的必备技能之一也是成本低廉的方案 所以VMware虚拟机方案是必须要学习的。 (1)设置网关 打开VMware虚拟机,点击编辑…...

【机器视觉】单目测距——运动结构恢复

ps:图是随便找的,为了凑个封面 前言 在前面对光流法进行进一步改进,希望将2D光流推广至3D场景流时,发现2D转3D过程中存在尺度歧义问题,需要补全摄像头拍摄图像中缺失的深度信息,否则解空间不收敛&#xf…...

学习STC51单片机32(芯片为STC89C52RCRC)OLED显示屏2

每日一言 今天的每一份坚持,都是在为未来积攒底气。 案例:OLED显示一个A 这边观察到一个点,怎么雪花了就是都是乱七八糟的占满了屏幕。。 解释 : 如果代码里信号切换太快(比如 SDA 刚变,SCL 立刻变&#…...

Java多线程实现之Thread类深度解析

Java多线程实现之Thread类深度解析 一、多线程基础概念1.1 什么是线程1.2 多线程的优势1.3 Java多线程模型 二、Thread类的基本结构与构造函数2.1 Thread类的继承关系2.2 构造函数 三、创建和启动线程3.1 继承Thread类创建线程3.2 实现Runnable接口创建线程 四、Thread类的核心…...