用C/C++编写数据库软件

4
我已经自学网页开发几年了,通常使用C#/ASP.NET、Python和PHP。但我想尝试通过做一些更高级的事情来提高我的技能。我想尝试构建像SQLite这样的数据库程序,或者在C/C++中构建一个迷你MySQL之类的东西,只是为了练习和学习新的东西。
编辑:我的项目不必是关系型数据库管理系统(RDBMS)。它可以是像简单的Web服务器之类的东西。只是为了看看我是否更喜欢那种类型的工作而已,而不是网页开发。
然而,我似乎找不到任何教授这种东西的书籍或在线教程。有人知道我可以在哪里找到相关资源吗?我有一本教授语言本身的C语言书,但当我尝试构建特定的东西,如数据库引擎时,我会更好地思考事物。感谢您的任何帮助。

2
这个问题不是很清楚。你是在寻找一个DBMS书籍吗?如果你正在寻找实现细节,SQLite的源代码可在下载页面上获得。 - styfle
2
我想尝试构建一个像SQLite的数据库程序 - 你想设计和构建一个关系型数据库管理系统吗?为了编程实践?建议您选择一些不那么雄心勃勃的项目。 - Mitch Wheat
1
我已经获取了MySQL和SQLite的源代码。但是我正在寻找一些教导为什么以某种方式执行某些操作比其他类型的操作更有利于性能、模块化、可移植性等方面,或者如何以特定方式处理不同方面以实现特定标准的东西。 - vt-cwalker
@MitchWheat 不一定非得是关系型数据库。甚至像nginx或迷你Apache这样的简单Web服务器也可以。我只是尝试不同的东西,看看在编程方面我最喜欢做什么。 - vt-cwalker
完全在话题上,那是一个很棒的头像。 - Keith Layne
@keith.layne 哈哈,谢谢。那是我上学的地方。尽管他们今年表现非常糟糕,但希望明年亨特和布雷都会再次参赛,我们会做得更好。 - vt-cwalker
5个回答

6

关于文献,我可以推荐《C++加速学习》或《C++思维导图》。同时,我最近在工作的书架上找到了《代码大全》,它与人们所说的一样好。这是一个非常实用的通用建议。

此外,您应该区分C和C ++,尽管它们看起来很相似,但实际上它们是两种不同的思考方式。现在的C++11使这些差异变得更加重要,因为C++不仅仅是带有类的C。


对于《代码大全》给予+1的推荐。话虽这么说,它更多地是一本“成为更好的程序员”的书,而非Corey所要寻找的“学习C语言”的书籍。此外,把C和C++分开也值得肯定(+1)。 - Taylor Price
哦,我绝对知道它们之间的区别。哈哈,我只是在考虑可能使用两者来构建项目。但还是谢谢你的建议。我一定会查看所提到的内容。哦,@TaylorPrice,我实际上更想找一种“学习如何像更好的程序员一样思考”的书籍。我有C和C++的书。如果你知道更多的可以列出来的“这就是你应该如何思考一个项目”的参考资料,我需要更多这方面的参考。谢谢! - vt-cwalker
我的初步理解是,《代码大全》是一本非常好的书!我的旧公司要求每个新开发者在他们入职的第一年内阅读它。 - Taylor Price

5

为什么不尝试一些更小的项目,比如光线追踪器?这是很容易编写一个简单版本来生成漂亮图像的,并且你可以随时回来补充功能。


也许这不是原帖作者想要的,但我喜欢这个想法,点赞。 - René Nyffenegger

5
你可以阅读Zed Shaw的书学习C语言的困难之路。他使用MakeValgrind教你如何编写C语言。后续的练习要求你编写自己的软件包安装程序和一个小型Web服务器。最重要的是,这本书是免费的。

更新了已损坏的链接


1

收藏此资源,http://nptel.iitm.ac.in/courses.php?disciplineId=106

这通常是深入了解各种算法、数据库管理系统、图形和实时系统的良好/大规模起点。 完整的视频课程/讲座或书面课程材料。 一个扩展知识或获取想法的地方。

例如,您可以查看有关DBMS开发的视频讲座-> http://nptel.iitm.ac.in/video.php?subjectId=106106093

...或者为什么不看这个关于人工智能的视频?-> http://nptel.iitm.ac.in/video.php?subjectId=106105077

没有C / C ++示例,但它们会深入研究每个部分、模式、策略和算法。

...唯一令人遗憾的是大多数教授讲的英语非常糟糕。


0

在 @MitchWheat 说即使编写像 SQLite 这样的东西也相当雄心壮志之后,我选择尝试编写一个小型 Web 服务器,发现了 this post,其中包括一些相关链接。感谢您的建议。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接