我想研究一些很好的C/C++代码。该代码应:真正的C/C++代码优秀示例的建议
- 良好的风格和结构,展示最佳实践
- 是一个现实生活中的程序(不举例或玩具)
- 不是太大,因此不会需要年龄分析它
- Windows和/或Unix
我知道有开源项目在那里的1000。但我想听听你的建议。
我的Java程序员,我很好奇,在C有多好项目/ C++的结构(文件),类/功能/文件,文档/评论粒度,构建工具等
多的建议是,例如欢迎这是很好的窗口例子,这是好的纯C等
我想研究一些很好的C/C++代码。该代码应:真正的C/C++代码优秀示例的建议
我知道有开源项目在那里的1000。但我想听听你的建议。
我的Java程序员,我很好奇,在C有多好项目/ C++的结构(文件),类/功能/文件,文档/评论粒度,构建工具等
多的建议是,例如欢迎这是很好的窗口例子,这是好的纯C等
我想特别提到memcached.它具有明确的目的相当短的,可读的代码一个很好的例子。
其次,我会建议Apache web server。这是一个运行良好的开源项目,您将从语言,以及一般设计实践和网络/线程两方面学到很多东西。
这里的main file为relayd,这是处理负载均衡和故障转移功能的守护进程。它写得很好,功能齐全,干净的C代码。它足够让你体会到一个“真实世界”的程序,但并不是那么大,以至于无法用一些工作来解决它。非常适合安全,编写良好的网络代码,守护进程等。
谦虚一边,还有一点为我帮了X的tiling window manager。它非常小,但它是一个真正的WM,其他编码器有很高的标准(并且支持我!)...很好的学习基本X的东西。
Samba:一个大的,跨平台(POSIX为主),纯C,非常流行的网络服务器。
Samba有很好的developer documentation,而且代码库本身是非常有组织的很好;我没有任何问题潜入代码中的任何位置,以回答我关于其内部工作的问题或追踪错误。
我去找Lua的实施是相当不错的C源。但是作为一个示例项目,语言有点奇怪。
许多历史来源资料包(包括当前的5.1.4)位于http://www.lua.org/ftp/,并且在http://www.lua.org/source上有一个到当前资源工具包的Web界面/5.1/ – RBerteig 2009-04-22 23:08:34
Diomidis Spinellis在他的书“Code Reading:The Open Source Perspective”,Addison Wesley,2003,ISBN 0-201-79940-5中有一些建议。
也许这本书能对您有所帮助。
Google's Chromium是相当巨大的,但你不必去分析它所有的欣赏它干净,同行评议的结构。另外,这是开发人员环境部署很好的一个很好的例子。
感谢您的建议!我只能将一个答案标记为“已接受”,但您的建议是我将要研究的第三个项目。 – k1udge 2009-04-23 22:31:59
我会投票给nginx的:http://sysoev.ru/en/作为一个很好的C编程风格
至于C++,我会推荐你Qt library sources和KDE's source code及其程序。
它的代码写得很漂亮,应该用C++编程。
K&R有很多很好的真实程序的例子。例如,在第二版的第115页中有echo
命令的两个简单实现。从那里,看看命令是如何随着时间的推移可能会很有趣。例如,GNU coreutils源文件中有一个版本。源自BSD的版本可以在BusyBox源中找到。
看到新版本如何与教科书示例进行比较可能会很有趣。为什么在现实生活中使用的程序更长?有多少代码与新功能相关,以及与处理边缘情况相关的代码有多少?你将如何在Java中编写相同的代码?
这应该是社区Wiki。 – 2009-04-22 21:48:53