常用工具:Vim,GCC,GDB,StarUML,xshell,slickEdit,Docker
CMake+Makefile,Visual Studio,VS Code;
编程语言:c/c++,
熟悉c++面向对象编程思想,封装,继承和多态;
熟悉stl(vector,set,map等常用容器,函数适配器);
熟悉空间配置器(allocate,deallocate,construct,destroy的底层实现);
可以熟练使用类模板和函数模板,可变类型参数和模板的全特化;
熟悉移动语义,RAII思想,智能指针,删除器;
数据结构:熟悉常用数据结构和算法
线性表的增删改查,栈,队列,哈希表,二叉搜索树;
排序:选择排序,冒泡排序,插入排序,归并排序,快速排序,堆排序;
查找:二分查找;
操作系统:熟悉Linux操作系统常用命令;
熟悉Linux文件系统
熟悉Linux下信号的产生与处理;
熟悉进程,线程管理,进程间通信机制,进程池和线程池,进程/线程同步方法;
熟悉Socket网络编程,熟悉3次握手,4次挥手,了解TCP/IP协议,UDP协议;
熟悉IO多路复用模型(select,epoll);
并发服务器模型:熟悉reactor服务器模型;
设计模式: 熟悉pimpl设计模式,熟悉单例模式,了解工厂模式,观察者模式
数据库:熟悉MySQL,Redis常用命令,
了解MySQL(事务,索引,并能够应用libmysqlclient库,HiRedis进行项目开发)
企业内文件共享和协作平台:
项目需求:打造企业内部网盘业务,实现企业内部文件管理功能
文件的上传和下载,版本管理,文件夹和目录管理,文件预览,文件分享和权限管理等)
负责模块:
1. 注册,登录(使用MySQL存放客户端信息)
2. 支持命令行对虚拟路径进行访问(设计数据结构以支持cd等目录切换指令);
3. 文件的上传与下载(支持断点续传,秒传,使用MySQL存放文件信息);
4. 日志系统设计(封装log4cpp,用于记录日志);
5. 超时断开连接(设计数据结构,搭建时间轮模型和记录连接用户信息完成超时断开);
图书信息检索与过滤系统:
项目需求:图书信息检索与过滤系统是一个基于搜索引擎技术的应用,
旨在提供图书信息搜索和过滤功能。
该系统将整合图书信息以满足用户对特定图书的需求帮助用户找到他们所需要的图书资源。
负责模块:
1.搭建Reactor服务器框架
2.生成词典,索引库(用MySQL保存词典库和索引库)
3.关键字推荐(设计关键字推荐策略并完成编码)
4.设计LRUCache(LRU算法)