当前位置:   article > 正文

个人技术栈提升方向

技术栈提升

C++开发专栏

目前已有2年多开发经验,在即将达到3年经验前,对技术做出梳理,形成框架。注意:

1、只使用1-3级标题标题加粗

2、设置文章链接进行跳转

3、后期整理为自己的已掌握技术栈

一、C++基础语法

对C++相关的语法知识梳理,标注出自己尚不清楚的地方,然后查阅资料,达到了解水平

1、vector源码:

对源码进一步了解,掌握申请一个vector需要多大的内存,vector的内部是怎么实现空间管理,堆栈的使用情况,动态数据和内部的指针结构,vector too long的异常情况

2、堆和栈:

掌握原理,内存大小,掌握数据结构申请的位置和区别

3、异常处理

不同异常的处理,出现的原理,dump机制保存了哪些内容,catch捕获不到的异常操作

4、宏定义与const,

5、static变量的声明周期,

6、函数入口

main函数入口之前的操作,

7、右值引用和左值

8、内联函数与lambda


二、多线程:

掌握线程池、条件变量,原子变量,信号,无锁数据结构,具备开发应用能力,

1、线程池基础

创建,使用,业务场景的优化

1.1 如何创建和使用一个线程池

1.2、线程池的异常情况

a、关闭卡死线程

b、重启异常线程,重新计算业务

c、设立监控线程,观察资源使用情况,线程池的线程运行情况

d、监控线程卡死,监控线程和子线程脱连接

1.3、线程池与CPU内核,系统线程数的关系

1.4、线程切换效率开销和线程数的数量的对比

1.5、除了线程池以外的并发计算方式,

2、条件变量

3、原子变量

4、信号

5、读写锁

操作同一个xml文件,根据业务需求,不断的优化读写锁的范围

6、有锁数据结构

目前在CVRA中实现了一组有锁数据结构,并且根据业务场景分为了读,取出,写入,做到了写入和读取的分离,保障两边业务独立,线程分离不受影响,这个项目待优化的点是,写入完毕时,写入线程获取锁的成功率要远远大于读取线程,让读取线程可能会连续获取不到锁进行等待,既可以采取读取和写入的位置进行优化,也采用无锁数据可优化

同时要掌握不同线程获取锁的顺序

7、无锁数据结构

掌握内存序列


三、还需了解概念:

1、智能指针

内置计数,了解auto,share,weak,unique的内部原理,使用方式,智能指针的侵入式

2、lambda

表达式的深层原理,值捕获,

3、不定参数函数

args,通过列表取值

4、模板

应用方式,从写一些加减操作,再到可以同类业务操作

5、继承与纯虚函数

接口的意义,继承函数的初始化情况,多态的实际应用,虚函数表的寻址

6、结构体,命名空间,类的区别

7、重载运算符

使用方式,使用意义


四、模糊概念

要求掌握概念和使用方式:内存池,windbg调试,符号表,回调函数,静态库链接内容

1、内存池的概念,

2、windbg调试

掌握从dump文件调试的方法,可以定位到具体的函数和堆栈信息,除了windbg的手段

3、windows符号表

使用的符号表,

4、回调函数与注册函数

掌握demo

5、静态库链接

内容,函数地址


五、主流应用框架

要求可以搭建现有框架,进行使用:RPC通信,boost,workflow,protobuf和thift协议,g3log


六、设计模式

包含工厂,单例,黑板,监听,业务场景设计模式,

七、网络通信

TCP/UDP通信,socket连接,https请求,postman端口调试

QT专栏

一、QT安装

二、QT基础

1、继承与重写

2、QT槽与信号

3、QT乱码

4、QTmoc文件

操作系统与内存专栏

一、CPU调度时序

1、哲学家进餐

2、大小核,CPU时序

二、内存模型

1、掌握内存模型

2、内存页分卷

3、内存溢出

4、虚拟内存和物理内存映射

5、内存寻址

6、new出现内存不足

数据库专栏

Linux专栏

一、Vscode调试方式

二、安装部署opencv451

Git专栏

一、Git的安装与使用方式

二、常见GUI工具,

1、sourceTree,

2、git gui

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/笔触狂放9/article/detail/664860
推荐阅读