查看原文
其他

这里有60篇硬核文章

程序喵大人 程序喵大人 2022-08-22

# 干了这碗鸡汤

每个人的心里都有一团火,路过的人只看到烟,但是总有一个人,总有那么一个人能看到这火,然后走过来,陪我一起。我在人群中,看到了他的火,我快步走过去,生怕慢一点他就会被淹没在岁月的尘埃里。我带着我的热情,我的冷漠,我的狂暴,我的温和,以及对爱情毫无理由的相信,走得上气不接下气。我结结巴巴的对他说,你叫什么名字。从你叫什么名字开始,后来,有了一切。”


--梵高



一眨眼,做公众号已经一年了。记得去年这个时候,过年期间自己学习整理了一些心得发到了公众号上,之后粉丝也越来越多。


感谢新老朋友一年的陪伴,顺祝大家新年快乐


程序喵整理了这一年写过的所有硬货文章,方便大家系统性学习。


因为自己喜欢并想深耕C++,所以我的公众号基本上都是C++相关文章,刚写公众号时候自己主要写C++11新特性文章,个人认为公众号届关于C++11新特性没有比我介绍的更全面的了,具体有:


一文吃透C++11中auto和decltype知识点

左值引用、右值引用、移动语义、完美转发,你知道的不知道的都在这里

学会C++11列表初始化

搞定C++11新特性std::function和lambda表达式

C++11的模板改进

C++11新特性之智能指针

C++11新特性之线程相关所有知识点

C++11新特性,所有知识点都在这了!


肝完了C++11新特性,我又陆续推出了C++14和C++17新特性系列:


C++14新特性的所有知识点全在这儿啦!

他来了,他来了,C++17新特性精华都在这了


写到这里相信大家对C++20也很感兴趣,我也很感兴趣,因为近期还在推出CPP其它系列文章,请读者们耐心等待,今年C++20系列文章一定会出炉。


侯捷大佬经常说过的一句话:源码之下无秘密,我也喜欢看源码,因此写了一些源码分析文章:


源码分析C++的string的实现

源码分析shared_ptr实现之修订版

想看懂stl代码,先搞定type_traits是关键

C++中glog源码剖析以及如何设计一个高效 log模块


如果大家对哪部分源码感兴趣,欢迎在下面留言或者加我微信私信我。


由于C++开源的线程池和定时器轮子较少,所以自己造了一个简单实用的线程池和定时器分享下心得:


C++线程池的实现之格式修订版

C++定时器的实现之格式修订版


中间还穿插写了一些关于C++重要且有趣的知识点,可能不常见,但是学会了绝对突显你水平的文章,秘密武器系列


使用条件变量的坑你知道吗

虚函数真的就那么慢吗?它的开销究竟在哪里?来看这4段代码!

面试系列之C++的对象布局【建议收藏】

C++数组长度可以为变量吗?

你的c++团队还在禁用异常处理吗?

new[]和delete[]为何要配对使用?

面试系列之指针和引用的使用场景

RAII妙用之计算函数耗时

RAII妙用之ScopeExit

两万字长文,这是我见过最好的模板元编程文章!

如何写出优雅的C++代码

C++为什么非要引入那几种类型转换?

C++面试宝典(纯干货)

关于nullptr这篇文章你一定要看

详细介绍下C/C++时间相关的那些函数

C++代码整洁之道

C++ sqlite3使用指南

如何学好C++


因为自己平时工作中使用C语言较多,C语言又没有类似于C++中string这样可以动态扩容的字符串,所以自己造了个:


C语言如何实现动态扩容的string


剩下的多数都是一些C语言和C++通用的文章,这里程序喵想说,无论是什么语言,底层的基础知识都是互通的,特别是C/C++,想要学好它们,编译链接和操作系统的知识一定要牢牢掌握。


这里我也写了一些,个人认为都是好文章。


Linux以及编译链接相关:


gcc a.c 究竟经历了什么?

程序一定要从main函数开始运行吗?

谈谈程序链接及分段那些事

Linux可执行文件如何装载进虚拟内存

图解Linux是如何进行函数调用的?

Linux 为什么要动态链接?与静态链接的区别是什么?

硬核好文:原来编译链接还有这么多套路

Linux有一个命令你一定要知道

Linux共享库如何进行版本控制

什么时候需要使用volatile关键字

内存对齐之格式修订版


利用CPU特性优化系列文章:


如何利用CPU Cache写出高性能代码,看这些图就够了!

少写点if-else吧,它的效率有多低你知道吗?


操作系统系列文章:


深度好文|面试官:进程和线程,我只问这19个问题

10张图22段代码,万字长文带你搞懂虚拟内存模型和malloc内部原理

操作系统内存管理,你能回答这8个问题吗?

64位系统究竟牛逼在哪里?


调试系列文章:


Linux如何调试内存泄漏

多线程中如何使用gdb精确定位死锁问题

关于GDB你需要知道的技巧


学会了如何盖楼,也要学会如何设计图纸,因此程序喵水了几篇设计模式系列文章:


一文让你搞懂设计模式

设计模式之装饰器模式

设计模式之代理模式

设计模式之原型模式

设计模式之建造者模式

设计模式之工厂模式

设计模式之单例模式


设计模式这个系列个人认为自己总结的不是太好,中间也断更了,讲解设计模式的文章网上实在太多,而且写的也很好,自己目前对设计模式理解的也不是那么深刻,很难写的比他们更好,先不碍大家眼了,要写就写那些能让大家真正有收获的文章。


因工作过程中会使用多种语言,包括Java,经常通过JNI进行Java上层和Native层的交互,所以关于JNI写了两篇对实际工作有意义的文章,相信会对部分读者有所帮助:


JNI编程如何巧妙获取JNIEnv

JNI内存管理之Local Reference 和 Global Reference知识点


作为程序员,光靠代码能力是远远不够的,长远来看,想要谋求好发展,更重要的是代码之外的技能,因此写了一篇代码之外的生存指南,个人认为这篇文章对程序员来说很有益处,但无奈,阅读量很低,强烈建议读者们读一下这篇文章:


这十一条程序员必备软技能,你一定要知道


熟悉我的读者可能知道,我2020年换了一份新工作,入职新公司后一项最重要的工作那就是熟悉团队,熟悉新项目啦:


3分钟,教你快速熟悉新项目!


还有篇科普文章


计算机为什么要从0开始计数?


近期各大公司9-9-6、11-11-6风气盛行,频频爆出各种猝死新闻,因此程序喵还真情实感的写了几篇文章:


看尽了“本分”,我开始相信福报

打工人保命指南


了解喵哥看↓ ↓ ↓:

不装了,摊牌了!



END



如果喜欢这篇文章,请点赞、在看,支持一下哦~谢谢!


您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存