设计模式???
我想你在编程之前就听说过这个名字……
是的, 如果你是初学者, 则可能在编程之前就听说过这个名称, 或者, 如果你已经在软件开发上花费了几年, 则可能在整个职业生涯中都使用了这个名称, 但是你知道这对于当今的开发人员来说是必不可少的技能吗?你是否知道在编程中, 如果你不了解该术语及其用法, 那么你可能会在生产级别遇到一个大问题, 不仅你自己, 而且其他开发人员的生产率也会受到影响?如果你仍在思考这个技术性单词及其在编程中的重要性, 那么让我们从头开始,
设计模式
是什么以及为什么它在发展中很重要。
首先, 让我们考虑一个现实生活中的例子, 并考虑你经营一家餐馆的职业。开餐馆并不意味着只准备食物并将其提供给顾客。你还需要照顾美味的食物, 干净的盘子, 服务员, 厨师或其他员工在你的餐厅中面临的常见问题。作为餐馆老板, 你还需要针对这些一般性问题提供解决方案。
在软件开发中也会发生同样的事情。作为初学者或经验丰富的程序员, 如果你认为构建软件只不过是使用一种编程语言并应用某种逻辑, 那么这在生产级别将无法正常工作, 你将面临很多问题。设计模式基本上是编程模板, 可为你的代码提供适当的流程, 链接和结构。它是一种交流工具, 或者你可以说是经验丰富的软件开发人员提供的通用解决方案, 用于解决开发人员在软件开发阶段遇到的常见问题。
作为软件工程师, 你的目标不仅是编写一堆代码, 而且还应该降低复杂度并照顾好代码可重用性也一样你将被期望编写干净, 优雅, 无错误且易于管理的代码, 以便其他开发人员可以理解, 以后如果需要进行任何更改, 则可以对整个项目产生最小的影响, 并且设计模式在关键的角色。
软件工程的目的是控制复杂性, 而不是创建复杂性。 -帕梅拉(Zamel)
在软件开发中的重要性:学习设计模式可以节省大量开发人员的时间。我们可以从以下几点总结其重要性...
- 它使代码可重用, 无错误且干净。
- 加快开发过程。
- 更改或修改变得更加容易。
- 减少开发人员在开发过程中面临的常见问题。
- 提高面向对象的技能。
- 易于理解的代码流。
- 更少的代码, 因此易于维护。
好的, 我明白了……但是我应该从设计模式中学到什么, 并告诉我一些好的资源来学习它:
放松!
如果你找到了很好的资源和指导者, 则学习设计模式不是火箭科学。请记住, 要成为一名优秀的软件工程师, 你确实需要具备以下方面的知识:
设计模式
以及如何根据要求在项目中智能地使用它们。现在, 下面给出了在设计模式中将其用于软件开发时应了解的所有内容。
- OOPs概念。
- 核心设计原则, 例如SOLID, GRASP, DRY, KISS等。
- 设计模式的基本原理。
- 不同类型的设计模式。
- 现实生活中的示例以及在项目中使用设计模式。
学习面向对象设计和设计模式的资源
现在, 如果你正在寻找最佳资源, 以向经验丰富的行业导师学习上述所有概念, 他们可以为你提供有关设计模式的很好指导, 那么
极客
开设有关面向对象的设计和设计模式的完整课程, 你将在顶尖软件公司工作的行业指导人员的正确指导下学习上述所有概念。
如果你是编程的初学者或在职的专业人士或大学生, 并且针对诸如Google, Microsoft, Amazon之类的顶级产品公司, 并为
面试
那么本课程将为你提供一切帮助, 并让你掌握
面向对象设计和设计模式.
课程的主要特点
本课程为期6周, 你将学习设计模式的基础知识, 不同类型的设计模式, OOPs概念, 设计模式的实际示例, 面试准备以及对对象有良好命令的所有重要内容, 面向设计和设计模式。
- 本课程完全由Microsoft, Adobe和类似Amazon的顶级软件公司的开发人员设计和审查。
- 模拟面试并提供适当的反馈。
- 动手项目经验。
- 解决问题的实践。
- 证书课程完成时。
课程内容
- 在第一周中, 你将学习OOP的基本概念, 例如继承, 抽象, 接口, 组合等。掌握这些主题非常重要, 因为设计模式与类, 对象和其他对象概念有关面向程序设计。此外, 你还将了解UML图表的基础知识和诸如SOLID, GRASP, DRY, KISS等代码设计原则。作为开发人员, 你应该了解这些基本原则。
- 第二周将专门介绍设计模式或基础知识。战略模式, GRASP(一般责任分配软件模式)和9种GRASP模式。你还将了解DRY和KISS原理。
- 第三, 第四和第五周将针对不同类型的设计模式, 并针对与之相关的常见访谈问题。
- 在第六周或上周, 你将获得有关公司中最重要的面试问题的指导, 例如设计电影票务预订系统, 酒店管理系统, 设计国际象棋, 设计Facebook –社交网络, 设计Amazon –在线购物系统。