穹顶灯打不出阴暗面
最佳实践是软件开发的基础(有人告诉我们)。 每个开发人员对软件开发过程,体系结构和编程都有自己的看法。
这些意见基于教育,个人经验以及其他软件开发人员的经验。
这些意见也被称为最佳实践,每个软件公司都有它们。
最佳实践是件好事吗? 不必要。 我认为最佳实践的弊端常常被忽视。
当心黑暗面
最佳做法本身并不危险。 当它们被滥用或误解时,它们将变得危险。 可悲的是,这很普遍。
以我的经验,滥用最佳实践的三种最常见方法是:
最佳实践被视为“银弹”
当最佳实践被视为最终解决方案时,不允许质疑它们。 如果我们不能质疑特定最佳实践背后的原因,那么我们将无法理解为什么它比其他可用解决方案更好。
这意味着我们失去了学习和改善当前状况的机会。
如果我们生活在一个静态的世界中,这将是一个有效的策略。 当然不是这样。 我们都知道,新技术正在Swift发展。
我们确定要被抛在后面吗?
最佳实践用于办公室政治
在这种情况下,将使用最佳实践来增强特定群体的利益。 两种最常见的方法是:
首先 ,最佳实践用于确保高级开发人员和建筑师的地位和权威。 整个组织必须使用高级开发人员和架构师熟悉的技术和编程语言。 所有新技术和编程语言都因为太年轻和不成熟而被关闭。
其次 ,将最佳做法用作营销工具。 他们的目的是给人一种幻想,即该组织正在遵循良好的软件开发实践。 拥有外观良好的外观是唯一重要的,因为
- 它使公司在客户眼中看起来不错。
- 这使中层管理人员在上级领导面前看起来不错。
但是,现实情况是,没有人关心这种情况。
好吧,这并非完全正确。 开发人员可能会在乎,但他们常常被要求弯腰为团队争取一个。
办公室政治的问题在于,它会激励所有无法从中受益的人。 这听起来对我们来说是一个值得的目标吗?
最佳实践鼓励工程
有时,最佳实践会导致诸如架构,设计模式和重用之类的概念受到重视。 遵循这些原则执行的程序(或组件)通常是过度设计的怪兽。 由一组建筑师设计的软件如此复杂,真是令人惊讶。
这种情况是由于无法理解可重用组件(框架,库或服务)与应用程序之间的差异而引起的。 区别很明显:
- 在创建可重用组件时,我们必须将其设计为可重用。
- 在创建应用程序时,我们必须专注于该应用程序的需求。
过度设计可能永远不会重复使用的代码是没有意义的。 但是,如果我们认为在每种情况下都应使用相同的设计原则,就会发生这种情况。
那我们该怎么办?
首先,我们应该做好我们的工作。 如果妨碍了最佳做法,则我们不应遵循这些最佳做法。 这听起来可能有点激进,但是我们应该理解,最佳实践的整体思想是找到开发软件的最佳方法。 因此,遵循没有帮助我们实现该目标的最佳实践是没有意义的。
我们必须了解,没有灵丹妙药。 这意味着没有一种方法可以适用于所有情况。 我们大多数人都理解这一点,但是由于某些原因,当我们听到最佳做法一词时,我们会忘记这一点。
我们不应将最佳实践视为灵丹妙药,而应该理解,最佳实践是一种在特定前提条件成立的情况下有效的方法。 如果我们了解这一点,很明显
- 我们必须很好奇,不断寻求更好的解决方案。 问题是我们每天都在学习新事物。 今天有意义的最佳实践下周可能会变得愚蠢。 我们必须记住,没有什么可以永远存在。 甚至没有最佳实践。
- 当最佳实践没有任何意义时,我们必须勇于挑战。 我们可能错了,但是如果我们不挑战最佳实践,我们将永远不会知道真相。 我们真的可以忍受吗?
- 我们不应遵循未正确解释的最佳做法。 相反,我们应该要求更好的解释。 如果没有给出,我们应该忽略它。 只有傻瓜才采用他不理解的方法。
最后,最佳实践只是意见。 确实,有些意见比其他意见更有分量,但这并不意味着这些意见不能被证明是错误的。 我认为,我们有责任推翻尽可能多的最佳做法。
为什么?
它帮助我们找到更好的方法来完成工作。
翻译自: https://www.javacodegeeks.com/2013/08/the-dark-side-of-best-practices.html
穹顶灯打不出阴暗面