熟练掌握C/C++编程语言,熟悉MFC、QT,熟练使用Visual Studio、VSCode、IDEA等开发工具。
熟悉Java、Golang等编程语言,了解Web前端开发,有vue开发经验。
了解Android系统,了解Android四大组件,了解Binder、Handler、AMS等相关知识。
熟悉Linux系统下的常见命令,了解shell脚本,熟悉gdb、cmake,能够在Linux环境下开发。
熟悉常见的数据结构和算法,熟悉STL标准模板库,了解常用设计模式。
熟练使用多线程开发,掌握进程、线程、协程等操作系统相关知识。
熟悉网络编程、熟悉Tcp、Udp协议,熟悉IO模型、IO多路复用、reactor反应堆。
熟练sql语句的编写,熟悉Mysql基本原理,熟悉Oracle,Pgsql、Sqlite等数据库的使用。
了解redis、rabbitmq等中间件的使用和基本原理。
熟练使用svn、git对项目代码进行管理。
TrendDB高性能实时数据库
开发环境:Windows+Visual studio 2017+SVN
相关技术: C++17、boost、MFC、Socket、IOCP、reactor 、内存池、对象池、线程池、无锁队列、redis、 spdlog、berkeleyDB、svn
项目描述:TrendDB是一个基于C++开发、支持高并发读写、高压缩存储的实时数据库,解决关系型数据库的海量实时数据存储要求。支持32种主流工业通讯协议,支持聚合查询、趋势查询,帮助用户实现设备健康趋势预测,支撑六种不同语言SDK快速应用开发。
责任描述:负责TrendDB代理服务的重构。用户通过连接代理服务连接到实时库,代理服务解析用户发送的各种业务请求,比如登录、查询测点信息、读写测点的实时值和历史值等等,解析完成之后发送给响应的处理服务,获取返回值后将返回结果打包发给用户。
项目成果:(1)使用IOCP+多线程实现同时连接数量达到20W。
(2)设计对象池解决频繁申请内存的问题,保证了系统的稳定性。
(3)使用线程池、无锁队列提高性能,每秒处理请求达到万级。
(4)加入收发缓冲区解决粘包问题,控制客户端流量保证了高可用。
基于Golang的分布式文件存储系统
开发环境:Linux+Vscode+git
相关技术: Golang、gin、mysql、redis、rabbitmq、oss、consul、rpc、traefik、docker、k8s
项目描述:一个基于微服务架构的企业级云存储系统,使用gin框架进行开发,实现注册登录、token身份认证,支持海量的文件上传下载以及秒传和断点续传功能,使用docker + k8s的方式容器化运维部署。
责任描述:(1) 负责用户注册和登录服务开发,实现token认证、拦截器功能。
(2)完成上传和下载服务功能开发,实现文件秒传、分块上传、异步上传、断点续传。
(3)完成oss、rabbitmq、redis等中间件的集成和使用。
(4)基于go-micro搭建微服务架构,实现服务注册和发现,实现服务之间的grpc调用。
语音唤醒仿真的项目,用户可以在界面中添加语料文件,选择仿真的项目,系统会将测试唤醒的命中率通过报告反馈出来。
工业数据采集系统,支持传统的工业协议对工业现场的数据进行采集,采集完成的协议可以通过TCP等方式进行转发出去