如何成为linux服务端C开发专家

首先你要成为linux服务端C开发专家,然后你会对C++嗤之以鼻,再然后你写C多了就发现C++还是有很多优点的,你开始重新学习并使用C++,后来你C++写烦了就尝试Go或者Rust,甚至是Java,最后你回归到C,然后你C的写多了有发现C++还是有很多优点的,最后你疯了

想成为linux服务端C++开发专家,只能自己慢慢学,在实践中摸索,没什么快捷的途径,祝大家早日成为专家。

我觉得C++重点在于不要好高骛远,请试着克制自己的欲望,你写出来的东西是螺丝钉,东西要可靠高效简洁明确,不要乱搞,多写UT。

基础:基础说实话没有那么重要,但需要你有不错的基础,基础差一点,可以在不停的锻炼中成长。但需要你有基础,特别是计算机原理相关,比如线程在内核执行和内存模型,还有并行编程。你没有基础很难去理解某些代码。

Linux上的C++开发,游戏用的比较多,因为游戏需要服务器做密集计算,相比java有一层虚拟机,c++在效率上高一些。并且对网络底层方面,支持对更好一些。和c++对客户端程序对接,也更友好一些。

多写:先打下项目基础,多写可以让你c++水平提升,开发调试和服务器模型是基础中的基础,很重要。调试很关键,调试大型c++项目找问题可以让你自省。服务器模型很关键,服务器模型大同小异,但都是c++网络编程的精髓,多去看看别人代码怎么写的。

同样对逻辑,c++在低配置对服务器上就可以实现,java需要更高对配置。在有上千台服务器的时候,服务器成本能有比较大对节省。

专注某个领域与学习:比如游戏服务器,分布式存储,网络分析防火墙,流媒体等等。找一个方向,继续研究下去。

C++CodeStyle:试着让自己的代码看上去更规范一些,codestyle是不可少的,推荐下google的C++codestyle

EffectiveC++:很老的书了,教你一些基础的C++的坑和一些常见的操作。

仿写muduo很不错,但需要实际的项目体验,网络库没有标准,只有合适,实际大项目都是自己造轮子,自己去用自己的网络库写一些实际业务的服务,从而更加深入地去理解c++网络编程的设计。

Linux上的开发,可以直接在Linux上面做开发:vim+gdb+gcc,vim上编辑器,可以有代码提示等。gdb上调试工具,可以打断点,可以看堆栈信息。gcc上编译工具,把源码编译成可执行文件。

muduo是偏向设计性质,很多设计根太花哨,但值得看看,c/c++是一起的,作为一个合格的c/c++服务端开发人员,应该不停去看各种开向服务器的实现,nginxredis网络协程等都是基础。

使用cmake,把各种编译的流程控制起来。cmake跨平台,可以添加各种编译条件。现在被用的很广泛,特别上大型程序,需要编译的东西很多的时候,用起来麻烦的很




转载请注明:http://www.aierlanlan.com/tzrz/2354.html