Design patterns 有没有关于设计模式速成班的建议?

Design patterns 有没有关于设计模式速成班的建议?,design-patterns,Design Patterns,我将为我公司的开发人员提供一个关于设计模式的速成课程(在最近遇到一些可怕的代码之后) 我想说的最重要的一点是,它们在长期和短期内都能节省时间(它们确实做到了!)——因为这里的开发人员面临着相当大的时间压力。总而言之,我需要展示每天的好处——让他们早点回家 告诉他们这可能意味着更少的虫子可能不会击中目标。我需要的东西会慢慢吸收的 我可能会做三到四次,每次一小时。你们有什么建议吗?会是一个很好的开始。它涵盖了主流设计模式 可能也有兴趣 如果你不能为每个开发人员买一本书,那就买几本并把它们传播开来。模

我将为我公司的开发人员提供一个关于设计模式的速成课程(在最近遇到一些可怕的代码之后)

我想说的最重要的一点是,它们在长期和短期内都能节省时间(它们确实做到了!)——因为这里的开发人员面临着相当大的时间压力。总而言之,我需要展示每天的好处——让他们早点回家

告诉他们这可能意味着更少的虫子可能不会击中目标。我需要的东西会慢慢吸收的

我可能会做三到四次,每次一小时。你们有什么建议吗?

会是一个很好的开始。它涵盖了主流设计模式

可能也有兴趣


如果你不能为每个开发人员买一本书,那就买几本并把它们传播开来。

模式很难先学会。那时候我经常看书。每年都有另一种模式进入我的脑海。因此,我唯一的建议是,您最多选择两种模式,并在许多示例中使用它来解决什么问题

复合材料是每个人都知道的东西。在这一点上,您可以解释,知道它有一个您可以使用和交流的名称可能很重要。模式中重要的一点是,它使其他人很容易识别你的意图。这些小名字很有帮助


我个人认为模板方法模式非常适合在基于OO的开发中处理。它非常接近OOP应该如何实现,因此它可能也有改进编码风格的好处。

大多数书籍解释模式的方法与我希望看到的完全相反。他们采用一种模式,描述先决条件,然后给出一个例子。我更愿意拿具体的问题来讨论替代方案。突出的一个,就是“模式”——只有到那时才介绍它


选择a)简单和b)最有可能在代码中使用的模式。单身汉很容易学习(因为他们不涉及主题/对象)。另一个有趣的模式是观察者模式。

对于课程制定者来说,你处于一个独特的位置:你了解开发人员,你知道他们正在使用的代码

一种可能的方法是查看一些可怕的代码,并按照“我们如何改进它?碰巧有一种称为Observer的设计模式……”的思路进行操作


这可能最终是和的混合。但是这可能是合适的,因为您正试图接触使用现有代码库的开发人员。

学习模式的问题是,您必须有足够的软件经验,才能在编写或维护的代码中看到模式(通常未命名)。如果您从未编写过观察者,那么阅读模式描述将不容易

我不是说你不应该读模式。但要知道,一个人欣赏模式的能力受到缺乏经验的限制

模式的另一个问题,也是您将遇到的问题,是它们不存在。至少它们的存在比“软件”的存在还要少。模式是思想和概念。它们不是可运行的代码。可运行代码可以实现模式,但不存在相反的模式。你不能只在代码中输入“singleton”,然后突然出现一个singleton。在任何语言中,添加一个“visitor”属性都会突然产生实现visitor模式的所有粘合剂。在各种语言中都有模式的最佳实践和示例,但它们不是您可以放在库中调用的东西

因此,您真正想要做的是教授一些最佳实践,这些实践的核心涉及识别和使用模式。善于观察是一项很难传授的技能(对于所有形式的观察而言)

模式的第三个问题是它们实际上不是编码人员的领域。它们被正式称为设计模式是有原因的。它们是最合适的设计时构造。当然,您可以使用模式来帮助重构现有代码。但总的来说,设计模式是简化设计讨论的行话。这也是为什么没有任何单例代码库的原因。使用单例是一种编写代码的方法,而不是代码本身

所有这些都说明,试图教育您的程序员关于设计模式不会有什么坏处。让程序员思考是一件好事,如果他们中只有一个人对模式有了更多的表面理解,那么你可能会走在游戏的前面。祝你好运。

看看这个网站:
它关注于多种类型的创造性、结构化和行为模式,并给出了结构化、真实世界和.net优化代码的示例。希望这有助于

在我看来,任何教育课程的好开场幻灯片都是:

  • 我们为什么在这里?(该课程的需求在哪里确定?)
  • 我期望学到什么
  • 谁应该上这门课?(目标学生、先决条件等是什么?)
  • 我什么时候可以运用我学到的东西
  • 对你的期望(参与、家庭作业、考试、参加的最低课程等)
  • 对于设计模式,我可以期待一些可视化工具或“”

    我将遵循与本书类似的结构:

  • UML–类图概述
  • OOP–抽象、封装、多态性、继承
  • 内聚与耦合
  • 什么是设计模式?——模式名称、问题、解决方案和后果
  • 为什么设计模式如此难学
  • 为什么要使用设计模式
  • 如何选择设计模式
  • 如何使用设计模式
  • 用示例介绍各种设计模式–在应用设计模式之前展示代码示例,以及它在his中的表现。