什么功能应该始终是第三方?

什么提示我的问题是Dare Obasanjo的this post from Jeff Atwood和this post。在我看来,至少有一些地区的第三方功能比自定义代码更好。什么功能应该始终是第三方?

例如,应记录始终是第三方?加密怎么样?还是搜索?

我很期待大家对这一反馈。

编辑:这个问题假定记录,加密和/或搜索是不是你的核心业务。

回答:

这取决于。是否有适合您需求的第三方库,最重要的是您使用的语言和/或API。然后去做。

如果你有理由做自己的版本,确保它不只是“不在这里发明”。另外,如果您没有深入了解市场上五大主流产品,无论您需要什么,都没有完全做好您的工作。很有可能你会发现你正在寻找的东西,即使你不能使用它,你仍然可以从图书馆的描述中学到一些东西。至少你会知道你需要哪些功能,哪些不需要。如果您还将源代码提供给其中一个库,那么这应该是您的优先选择,而不是使用源代码但可能具有更多功能的竞争库。

回答:

我完全同意加密只能由专家尽可能完成。它也应该是开源的,并且经历了很多同行评审。

回答:

,我一直使用第三方控件是图表的区域。必须绘制一批数据并且第三方控制是成熟和可靠的是一个相当普遍的问题。

回答:

我的经验法则是使用(或至少考虑)第三方的任何东西这是你业务的核心目的之外。

加密一直都是这样的典型例子。但它也延伸到其他领域。

发展过程中的故障排除编写日志代码比编写用于监控生产系统的日志代码完全不同。

这是所有关于选择哪些领域发展实际增加价值,您的项目。使用第三方的东西消除了该组件不完整/马车/等的风险。但带来的风险可能不像您需要的那样灵活。

另一个例子是开发一个网站的整个网络论坛,当你可以购买更便宜的解决方案。

回答:

大多数情况下,加密应该是第三方,除非您是销售加密系统的业务。

,这是相当多的阿特伍德先生自己的观点,我的理解是,你的核心业务内容不应该是第三方,所以也许有什么话要始终是第三方...

回答:

我猜答案取决于使用情况。如果您正在为盈利而开发,如果使用组件的成本与开发组件的成本会带来更多利润,那么您可能会购买组件。当您没有内部专业知识来制作它们时,大型组件尤其如此。

一对夫妇的,我已经使用很好的例子是Infragistics的控制和登打士图表。虽然我们可以在内部创建这些内容,但与购买几个许可证相比,时间和失去机会的成本会很高。

当然,有时候我们做这种类型的事情,甚至没有考虑它作为一个组件购买。稍微扩大想象空间,可以包括.NET框架,SQL Server,Windows API等。

回答:

不要忘记,时间是用手写所有东西的大问题,并不是说你不能这样做,而是问题来自你的客户或公司,他们总是希望找到最快的方式来构建他们的系统。但是,如果你有一个非盈利的项目,你可以尝试自己创建的东西。例如,如果你正在编写web应用程序,并且你想设置一些ajax功能,那么你可以使用JQuery或Dojo作为你的ajax工具包,这将需要一些时间来构建这些东西:)

但是你也必须小心当使用第三方库时,您必须信任它们,因为它们可能包含恶意代码,或者它们写得很差,并且会导致您头痛。

回答:

您自己的加密功能?甚至不考虑它,但我认为你可能意味着某种现有功能的包装。

第三方组件的优势: 润通的功能
全面测试(希望如此)
犯规需要时间来发展这样可以便宜(但..)

缺点
是不是真的足够灵活的那下一个尴尬的客户要求
分销可能很昂贵
将你带入第三方公司,当他们发布新的发行版来修复错误时,你会很痛苦
你不学t自己做任务

无论你使用的是第三方组件,都将取决于你的应用和需求。像图表这样的东西会花费很长时间才能正确使用,所以这将是一个很好的第三方组件。

回答:

这个问题没有明确的答案,因为就像软件开发中的其他任何东西一样,它取决于情况。我会说,如果以下3项是真的,你不应该考虑自己做...

  1. 如果它不是您的业务或专业知识的核心。
  2. 如果有人为你写了它,它正在广泛的社区中使用。
  3. 如果它满足您的需求和要求,或者可以很容易地扩展以满足您的要求。

回答:

“哪些功能应始终是第三方?”

无。在讨论基本的工程决策时总会有一个例外或特殊情况来否定对“总是”的过分使用。

此外,决定去第三方应该几乎从来不会根据给定的“功能。“有没有这样的事情,你永远不需要别的地方去的那种类型的功能,如此完美的图书馆。

去第三方是应该的基础上持续第三

  • 成本做出决策第三方与在内部做它的成本
  • 开发时间要求在最后期限内(即它可能是更便宜的内部,但你的开发时间表可能不允许它)
  • 易于集成,调试,维护,升级路径 - 也许你可以开发一些能够“做好工作,但几乎没有”的东西使用VS没有更多的钱的东西,会照顾你几年来测试和验证的
  • 易于/成本 - 安全包是出了名的难以测试以及

不过。有些事情确实很难相信进入内部会更好。例如,你可以在编写OpenGL和DirectX的竞争对手,并且在某些应用程序(科学计算等)中,有很好的理由考虑这样的路径。但总的来说,你不会梦见它。即使它是“免费的”,它仍然是第三方的依赖,并且由于只影响你如何使用这些图形语言的错误,最终可能会导致滑行。

换句话说,一些难以置信的复杂或难以证明/测试的东西存在,应该几乎总是去第三方。安全是另一个。不要编写自己的散列算法,除非你的认证是疯狂的,并且至少有3个出色的商业理由。

但是“什么功能应该始终是第三方?”没有。总是有一个例外。

- 亚当

回答:

凡是是你的核心业务之外的是第三方解决方案一个很好的候选人。您希望花费您的开发时间创建独特(ish)的核心功能,并且无法以具有成本效益的方式购买和使用。

例如,让我们看看web gridview控件。你能自己开发和扩展一个gridview吗?当然你可以,但开发,编码和测试你的网格视图需要花费大量的时间和资源,你可以把它转换成美元。现在,您需要重新发生支持,维护和错误修复的成本。

现在让我们使用我记得在一些mag中读到的任意数量关于美国开发者每小时赚40美元的好处。整个网络控制套件可用于每个开发者许可约800美元。如果您的开发人员花费的时间总计超过25小时,您可以购买整套套件,并花费5个小时进行集成和测试。

现在希望我没有太困惑,但一般的要点是,如果你可以从自己购买它,它可能会节省时间和金钱,而是专注于你不能摆脱自我通常是你的赚钱者。

回答:

如果你可以购买它比你可以建立它便宜,购买功能满足您的业务需求,然后购买它。

回答:

我想说写锅炉板代码,或几乎每次都复制和粘贴的冗余代码应该通过一个库来完成。对我来说,验证代码几乎总是让我犯了愚蠢的错误,因为它很无聊。 Spring.NET对此非常惊人。我很高兴我的老板鼓励我去尝试。

回答:

这个问题是问题的反面:你应该创建什么软件?

这显然很愚蠢。

对于这两者都没有答案,这取决于您的业务需求。你需要为整个互联网建立一个更好的搜索引擎吗?几乎肯定不是。但是如果你是90年代后期的Google,那你就是。第三对第一方只是你在哪个办公室工作的问题,每个第三方都是自己的第一方。

  • 如果你所需要的只是足够好的话:使用现成的东西。

要么你会创造出更低质量的东西,要么就会浪费金钱和精力去做一些无关紧要的事情,或者两者兼而有之。

  • 如果它是您业务的基础:自己构建。

如果你可以更好地构建一些东西,并且你可以用这个更好的东西来建立一个企业,那么做!

回答:

似乎你有所有你需要的答案,但我只想把我的意见和其他人一起扔在这里。客户会向您支付专门为他们工作的应用程序,这通常是他们为什么要找你的原因;他们需要的东西在市场上的任何其他产品中都找不到。因此,您的重点应放在开发他们所需的特定部分。

毫无疑问,您的应用程序也需要做其他事情。也许它需要连接到数据库,或者加密某些行。这是第三方库发挥作用的地方。你不想浪费时间为数据库写一个新的驱动程序,或者一个新的加密方案可能有漏洞,你没有时间去测试。你想使用那些已经存在的,并且经过了广泛的测试和优化。

请记住,您完成的速度越快,他们将不得不付费。这让他们开心,想回到你身边。这也意味着你做更多的事情,因为即使他们支付得少,你也可以参与更多的项目,这意味着更多的钱。

总之,您应该依赖杂项模块中的第三方库。

以上是 什么功能应该始终是第三方? 的全部内容, 来源链接: utcz.com/qa/263136.html

回到顶部