1.熟练使用C/C++,有扎实的语法功底
2.熟悉多线程,互斥量,条件变量等同步机制, 熟练使用boost.thread,boost.threadpool
3.熟悉进程间通信,如共享内存,文件映射进程互斥,文件锁等同步机制, 熟练使用boost.interprocess
4.熟练掌握网络通信,TCP/IP协议,能够熟练使用boost.asio 和 C#下使用rabbitmq进行开发
5.熟悉sqlite,mysql等关系型数据库的开发使用,使用过sqlitecpp
6.了解图像处理,如使用raw图计算Yshading或Colorshading,能够使用opencv进行开发
7.熟练使用C++ STL,熟悉数据结构
8.熟练使用MFC和VC开发工具
9.熟练使用Visual Studio及掌握BUG调试方法
10.了解嵌入式,使用Freescale K60芯片开发过智能小车寻迹项目
项目一 : 消息发布订阅插件
功能描述:使用C#语言,RabbitMQ 做消息中间件,开发一个高效、稳定、低延迟的c# 推送订阅插件,并封装成dll。dll可在C# UI或Console项目中引用。
dll功能:
1,可作为消费者订阅消息,可作为生产者发送消息,或同时作为消息生产者和消息消费者。
2,提供消息定义模板,使用者可自定义消息结构。dll提供消息体解包和组包功能。
3,消息体结构:消息类型,消息长度,主题等等。
4,按消息主题(topic)进行订阅、退订。
5,以下几种情况,返回通知,通知通过回调函数返回。
(1).建立连接成功(或失败)
(2).断线成功(或失败)
(3).订阅或退订成功(或失败)
(4).重复订阅或重复退订时的错误消息。
(5).成功建立连接后方可进行订阅或退订,未建立连接的状态下订阅或退订返回异常通知。
6,支持一对多(一个生产者多个消费者)或多对多模式(多个生产者多个消费者)
7,消息订阅:成功订阅后收到消息通过回调函数收到消息。
8,异常处理:
(1).断线状态时发送消息返回失败。
(2).网络断开后支持自动重连。
具体方案实现及问题:设计回调函数借口,深入了解rabbitmq的使用后,根据网络状态来调用用户的回调函数,性能方面则研究相关书籍,采用异步处理方式,增加消费者和channel的方式,提升性能
项目二 : 网络数据收发DLL
使用c++语言开发:
1.写一个dll,server端,client端可收发消息,想收消息的人可以调用这个dll;
2.dll里包含一个类,通过实例化这个类和server端建立连接;
(1)连接后调用on_connect函数,然后发一个初始化信号给server端,表示可以开始收消息;
(2)client端受到回应后调用on_init。开始收消息后和服务端发送心跳;
(3)如果5s内收不到服务端的心跳就收到断开的消息,即调用on_disconnect函数;
(4)收消息时调用on_message函数;
(5)这些函数使用网络异步回调的方式,并且主线程调用这些函数不阻塞主线程。
3.写成的这个dll要用c#可以来调用。整个软件包含服务端和客户端两部分。
4.服务端选用linux系统或者windows系统,客户端采用windows系统。
具体方案实现及问题:经过筛选库,最后使用boost.asio库实现网络异步传输,在windows和linux上编译boost环境,随后根据用户需要设计回调函数接口,因要满足C#调用,在数据结构的选择上也选择两者通用的数据类型。