Design patterns 设计模式到底有多重要?

Design patterns 设计模式到底有多重要?,design-patterns,Design Patterns,设计模式到底有多重要 我认为早期的程序员没有太多地使用设计模式(那些毕业于80年代和90年代中期之前的人)。最近的毕业生是否普遍了解并更多地使用它?在我看来,设计模式的最大好处是它为开发人员提供了一个谈论软件解决方案的通用词汇表 如果我说,“我们应该使用singleton模式来实现它”,我们有一个共同的参考点来开始讨论这是否是一个好主意,而不需要我首先实际实现解决方案,所以你知道我的意思 添加了可读性和可维护性,这些都是常见问题的常见解决方案,而不是每个开发人员都试图以自己的方式一次又一次地解决

设计模式到底有多重要


我认为早期的程序员没有太多地使用设计模式(那些毕业于80年代和90年代中期之前的人)。最近的毕业生是否普遍了解并更多地使用它?

在我看来,设计模式的最大好处是它为开发人员提供了一个谈论软件解决方案的通用词汇表

如果我说,“我们应该使用singleton模式来实现它”,我们有一个共同的参考点来开始讨论这是否是一个好主意,而不需要我首先实际实现解决方案,所以你知道我的意思

添加了可读性和可维护性,这些都是常见问题的常见解决方案,而不是每个开发人员都试图以自己的方式一次又一次地解决问题


非常重要。没有它们,软件也可以生产,但这肯定要困难得多。

它们不是绝对需要的,但肯定是好的大于坏的

好的:

  • 代码可读性:它们确实可以帮助您编写更易于理解的代码,并为您要完成的任务提供更好的名称。
    • 代码可维护性:使代码更易于维护,因为它更易于理解
    • 沟通:他们帮助您在程序员之间沟通设计目标
    • 意图:它们会立即向学习代码的人显示代码的意图
    • 代码重用:它们帮助您识别常见问题的常见解决方案
    • 更少的代码:它们允许您编写更少的代码,因为更多的代码可以从公共基类派生公共功能
    • 经过测试和完善的解决方案:大多数设计模式都经过测试、验证和完善

  • 坏的:

  • 额外级别的间接寻址:它们提供了额外级别的间接寻址,因此使代码更加复杂。
    • 知道何时使用它们:它们经常被滥用,并在不应该使用的情况下使用。一个简单的任务可能不需要使用设计模式来解决额外的工作
    • 不同的解释:人们有时对设计模式的解释略有不同。django看到的示例MVC与RubyonRails看到的MVC
    • 单身汉:我还需要说更多吗

  • 重要不是我会用的词。我会用“有帮助”这个词。为开发人员提供一种描述常见问题/解决方案的通用语言非常有用——在协作环境中更是如此。

    好问题!大约一周前,我并不是在问自己这个问题。我尽可能地使用它们,但我并没有找到很多机会使用它们。我个人认为设计模式的想法很棒。机械工程师和电子工程师不是从头开始设计的,而是应用了人们熟知的模式,这些模式让新手能够站在前人知识的肩膀上。设计模式是朝着正确方向迈出的一步,但还需要更多的步骤。

    我们在80年代使用了设计模式,我们只是不知道它们是设计模式。

    我想你没有抓住设计模式是什么的关键

    在软件工程中,设计模式是软件设计中常见问题的通用可重用解决方案

    因此,设计模式只是一种正式的语言,用于定义解决软件工程问题的通用方法。我认为大多数人在使用设计模式时并不知道它们是。所以这些软件问题的通用解决方案可以追溯到很久以前,他们只是没有提出一种正式的语言来描述他们在做什么


    我认为设计模式很重要,因为它们教给你解决设计模式应用领域问题的方法。

    设计模式是在CS的设计课程中教授的。它们不是必要的,但如果你能找到类似的情况,并有一个经过深思熟虑的解决方案,它们确实很有帮助

    它还允许程序员更容易地进行交流。你们也可以和你们的同事谈论模式。如果你说这里有我的观察者,那么它很容易理解发生了什么

    人们自然会想出适合自己的设计模式的解决方案,但设计模式有助于定义术语和标准想法,这可能会有所帮助


    这些模式没有什么特别之处,最美妙的是,它们是以反复有用的方式被推崇和定义的思想。

    我想说非常

    设计模式的诀窍是了解何时何地使用它们。然后可以为你做各种事情,比如:

  • 使代码更具可读性
  • 使其易于维护
  • 让它更灵活
  • 而且这个名单还在继续
  • 但有时他们可以做一些完全相反的好处再次它知道如何和何时

    你有没有试过用框架锤拉出一条棉条?你可能会喜欢你的框架锤子,但如果你试图这样使用它,它会导致各种各样的问题…


    我认为当你重构你的代码时,它有时会演变成一个特定的模式,或者你可能一直在使用一个模式而没有意识到它

    >我个人认为它们“强”>“极度夸张”和“边际值< /强”。这个主意听起来不错,但当你认真考虑的时候,确实只有少数几个足够普遍和有用的东西值得记住(而且可能记住)

    我得说