随着我成为一名更好的开发人员,我发现我的许多设计技能更多地来自于直觉而非机械分析。这很棒。它使我可以阅读代码并更快地体会到它。它使我可以轻松地在语言和抽象之间转换设计。它使我可以更快地完成工作。
缺点是,我发现很难向队友(更糟糕的是,管理层)解释为什么特定的设计是有利的。特别是在最佳实践方面落后于时代的队友。“这种设计更具可测试性!” 或“与继承相比,您应该更偏向于组成。” 直奔他们的脑袋,进入我的兔子洞,试图让所有人都了解软件工程的最新进展。
我当然会在实践上做得更好,但是与此同时,这会浪费很多时间和/或糟糕的设计(这将导致以后浪费时间进行修复)。当好处对听众来说并不完全明显时,我该如何更好地解释为什么某种设计会更好?