我正在寻找小到中等大小的程序/项目,这些程序/项目显示了在Linux上用C开发应用程序的良好现代实践.我想通过实例学习并好奇现实世界中的事情是如何完成的.
XMMS2 代码库相当年轻,是编码风格以及以现代但非常干净(它必须在很多平台上构建)方式使用 C 的技术的一个很好的例子。
它包括具有跨平台通信的客户端-服务器模型、服务器内部的面向对象系统、复杂的插件系统、线程以满足声卡的实时需求。这些插件还提供了合并第三方库的好例子。配有导出的 API,其中还提供多种语言绑定(向您展示如何操作)。
您将看到 xmms2 代码中涵盖了许多不同的现代问题。代码库非常干净,到处都有一些“旧代码”,但仍然写得很好。
它还使用复杂的构建系统,开发人员严重依赖 git 的功能。因此,除了纯代码本身之外,还有更多东西需要学习。如果您对代码有任何疑问,IRC 社区很活跃并且很有帮助。
缺点:不小。但它相对模块化,特别是服务器组件是不同的对象,因此您可以选择其中涵盖特定问题的部分并从中学习。或者甚至尝试编写自己的客户端、插件等等。