关于“正确方式”构建软件的思考

只有西斯绝对
Claudio SchwarzUnsplash上的照片

最近,我一直在思考软件开发中绝对概念的问题,尤其是关于“有正确方法”构建软件的想法。 当我第一次学习时,我自然会专注于确定做某事的正确方法。 但是,不久之后,我就意识到“最佳实践”并不是最佳选择。

我记得这种认识打动我的时候-我是如此困惑,也有点担心。 如果``最佳实践''并不总是最佳选择,我怎么知道我所依靠的其他绝对优势会更好?

好吧,这个笑话在我身上。 我很快开始发现,所有这些“绝对”都不是绝对的。 了解这一点使我感到纳闷……是我之前编写的软件不好吗? 我一直都在做错我的工作吗? (剧透:答案是否定的!)

有时候你只有锤子

如果您仅有的工具是锤子,我想将所有东西都当作钉子来对待是很诱人的。

我们都听说过马斯洛之锤的一个或另一个版本。 它通常用于指出认知偏见的案例,在这些案例中,我们倾向于(很多时候盲目地)依赖于我们熟悉的工具,而不是为工作选择合适的工具。 但是这种逻辑存在一个根本问题。 它假定拿着锤子的人有一个工具箱,其中包含他们需要的所有工具,并且他们已经知道如何使用每个工具。 但是,有时您只有一把锤子。

因此,不,我只有锤子时编写的代码也不错。 使用我拥有的工具,我一直在尽力而为。 在某种程度上,特别是对于我们这些JavaScript开发人员来说,这就是我们所处的恒定状态。这就是为什么我们不能处理绝对值。 在不断增长的环境中,我们必须使用所拥有的工具来应对所面临的问题。

作为新开发人员,目标是学习开发人员需要的所有工具。 但是,如果我们希望升任高级职位,那么这个目标就必须发展-这变成了根据我们所获得的知识和工具做出明智选择的问题。 增长不是在我们严格遵循最佳实践并将其视为绝对准则时发生的,而是在何时何地可以回答解决方案是正确选择的时机。

PS关于那些“最佳”实践…

本文并非试图说最佳实践是错误的,您不应该学习它们。 不过,重要的是要弄清楚“最佳”并不意味着“仅”。 最佳实践是经验丰富的开发人员提供的解决方案的结晶,在大多数情况下,该解决方案可以在87%的时间内(完全统计出正确的点)来解决问题。

作为软件开发的新手,学习的信息是如此之广,以至于首先关注最佳实践是正确的方法。 您有大量的时间来学习这些最佳实践不是最佳答案的案例,并创造出比自己的最佳实践更好的案例。

From: https://hackernoon.com/only-sith-deal-in-absolutes-829ac29627b4

相关文章:

  • 2021-12-17
  • 2021-10-30
  • 2022-02-27
  • 2022-03-04
  • 2021-07-20
  • 2021-04-13
猜你喜欢
  • 2021-06-25
  • 2022-02-17
  • 2022-12-23
  • 2021-06-19
  • 2021-10-19
  • 2022-12-23
  • 2022-12-23
相关资源
相似解决方案