我很想学习Boost。但我想问:
- 努力学习 Boost 有多重要?
- 在加入 Boost 之前应该具备哪些先决条件?
为什么我很想知道 Boost 是因为很多人在 IRC 的频道和 StackOverflow 上都在谈论 Boost。
我认为任何认真考虑将 C++ 开发作为职业的人都应该学习 Boost,并且学好它。一旦你开始认真的编程,你就会意识到这些库有多大的好处,以及它们可以让你提高多少工作效率。它们不仅是跨平台的,而且一旦你开始处理大量数据,数学库尤其会像是上天赐予的礼物。
作为一名游戏开发者,我对有多少人不了解 Boost 感到震惊。我已经向各个游戏工作室的联系人提到过它,不仅它经常不使用(许可或移植它是一个问题吗?)而且很多人甚至没有听说过它。这让我相信,从职业的角度来看,学习 Boost 实际上并不重要,但从个人发展的角度来看,它绝对是至关重要的。:)
之前讨论过:使用 c++ boost 库有什么好处。
至于任何先决条件,您应该熟悉 STL,并且有一些模板经验不会有什么坏处。我总是对有多少 C++ 程序员实际上既不使用 STL 也不使用模板感到惊讶。
这非常重要,尤其是当许多来自 Boost 的库正在进入 C++ 标准时——通过使用 Boost,您可以及早了解标准的外观(shared_ptr
有人知道吗?)。
此外,即使您不使用它们,Boost 库也写得非常好,而且通常看起来很有趣;他们做了一些非常高级的 C++。
我觉得 boost 是一种生产力增强剂,我认为我不会接受在不使用 boost 的 C++ 商店的工作。
语言是一种工具。如果它可以帮助您完成某事,请使用它。
我厌倦了这些宗教。“我应该使用 Boost 吗?如果我不使用 Boost,那是否意味着我不是真正的 C++ 程序员?其他 C++ 程序员会喜欢我吗?” 请。任何关心你是否使用 Boost 或任何其他库的C++ 程序员都是思想封闭的混蛋,你应该与他无关。
相反,去找一个聪明、思想开放的人,他可以告诉你 Boost 和 who-knows-what-other 库如何帮助他完成自己的工作。他甚至会承认有时你不需要那些库。
替代答案:自己重新实现部分 Boost 或 STL 是保持编程能力敏锐的好方法。换句话说,一个因为没有库而不能回退到 C 的 C++ 程序员是一个弱程序员。
Boost 拥有丰富的库,您可以免费获得它。了解 boost 中可用的所有库,以便在需要时可以使用。关于学习,请选择包含在 c++0X 中的库,以便你可以使用它,很快编译器就会支持。关于特定的库,当你需要的时候学习它。
从关于 C++ 的大量关于 SO 的问题(从科学上 :-) 来看,这些问题在“使用 Boost::SomethingOrOther”方面具有最高评价的答案,我会说这非常重要。
吸引我从 C 到 Java 而不是 C++ 的原因是 Java 中提供的大量类。Boost 几乎设法说服我回去,除了我现在深陷在以 Java 为通用语的 Web 服务中。
请记住,boost 只是一组可用于提高生产力的库(停止重新发明轮子)。
众所周知,它们写得很好,并且使用了您可能不会(即绝对不会)自己想到的技术。如果您的目的是查看源代码以学习高级 C++ 技术,那么您将自己淘汰,但我想我会买一本好书。
另一方面,如果您只想使用一些库函数来提高工作效率,请考虑您的选择。你在开发什么,你需要什么样的库?
我们公司有广泛使用 boost 的跨平台产品,但我们也有使用一些 boost 但在大多数情况下依赖于 Microsoft 库的仅限 Windows 的产品。MS 库质量很好,并且有(imo)优秀的文档(MS 成功的一部分在于使 Windows 尽可能易于为第三方开发人员编程)。我特别提到了 MS,因为它们提供了广泛的库,用于提升等多种用途。我们还使用了许多其他更专注的第 3 方库(即在某个领域提供功能的库,例如密码学)。