加强宣传 - 需要帮助 [英] Boost advocacy - help needed

查看:12
本文介绍了加强宣传 - 需要帮助的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

可能的重复
是否有理由不使用 Boost?
使用 C++ BOOST 库有哪些优势?

好的,高级问题是请向我提供您认为最有效的论据,说明为什么整个 Boost 或其中的某些特定部分应该在我们公司的系统上编译并在软件工程标准中得到认可".

OK, the high-level question is "Please provide me with what you consider to be the most effective arguments of why entire Boost, or some specific parts of it, should be compiled on our company's system and endorsed in software engineering standards".

我需要的详细信息:

  • 很乐意接受积极的论点(为什么安装),以及对我可能听到的可能反驳的反驳建议(请参阅下面的问题上下文).

  • Would gladly accept both positive arguments (why install), as well as proposed rebuttals of likely counter-arguments I might hear (see question context below).

应该针对技术软件工程团队成员和/或非常技术高级管理人员提出论点 - 换句话说,对于后者,论点的细节可能/应该技术上,但论点的重点应该是这将如何使 X 公司赚钱/节省 X 公司的钱,而不是将 Y 公司的钱作为将其添加到我们的工具集的成本".

Arguments should be made aimed at both technical Software Engineering team members and/or very technical senior managers - in other words, for the latter, the details of the argument may/should be technical, but the thrust of the argument should be "how would this make/save the company X money vs losing the company Y money as a cost of adding it to our toolset".

问题的背景:

  • 我是一家拥有数百名开发人员的公司的一名开发人员,其中许多人从事 C++.

  • I'm a developer in a company with several hundred developers, many dosens of whom do C++.

我有幸从我心爱的 Perl 开发点重新分配到一个团队,在那里我也从事 C++ 开发.到目前为止,我发现了许多我可以在 Perl 中轻松完成的事情,而在 C++ 中却很难/很麻烦(以 foreach 循环为例),每当我遇到其中一个时,50% 的答案可能最终是你不能在标准 C++ 中做到这一点,但你可以用 Boost 做到这一点"

I had the (mis)fortune of being reassigned from my beloved Perl development spot to a team where I am also doing C++ development. So far I found numerous things that I could easily have done in Perl that are very hard/cumbersome to do in C++ (foreach loop as an example), and anytime I hit one of these, the answer 50% likely ends up being "You can't do this in standard C++ but you can do it with Boost"

我们的工具包包括一些旧的 RogeWave 库,以及非常有限数量的 Boost 库(例如,没有正则表达式,没有 foreach),非常古老.

Our toolkit includes some legacy RogeWave libraries, and VERY limited number of Boost libraries (e.g. no regex, no foreach), of very old vintage.

任何开发都必须使用由软件工程团队编译和审查的库.这是一条硬性规定.

Any development must use libraries compiled and vetted by Software Engineering team. That is a hard and fast rule.

SE 团队出于各种原因对添加新库有些抵触(例如这样做的努力;与 RogeWave 的功能冲突,例如 RegEx;安装和使用任何新软件的风险;成本教育开发人员等...).如果有足够的业务需求或主要令人信服的成本/收益比率论点,他们会添加库,但他们的门槛非常高.

SE team is somewhat resistant to adding new libraries, for a variety of reasons (e.g. effort to do this; functionality conflicts with RogeWave, for example for RegEx; the risk of installing and using any new software; cost of educating developers, etc...). They will add the libraries if presented with sufficient business need or majorly convincing cost/benefit ratio argument, but they have pretty tough threshold.

因此,我正在寻找示例,说明 Boost 的哪些部分非常出色(具有准确的成本/收益估算),安装它们对于软件工程来说显然是值得的.

So, I'm looking for examples of which parts of Boost are so wonderful (with exact cost/benefit estimates) that installing them would be an Obviously Worth It Effort for Software Engineering.

预先感谢您提供任何想法/建议/示例.

Thanks in advance for any ideas/suggestions/examples.

请不要将这个问题标记为主观,因为我正在寻找可衡量的答案,而不仅仅是美妙的感觉:)

Please don't mark this question as subjective as I am looking for measurable answers, not merely wonderful feelings :)

推荐答案

在过去十年中,无论我在哪里工作,当他们拥有自己的智能指针类时,我都会在其中发现错误 - 通常在几周内.而且,不,我从来没有去看它,希望能找到错误.

Wherever I worked in the last decade, when they had their own smart pointer class, I found bugs in that - usually within a few weeks. And, no, I never went and looked at it hoping to find errors.

我养成了从 TR1 智能指针提案:

Boost 开发人员发现共享所有权的智能指针极其难以正确实现.其他人也做出了同样的观察.例如,Scott Meyers [Meyers01] 说:

The Boost developers found a shared-ownership smart pointer exceedingly difficult to implement correctly. Others have made the same observation. For example, Scott Meyers [Meyers01] says:

STL 本身不包含引用计数智能指针,编写一个好的指针——一个一直正常工作的指针——非常棘手,除非你必须这样做,否则你不想这样做.我发布了代码对于 1996 年更有效的 C++ 中的引用计数智能指针,尽管它基于已建立的智能指针实现并将其提交给经验丰富的开发人员进行广泛的发布前审查,但多年来,一小部分有效的错误报告已经涌入.引用计数智能指针可能失败的微妙方式的数量非常多."

"The STL itself contains no reference-counting smart pointer, and writing a good one - one that works correctly all the time - is tricky enough that you don't want to do it unless you have to. I published the code for a reference-counting smart pointer in More Effective C++ in 1996, and despite basing it on established smart pointer implementations and submitting it to extensive pre- publication reviewing by experienced developers, a small parade of valid bug reports has trickled in for years. The number of subtle ways in which reference-counting smart pointers can fail is remarkable."

这加上对我发现的错误的详细分析通常使我能够将 boost 库合并到代码库中.:)

This plus a detailed analysis of the bug(s) I found usually got me the job of incorporating the boost libs into the code base. :)

这篇关于加强宣传 - 需要帮助的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆