奇才可以启动功能。他们也可以混淆你的代码,并且是反YAGNI。
总的来说,你认为奇才更有用还是更有害?
答案 0 :(得分:7)
它们比有害的如果更有用,并且只有在您了解它们生成的代码时才有用。 只有在您掌握了向导试图解决的问题之后,它们才真正有用。 否则,您将在项目后期遇到问题,因为生成的代码 需要在某些时候进行修改。
"The Law of Leaky Abstractions"真的把它钉在头上。
答案 1 :(得分:2)
他们出于某种原因 - 试图让你的生活更轻松。 它们非常有用,可以节省5到10分钟的打字时间。当然最好阅读并确保你理解他们为你写的东西。
如果你在没有理解的情况下使用它们,那么它们可能被认为是有害的,因为它们让你逃避而不是学习你应该知道的东西,但总的来说,我认为它们是一件好事。
答案 2 :(得分:2)
当且仅当你能够从不编辑他们生成的代码时,向导才是好的。在那种情况下,它们本质上是一种非常高级的编程语言。当您改变对向导生成的内容的想法时,可以再次运行向导。
如果你必须曾编辑他们生成的代码,那么奇才是最可怕的恶魔。如果你这样做,后来改变了你在向导中做出的选择之一的想法,那么你被迫在两个非常糟糕的选项之间做出选择。您可以重新运行向导,然后重新应用手动编辑,也可以尝试编辑向导首次创建的样板代码的多个副本。在前一种情况下,您可能至少忘记了其中一个编辑,在后一种情况下,您可能会错过代码中至少有一个位置,这些位置在向导运行时受到您的选择的影响。
答案 3 :(得分:1)
当它们生成一个封装的实体(一个函数,一个类或一组类)时,它们“大多无害”,你不需要修改它们,你通过一个定义良好,设计良好的界面与之交互
另一方面是一个向导,它生成需要扩展和修改的框架代码。如果您以后无法更改某些向导选项而不会丢失编辑,则此操作尤其麻烦。
对于能够自己编写相同代码并使用向导来节省时间的专业人员来说,这些仍然“正常”。然而,当他们习惯于为初学者制作复杂的东西时,他们就是生锈汽车的油漆工作:他们帮助销售你不会购买的东西。
在实践中,它们可能仍然有助于简化平台的采用。但这是一个业务方面,业务方面是否可以证明代码失误是一个开发环境的问题。