Linux后台开发直接用系统api吗

1 据我所知,腾讯内部做后台通信框架的,既有用ACE libevent等现成框架的,也有直接基于epoll封装的。这里涉及到两个不同的选择依据,一个是早期团队的习惯,更重要的是业务对性能等特性的不同要求2 无论用什么底层通信框架,在做实际开发中,一般都会随着团队经验积累及代码沉淀,形成一套内部使用的框架。这样的好处是,既屏蔽了使用通用性极强的通用框架的复杂性,也对代码有了最大程度的把控,把代码带来的潜在风险尽可能降低3 在前两点的背景下,一个新人到了一个成熟团队,他的工作最先很可能是基于团队专用框架的开发维护,而不是让你自己写底层。作为一个新人,你需要的是更快更好的去理解前人积累下来的经验。而如果更好做到这点,我想起我入职培训时做过的一次练习——自己做一个类似的框架,自己尝试去踩一踩其中的坑。真心觉得,自己没踩过坑,你不会知道别人那些看起来怪异的做法,是多么的精妙。
■网友
其实userland的API已经够简单的了,绝大多数用不着第三方库来再包装。要包也是自己来包比较好
■网友
七月到九月,照着 UNP 做参考,够写一点有趣的东西了。闭眼抄书肯定是没有太多意义的,创造问题解决问题才有意义。后台开发用不用库,用什么库,很大程度真的是某个团队 / 项目种子人员的个人选择而已。libevent 针对 I/O 和信号,libev 支持更多一些事件类型,ACE Reactor 结合 ACE 剩余部分可以处理非常多的情况并且绑定了设计模式。选择这些库,很多时候并不是完全针对那极少的性能差别,而更多是工程方面的考量。ACE 是 C++ 的,巨大复杂,很难调试;libevent 一样有许多自己的 bug。如果一个团队更相信自己的人员,那么直接基于 epoll 之类的 API 进行开发一样是一种选择。但如果你现在 UNP 还没读熟悉,纠结这些没多少意义。在用任何这些库之前,都要熟悉 UNP 中的大多数内容,包括 select / poll,然后熟悉 Linux 的各种 API 包括 epoll。没有这些基础,用那些包装库都是自找苦吃。@李遥 你试试整合 epoll, pthreads 和信号……你就知道为什么有那么多人要去用 libevent / ACE 之类的东西了。
■网友
人家不是说了么,基本上都不用“第三方”库。系统自己的库,比如说如果涉及到系统底层一点的应用,怎么绕过glib c啊?
■网友
一般都是用epoll封装的。


    推荐阅读