最近在准备实现一个简单的server后端,这是一个比较陌生的领域,所以也不准备要写得多好,就纯粹尝试一下新东西,顺便完成以前在学校时就有了的夙愿。
现在初步的计划,实现上有以下几个原则:
首先,项目用c++来写,因为语言上比较熟悉,另外就是,结构化,面向对象编程的优点是无法拒绝的,但是我个人十分不喜欢面向对象上太高级的东西,
比如设计模式什么的,我这里要做的事情,逻辑上要求比较简单,所以,我的第一条原则是,凡事尽可能简单,只使用面向对象上的封装以及多态就够了。
其次,可以尝试适当造点轮子,少用第三库,这个想法可能有些难以理解,就我而言,我的出发点却只是想亲自多写些东西,不需要太复杂,但一定要对所写出来的东西,各方面通通透透。所以,不要用智能指针,不要用boost之类的东西,STL也能不用就尽量不用。
最后,要有单元测试及相关文档。这是我的弱项,对它们的心态也不好,正好趁这个机会加强一下,合适的文档到时就当博文发了。
具体实现上,粗略考虑了一下,有以下几个方面:
1) 基于pthread, 封装一些简单易用的线程类,比如说线程,线程池,以及一些用于同步线程的mutex, semaphore等.
2) 服务于多线程,实现一些无锁及有锁的数据结构,以及内存管理等.
3) 实现一个简单快速的无锁Logging, 基于上面一条来实现,lock-free buffer + cas + daemon。
4) 基于socket, 封装一些TCP连接的类,TcpClient, TcpServer,这应该是我最陌生的一部分了。
如果完成的顺利,到时再考虑加上http的支持。
说干就干,现在已经基本完成了第一条pthread方面的编码!事情只要动起来常常没有想像的艰难,希望在未来二三个月内可以把其它的东西完成!
过去的时间里,业余创作太少,更别说拿得出手的,github空空如也,确实也不好看,很多时候,人缺的不是想法,而常常是行动,自勉!