代码之家  ›  专栏  ›  技术社区  ›  RameshVel

设计模式挫折

  •  6
  • RameshVel  · 技术社区  · 16 年前

    我是一个有4年.NET编码经验的开发人员,从来没有在我的Carreer中关注过设计模式。最近,我被邀请参加IT行业的一个大人物的面试,做了5轮面试(解决问题、结对编程、逻辑推理、2轮技术面试),没有提供工作。

    我从他们那里得到的反馈不擅长设计原则,尽管他们对我的技术和逻辑推理能力很满意。这一次让我觉得了解设计模式是解决问题的唯一途径?

    尽管我在编码中从未使用过很多设计模式,但我总是试图实现oops的基本原则。

    我可以使用这些原则来设计一个松散耦合的、开放的、易于增强和维护的系统。实际上,这些都是所有设计模式的核心结构。

    但我的问题是要为正确的问题找到正确的模式。我知道这些知识不会仅仅通过阅读所有以设计模式和实践出版的书籍而获得。这些知识来自于构建不同系统的经验。

    是否有可用的用例 模式问题匹配 …你对学习设计原理的建议是什么?

    干杯

    6 回复  |  直到 16 年前
        1
  •  15
  •   Eric Lippert    16 年前

    虽然我觉得熟悉设计不会有什么坏处 模式 ,我想确保你的问题中没有两件事混为一谈。你说你得到的反馈是你应用设计的能力 原则 很弱,你从反馈中得出结论,你需要学习设计 模式 . 但那是不同的。

    “设计模式”是跨多个不同域看到的循环模式。例如,在建筑中,你可以看到许多不同类型的建筑中的“室内庭院”的图案。在编程中,您会看到许多不同类型的程序中的模式,如“类只能有一个实例”或“粘在上面的一小段代码”。

    但原则不是模式。模式是一种特殊的反复出现的设计;原则是构成设计的基础。 好的 为正在设计的工件的用户。

    例如,JScript语言的设计原则是“原谅小错误”。如果您将日期对象设置为11月31日,它将自动更正为12月1日,而不是给出错误。没有“小错误原谅模式”。使设计容错是一种设计 原理 --当我们可以选择如何设计一个特定的特性时,我们会考虑它与所有的原则(其中一些是矛盾的)的一致性如何,并使用这些原则来指导特性的设计。

    这是 实际上,C的设计原则与C的设计原则相反。设计原则本身并不是好的或坏的;它们是设计好的准则。 对于其目标用户集 .

    在不理解模式的情况下编写代码意味着没有工具箱中的工具,这些工具使执行常见任务变得更容易。编写不理解设计原则的代码意味着编写不一致、难以理解、违背用户需求的代码。这两者都很重要,但却截然不同。

        2
  •  8
  •   Ignacio Vazquez-Abrams    16 年前

    设计模式称为 模式 因为它们在许多独立的程序中一次又一次地出现,而不是因为它们被用来把程序组合在一起,就像正方形被缝在一起做成被子一样。它们可以帮助解决软件问题,但它们本身并不是解决方案。

        3
  •  5
  •   Padmarag    16 年前

    即使你使用C,我还是建议你读一些关于模式的书。第一本是Gof的书- Design Pattens . 然后尝试阅读一些关于企业设计模式的书。当你阅读时,你会发现(或看到)这个模式。这通常是一个“啊哈”的时刻。

    您还可以从自己的代码中识别出相同的代码。了解模式将有助于您进行良好的设计。它有助于了解模式,因为当与模式相关的问题出现时,您将立即回忆起模式。

    您指定的编程原则很好,并且确实遵循它们。然而,他们更多的是在阶级层面上。随着系统设计的深入,模式将更加有用。

    最重要的是-模式为您提供了一个词汇表来与整个团队讨论设计思想。

        4
  •  4
  •   Vinay Pandey    16 年前

    我敢肯定,如果您已经编程4年了,您已经使用了一些设计模式,尽管您可能不知道您已经这样做了。

    设计模式将教您解决某个已经经历的问题,并为其找到解决方案。最后为我们做了记录。

    如果你想学习设计模式,你可以从“头先设计模式”开始,这是一本很好的书。

        5
  •  2
  •   kyoryu    16 年前

    我不确定你真正需要的是设计模式。你可能需要对设计有更全面的理解。如果没有更多的信息,就很难给出更多的建议。

    设计模式(如gof样式)最适合使用特定的编写代码样式。把你的课想象成人,而不是事物。想象一下,这些人然后通过传递笔记、部门间邮件或类似的方式相互交流。

    一般来说,这些人的交流方式以及消息流的模式与GOF设计模式非常接近。与此不匹配的模式通常是编写适合此模型的应用程序所需的“助手”。

        6
  •  2
  •   Pablo Castilla    16 年前

    试试这本书,它很有趣,它不仅告诉你如何实现这个模式,还告诉你何时去做。

    http://www.amazon.com/First-Design-Patterns-Elisabeth-Freeman/dp/0596007124

    推荐文章