- 博客(704)
- 资源 (51)
- 收藏
- 关注
原创 新手如何学好C语言?
作为一名资深码农,在软件行业也拼搏了十多年,这里跟想学习C语言的萌新童鞋分享下我的个人学习心得!!!在大学时代,我们大二才开始学习C语言(起步有点晚啊),第一次看到那本黄黄的谭浩强老师的《c语言教程》,哈哈哈,就是这本了,满满的回忆啊!开学拿到这本书后,心情很激动,因为以前总是羡慕那种黑客,好像很牛的样子, 抱着好奇的心理随便翻开了几页看了看,全程一脸懵逼, 因为以前从来没有接触过编程...
2020-04-27 13:59:47
2750
3
原创 一个普通的计算机专业专科生,毕业后想拿高薪,大学三年具体应该怎么做?
最近有一位大一的童鞋问我:黄老师, 我现在是一个普通院校的专科,学历含金量并不高,随大流选了一个计算机专业,很迷茫,不知道毕业后能干嘛,但我还是不想虚度大学三年,因为家境并不好,想通过自己努努力毕业能拿一份不错的薪水,能给点建议吗?其实也不是这一位同学向我咨询类似的问题,这几年其实蛮多的普通院校大学生都感到压力,因为没有名校背景,没有较高的学历,大学毕业后,只能进入普...
2020-04-24 16:45:34
4849
原创 全套C C++ 编程视频课程收录
【C语言】小白可以短时间很快入门的《从小白入门C语言视频课程》http://edu.youkuaiyun.com/course/detail/5895然后C语言中为核心知识点,附上指《C语言指针精讲视频课程》http://edu.youkuaiyun.com/course/detail/5896指针是重点《30分钟学会C语言指针视频课程》https://edu.youkuaiyun.com/cou...
2017-10-27 14:58:48
11535
原创 新手如何学好C++?
最近,很多学员都给我发邮件问我应该如何学习C++,如何学好C++?那么作为一个从C语言小白摸爬滚打、入坑无数到成长为如今的高级C++游戏开发工程师、高级C++服务端工程师、项目经理、技术总监、我想跟大家分享下我自己的学习心得与体会!Linus曾说过:“C++是一门很恐怖的语言,而比它更恐怖的是很多不合格的程序员在使用着它”,这个世界上最难的编程语言可能非C++莫属了,呵呵,虽然有点夸...
2017-10-10 09:32:28
22290
6
原创 两大公共DNS服务器 114.114.114.114 与 8.8.8.8解析
8.8.8.8是 Google 提供的全球公共 DNS 服务,于 2009 年推出。其 IPv6 地址为,备用地址为8.8.4.4。如果你是中国大陆普通用户,追求稳定、快速访问国内服务,114.114.114.114 是首选。如果你是开发者、海淘用户或注重隐私安全,且网络环境允许,8.8.8.8 提供更开放、加密的体验。
2025-11-22 15:01:10
528
原创 VS Code去除顶部 冻结的窗口
从Setting中搜索sticky scroll,找到Editor中的取消勾选即可。我们发现VSCode顶部会有一段窗口,不随着滚动条而滚动,占用一部分窗口。
2025-10-26 11:31:28
45
原创 常用的C++压测框架
Nonius 是一个 C++ 的微基准测试库,专注于提供高精度的性能测量工具。它基于 C++11 标准,设计简洁且易于集成,适合需要精确测量代码段执行时间的场景。Hayai 是另一个 C++ 微基准测试框架,特点是轻量级和易用性,适合快速验证代码性能。Google Benchmark是一个广泛使用的微基准测试框架,专门用于测量小段代码的执行时间。它提供了丰富的功能来帮助开发者准确评估代码性能。Celero是另一个流行的C++基准测试框架,特点是轻量级和易用性。它支持基本测试和比较测试两种模式。
2025-10-10 21:07:14
103
原创 C/C++正则表达式PCRE2库
PCRE2是PCRE(Perl Compatible Regular Expressions)库的第二代版本,旨在提供与Perl 5编程语言中正则表达式功能高度兼容的实现。它由Philip Hazel最初开发,并由社区持续维护和改进。PCRE2不仅继承了PCRE的强大功能,还在性能、内存管理、API设计和功能扩展上进行了显著优化。兼容性:尽可能与Perl 5.20+的正则表达式语法和语义保持一致。可移植性:支持多种操作系统和硬件架构。高效性:提供快速的模式匹配和低内存开销。灵活性。
2025-09-21 21:13:27
174
原创 VirtualBox 7 虚拟机的硬盘如何扩大?
底部的滑块可以选择新的磁盘大小,自己调整的大一些!这个时候只是你的硬盘增大了,但是你的系统并未使用!右键- 刚刚新增的磁盘-扩展卷,一直下一步就行了!虚拟机分配的硬盘小了,还想扩大怎么办?接下来,使用自带的磁盘工具。
2025-09-21 00:06:15
154
原创 互联网大厂的QPS性能指标 P90、P95、P99
每秒处理的请求数量。它是衡量系统吞吐能力最直观的指标。如果你的 API 每秒能处理 10,000 个请求,那么 QPS = 10k。双十一期间,淘宝的某些核心接口 QPS 超过百万级。抖音推荐系统的 QPS 可达数百万甚至千万级。“P99 不降,新功能不上。这不是一句口号,而是对用户体验的敬畏。QPS 决定了你能扛住多少流量,P90/P95/P99 则决定了你是否值得被用户信赖。当你下次看到监控图表上那个微微上扬的 P99 曲线时,请记住:那不是一条冷冰冰的数据线,
2025-09-19 10:39:56
1035
原创 git submodule命令详解
Git Submodule 是管理项目依赖和共享代码的强大工具。它通过将外部仓库作为独立的子单元引入,既实现了代码复用,又保持了各仓库的独立性和版本控制的清晰性。
2025-09-17 23:21:33
221
原创 Git回退到某个版本并且删除后面的提交记录
现在有个场景: 希望my项目还原到A提交的版本,并且让gitl后面的B C 提交消失,就像从来没提交过一样!分支将只保留到A提交的历史,B和C提交会从分支历史中彻底消失,就像从未存在过一样。假设某个项目的my分支 按顺序有 A ,B ,C 三次提交。找到A提交的哈希值(可通过。
2025-09-17 00:13:44
397
原创 JuiceFS分布式文件系统
简单来说,JuiceFS 是一个基于 POSIX 的分布式文件系统,它的核心设计理念是“将元数据与数据分离存储数据(Data)存储在对象存储中(如 AWS S3、阿里云 OSS、腾讯云 COS 等)元数据(Metadata)存储在独立的数据库中(支持 Redis、MySQL、TiKV、SQLite 等)客户端通过 FUSE 模块挂载 JuiceFS 文件系统,像操作本地磁盘一样进行读写这种架构让 JuiceFS 同时具备了对象存储的无限扩展能力与本地文件系统的完整语义支持。
2025-09-08 23:31:54
927
原创 大厂的服务器自动扩缩容
大厂的服务器自动扩缩容是一套**“技术工具+业务逻辑+优化策略”** 的综合体系,核心是围绕“稳定性”和“成本”两个目标,通过“监控-决策-执行-反馈”的闭环,实现资源的动态匹配。其演进方向是从“被动响应”到“主动预测”,从“单集群”到“跨区域”,最终实现“零人工干预、极致弹性”的资源管理。对于中小团队,可从基础方案入手(如Kubernetes+KEDA+Prometheus),逐步引入预测、预热等优化策略,最终实现类似大厂的弹性能力。
2025-09-08 23:14:46
986
原创 彻底搞懂解形式化语法 BNF 和 EBNF
数字> ::= "0" | "1" | "2" | "3" | "4" | "5" | "6" | "7" | "8" | "9"这行规则的意思是:“一个<数字>可以是字符 ‘0’,或者 ‘1’,或者 ‘2’,……,一直到 ‘9’。一个数字可以是多位的,比如123。<数字序列> ::= <数字>| <数字> <数字序列>这行规则的意思是:“一个<数字序列>要么是一个<数字>(单个数字),要么是一个<数字>后面跟着另一个<数字序列>(递归定义,实现重复)。比如,123<数字序列>→。
2025-09-06 14:36:24
70
原创 MySQL分布式锁的本质:唯一约束 vs. 行锁机制(结合电商库存实例详解)
唯一约束锁的本质:利用数据库的数据完整性规则,通过“插入即占有”的语义实现互斥。它是一种乐观的、基于状态的锁。行级锁的本质:利用数据库的并发控制协议,通过“锁定资源”的方式阻止其他事务访问。它是一种悲观的、基于资源的锁。如果你希望实现一个通用、可靠、可重用的锁服务,选唯一约束锁。如果你在一个短小事务中直接操作库存行,且希望最严格的串行化,可以考虑FOR UPDATE,但需谨慎处理事务边界。最终建议:对于大多数分布式场景,基于唯一约束的MySQL分布式锁是更优选择。
2025-09-03 19:55:51
107
原创 Bazel 和 CMake 的区别
如果你有一个大规模的项目,并且需要高效的增量构建并行构建跨平台支持,并且项目规模较大、依赖关系复杂,Bazel可能更合适。如果你需要跨平台的构建支持,并且你希望生成适用于不同平台和编译器的构建文件,或者你的项目规模不大,CMake可能是更合适的选择。
2025-09-01 09:45:09
89
原创 十分钟快速掌握 YML YAML 文件
YML是YAML的缩写,是一种人类可读的数据序列化语言。它旨在以一种简洁、直观的方式表示数据结构,如列表、映射和标量值。YML文件通常以.yml或.yaml为扩展名。核心特点:简洁易读:使用缩进和冒号表示结构,避免了XML或JSON中的冗余符号。支持多种数据类型:包括字符串、数字、布尔值、列表、映射等。跨语言支持:大多数编程语言都有YML解析库。
2025-09-01 00:02:38
1513
原创 互联网大厂 git 分支命名规范
在互联网大厂的敏捷开发环境中,成百上千的开发者协同工作于同一个代码库。为了确保代码集成的稳定性、提高开发效率、明确责任归属并支持复杂的发布流程,一套清晰、统一且强制执行的(Branch Naming Convention)是必不可少的。
2025-08-28 00:52:27
207
原创 C++项目单元测试实战
目前,C++社区中有多个成熟的测试框架。为例进行详细讲解,因其功能全面、文档丰富,是工业级项目的首选。功能_场景_期望结果。
2025-08-27 00:16:42
250
原创 ssh-copy-id 命令简化SSH登录
是一个脚本工具,通常随OpenSSH客户端一起安装。它的主要功能是将本地用户的SSH公钥自动复制到远程主机的 文件中,从而实现基于密钥的身份验证,免去每次登录时输入密码的麻烦。 在以下场景中尤为有用:常用选项包括:在本地机器上执行以下命令生成密钥对:按提示操作,通常直接回车使用默认设置即可。生成的私钥为 ,公钥为 。将本地公钥复制到远程服务器:系统会提示你输入远程用户的密码。验证通过后,公钥将被追加到远程主机的 文件中。如果远程SSH服务运行在端口2222:指定特定的公钥文件如果你有多个密钥,
2025-08-27 00:12:02
644
原创 Boost.Asio 库中的 async_read_some用法
是类提供的一个非阻塞(异步)读取函数,用于从已连接的 TCP 套接字中读取数据。其核心特点是立即返回,不会阻塞调用线程,实际的数据读取操作在后台由 I/O 服务(io_context)完成,完成后通过回调函数通知应用程序。
2025-08-23 23:03:57
226
原创 VSCode设置一行太长,换行显示
如果我们在VSCode中一行太长,它会出现滚动条,你如果需要看完整,则需要向右拖动滚动条才可以看到,很麻烦!在 settings里面搜索 wrap,将下面的选项设置为on就行了。实际上可以设置为不显示滚动条,完整显示这行的内容!上面的2,3行,太长则换行显示了!
2025-08-23 13:43:27
580
原创 Boost.Asio io_service 与 线程 的分析
模式优点缺点推荐度1:1 (io_service:线程)简单、安全性能瓶颈⭐⭐⭐1:N (io_service:线程)高并发、高性能需处理线程安全⭐⭐⭐⭐⭐M:1 (io_service:线程)理论可行低效、反模式⭐📌参考资料Boost.Asio 官方文档。
2025-08-10 21:52:48
2438
1
原创 log4cpp、log4cplus 与 log4cxx 三大 C++ 日志框架
受 Java 领域著名日志框架的启发,社区衍生出了多个 C++ 版本的日志库。其中,和是最广为人知的三大实现。
2025-08-10 16:43:29
207
原创 log4cplus 中的常用 Appender
Appender用途适用场景控制台输出调试、开发环境普通文件写入简单持久化按大小滚动防止日志过大按时间滚动按日期归档异步写入高性能、低延迟网络传输集中式日志管理。
2025-08-10 16:34:34
80
原创 C++ 日志 log4cplus 使用与配置指南
log4cplus多种日志级别(TRACE, DEBUG, INFO, WARN, ERROR, FATAL)多种输出方式(控制台、文件、滚动文件、远程 socket 等)自定义日志格式(通过 Layout)配置文件驱动(支持 properties 文件)线程安全(默认启用)// 添加自定义级别(需继承) // 一般不推荐,除非有特殊需求log4cplus是 C++ 项目中一个成熟、稳定、功能丰富的日志解决方案。它通过的设计模式,实现了高度的灵活性和可配置性。
2025-08-09 14:26:27
256
原创 Linux tail 命令详解
场景推荐命令查看日志最后 20 行实时监控日志(生产环境)✅调试某个进程输出脚本中处理输出查看大文件末尾 1MB。
2025-08-07 12:29:41
1012
原创 C++ 双缓冲(Double Buffering)实现无锁读取与高效数据更新
在高并发、高性能的 C++ 应用程序中,如何安全、高效地处理“”场景是一个经典难题。频繁的锁竞争会导致读性能急剧下降。技术为此提供了一个优雅而高效的解决方案。
2025-07-30 16:57:51
165
原创 深入理解 boost::lock_guard<boost::mutex>
Boost 版本主要用于不支持 C++11 的旧项目或需要 Boost 特性的场景。两者的接口和行为几乎一致。:使用互斥量(Mutex)确保同一时刻只有一个线程能访问。两个线程的操作可能交错执行,导致某些增量“丢失”。的出现正是为了解决上述问题。如果不需要阻塞,需要使用。从 C++11 开始,标准库。最直接的方法是手动调用。
2025-07-29 20:28:03
276
原创 深入剖析 boost::unique_lock<boost::mutex>
是 C++ 多线程编程中不可或缺的工具。RAII 安全:自动管理锁的生命周期,防止资源泄漏。极致灵活:支持延迟、尝试、手动加解锁,满足复杂同步需求。条件变量基石:是实现线程间高效通信的必备组件。掌握,你就掌握了构建健壮、高效并发程序的关键钥匙。从简单的临界区保护到复杂的生产者-消费者模式,都能为你提供坚实的支持。记住灵活性是力量,也是责任。善用的强大功能,同时遵循最佳实践,你就能在并发的世界里游刃有余。参考资料。
2025-07-29 20:23:19
364
原创 阿里云对象存储OSS(Object Storage Service)全面解析
阿里云对象存储服务(Object Storage Service,简称 OSS) 是一款海量、安全、低成本、高可靠的云存储服务,可提供99.9999999999%(12个9)的数据持久性,99.995%的数据可用性。多种存储类型供选择,全面优化存储成本。
2025-07-26 14:25:41
1251
原创 局域网 IP地址
局域网 IP 地址,也称为私有 IP 地址(Private IP Address),是用于在局域网内部标识设备的地址。这些地址不能直接在互联网上被访问,通常由路由器自动分配,用于设备之间的内部通信。
2025-07-25 21:42:44
769
原创 四层负载均衡与七层负载均衡详解
负载均衡是一种将网络请求分发到多个服务器的技术,目的是避免单点故障、提高系统可用性、提升性能和实现弹性扩展。物理层(Physical Layer)数据链路层(Data Link Layer)网络层(Network Layer)传输层(Transport Layer)会话层(Session Layer)表示层(Presentation Layer)应用层(Application Layer)负载均衡主要涉及的是第4 层(传输层)和第7 层(应用层)。四层负载均衡工作在OSI 模型的传输层。
2025-07-25 00:30:45
1075
openGL的实用工具包 GLUT库
2011-10-23
UGUI Super ScrollView 最新版2.3.2
2019-02-23
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅