【问题标题】:How important is Boost to learn for C++ developers? [closed]对于 C++ 开发人员来说,学习 Boost 有多重要? [关闭]
【发布时间】:2010-09-26 09:22:06
【问题描述】:

我很想学习Boost。但我想问:

  • 努力学习 Boost 有多重要?
  • 在加入 Boost 之前应具备哪些先决条件?

为什么我很想知道 Boost 是因为很多人在 IRC 的频道和 StackOverflow 上都在谈论 Boost。

【问题讨论】:

    标签: c++ boost libraries


    【解决方案1】:

    我认为任何认真考虑将 C++ 开发作为职业的人都应该学习 Boost,并且学得好。一旦你开始认真的编程,你就会意识到这些库有多大的好处,它们可以让你提高多少工作效率。它们不仅是跨平台的,而且一旦您开始处理大量数据,数学库尤其会像是上天赐予的礼物。

    【讨论】:

    • Boost(开始)将 C++ 从 C(漂亮的汇编程序)的根源中提升出来,并帮助它达到其他语言已经享受了很长一段时间的可用性(Java/Python/Ruby/Lisp/等) .
    【解决方案2】:

    作为一名游戏开发者,我对有多少人不了解 Boost 感到震惊。我已经向各个游戏工作室的联系人提到过它,不仅它经常不使用(许可或移植它是一个问题吗?),而且很多人甚至没有听说过它。这让我相信,从职业的角度来看,学习 Boost 实际上并不重要,但从个人发展的角度来看,它绝对是至关重要的。 :)

    【讨论】:

    • True Boost 似乎被许多专业游戏程序员视为某种神兽。可惜越来越多的人不使用它。
    • 在我工作的游戏公司,确实是授权问题。虽然 boost 许可证中没有任何内容阻止我们使用它来开发游戏,但我们并没有为未来可能发生的关于其使用的诉讼提供保险。因此,我们实际上得到了反复重新发明轮子的报酬,效果不佳。
    • 我问我的一个游戏程序员朋友,大约一年前他是否使用过 boost,他回答说:“boost?这主要是在用户界面方面,从未使用过。” :P
    • boost 没有任何 ui 库?是吗?
    【解决方案3】:

    【讨论】:

      【解决方案4】:

      至于任何先决条件,您应该熟悉 STL 并且有一些模板经验不会有什么坏处。我总是惊讶于有多少 C++ 程序员实际上既不使用 STL 也不使用模板。

      【讨论】:

        【解决方案5】:

        这非常重要,尤其是当许多来自 Boost 的库都进入 C++ 标准时——通过使用 Boost,您可以及早了解标准的外观(shared_ptr,有人吗?)。

        此外,即使您不使用它们,Boost 库也写得非常好,而且通常看起来很有趣;他们做了一些非常高级的 C++。

        【讨论】:

          【解决方案6】:

          我觉得 boost 是一种生产力提升器,我认为我不会接受在不使用 boost 的 C++ 商店的工作。

          【讨论】:

            【解决方案7】:

            语言是一种工具。如果它可以帮助您完成某事,请使用它。

            我厌倦了这些宗教。 “我应该使用 Boost 吗?如果我不使用 Boost,那是否意味着我不是真正的 C++ 程序员?其他 C++ 程序员会喜欢我吗?”请。任何关心是否使用 Boost 或任何其他库的 C++ 程序员都是心胸狭窄的混蛋,你不应该与他有任何关系。

            相反,去找一个聪明、思想开放的人,他可以告诉你 Boost 和 who-knows-what-other 库如何帮助他完成自己的工作。他甚至会承认有时你不需要这些库。

            替代答案:自己重新实现部分 Boost 或 STL 是保持编程能力敏锐的好方法。换句话说,一个 C++ 程序员因为没有他的库而不能回退到 C 是一个弱程序员。

            【讨论】:

            • 很好的答案!此外,我认为如果你继续使用库来做一些痛苦的事情,比如序列化、网络等,你会错过 C++ 的很大一部分。最后,当你申请职位发布时,他们会问你一些问题,这些问题通常相当于什么那些库确实如此,排序将是一个很好的例子。如果您总是使用库来解决所有问题,您怎么能回答这些问题! ;)
            • 我希望我的程序员了解并积极使用库,而不是重新发明轮子(通常是更糟糕的轮子)。知道何时使用给定的库以及如何使用本身就是一门艺术。我同意记住基础知识也很重要(基础知识是较低级别的东西,并不容易)。
            【解决方案8】:

            Boost 拥有丰富的库,您可以免费获得它。了解 boost 中有哪些可用的库,以便在需要时使用。关于学习,请选择 c+ 中包含的库+0X 以便您可以使用它,并且很快编译器将支持它。关于特定库,您可以随时了解它。

            【讨论】:

              【解决方案9】:

              从关于 C++ 的大量关于 SO 的问题判断(从科学上 :-)这些问题的答案与“使用 Boost::SomethingOrOther”类似,我认为这非常重要。

              将我从 C 吸引到 Java 而不是 C++ 的原因是 Java 中提供的大量类。 Boost 几乎设法说服我回去,除了我现在深陷在 Java 是通用语的 Web 服务中。

              【讨论】:

                【解决方案10】:

                请记住,boost 只是一组可用于提高生产力的库(停止重复发明轮子)。

                从各方面来说,它们都写得很好,并且使用了您可能不会(即绝对不会)自己想出来的技术。如果您的目的是查看源代码以学习高级 c++ 技术,那么请您不要自暴自弃,但我想我会买一本好书。

                另一方面,如果您只是想使用一些库函数来提高工作效率,请考虑您的选择。你在开发什么,你需要什么样的库?

                我们公司有广泛使用 boost 的跨平台产品,但我们也有使用一些 boost 但在大多数情况下依赖于 Microsoft 库的仅限 Windows 的产品。 MS 库质量很好,并且有(imo)优秀的文档(MS 成功的部分原因在于使 Windows 尽可能易于为第三方开发人员编程)。我特别提到了 MS,因为它们为许多用途(如 boost)提供了广泛的库。我们还使用了许多其他更专注的 3rd 方库(即在一个领域提供功能的库,例如密码学)。

                【讨论】:

                  猜你喜欢
                  • 2010-10-29
                  • 2015-01-17
                  • 2011-01-01
                  • 1970-01-01
                  • 2010-09-27
                  • 2011-02-08
                  • 2011-01-27
                  • 1970-01-01
                  • 2010-11-08
                  相关资源
                  最近更新 更多