李光明从程序员到架构师的逆袭之路(三)
我,李光明,正在参加一个重要的技术会议。会场上,我们团队正在讨论着接口设计以及接口设计模式。我深知,一个好的接口设计应当遵循简洁、清晰、可扩展的原则。比如,在设计一个用户信息查询接口时,我们会定义一个明确的接口名,如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)请编写程序…...

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)中引入的一种新的字符串表示方法,允许我们嵌入表达式,并在运行时将它们转换为字符串。模板字符串使用反引号()来定义ÿ…...

服务器数据恢复—热备盘未完全启用导致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…...
Python|GIF 解析与构建(5):手搓截屏和帧率控制
目录 Python|GIF 解析与构建(5):手搓截屏和帧率控制 一、引言 二、技术实现:手搓截屏模块 2.1 核心原理 2.2 代码解析:ScreenshotData类 2.2.1 截图函数:capture_screen 三、技术实现&…...
Ubuntu系统下交叉编译openssl
一、参考资料 OpenSSL&&libcurl库的交叉编译 - hesetone - 博客园 二、准备工作 1. 编译环境 宿主机:Ubuntu 20.04.6 LTSHost:ARM32位交叉编译器:arm-linux-gnueabihf-gcc-11.1.0 2. 设置交叉编译工具链 在交叉编译之前&#x…...

【Oracle APEX开发小技巧12】
有如下需求: 有一个问题反馈页面,要实现在apex页面展示能直观看到反馈时间超过7天未处理的数据,方便管理员及时处理反馈。 我的方法:直接将逻辑写在SQL中,这样可以直接在页面展示 完整代码: SELECTSF.FE…...

【7色560页】职场可视化逻辑图高级数据分析PPT模版
7种色调职场工作汇报PPT,橙蓝、黑红、红蓝、蓝橙灰、浅蓝、浅绿、深蓝七种色调模版 【7色560页】职场可视化逻辑图高级数据分析PPT模版:职场可视化逻辑图分析PPT模版https://pan.quark.cn/s/78aeabbd92d1...
音视频——I2S 协议详解
I2S 协议详解 I2S (Inter-IC Sound) 协议是一种串行总线协议,专门用于在数字音频设备之间传输数字音频数据。它由飞利浦(Philips)公司开发,以其简单、高效和广泛的兼容性而闻名。 1. 信号线 I2S 协议通常使用三根或四根信号线&a…...
Web中间件--tomcat学习
Web中间件–tomcat Java虚拟机详解 什么是JAVA虚拟机 Java虚拟机是一个抽象的计算机,它可以执行Java字节码。Java虚拟机是Java平台的一部分,Java平台由Java语言、Java API和Java虚拟机组成。Java虚拟机的主要作用是将Java字节码转换为机器代码&#x…...
怎么让Comfyui导出的图像不包含工作流信息,
为了数据安全,让Comfyui导出的图像不包含工作流信息,导出的图像就不会拖到comfyui中加载出来工作流。 ComfyUI的目录下node.py 直接移除 pnginfo(推荐) 在 save_images 方法中,删除或注释掉所有与 metadata …...

实战设计模式之模板方法模式
概述 模板方法模式定义了一个操作中的算法骨架,并将某些步骤延迟到子类中实现。模板方法使得子类可以在不改变算法结构的前提下,重新定义算法中的某些步骤。简单来说,就是在一个方法中定义了要执行的步骤顺序或算法框架,但允许子类…...

PH热榜 | 2025-06-08
1. Thiings 标语:一套超过1900个免费AI生成的3D图标集合 介绍:Thiings是一个不断扩展的免费AI生成3D图标库,目前已有超过1900个图标。你可以按照主题浏览,生成自己的图标,或者下载整个图标集。所有图标都可以在个人或…...
webpack面试题
面试题:webpack介绍和简单使用 一、webpack(模块化打包工具)1. webpack是把项目当作一个整体,通过给定的一个主文件,webpack将从这个主文件开始找到你项目当中的所有依赖文件,使用loaders来处理它们&#x…...