Python: SOLID Principles and Top Design Patterns

所在平台: Udemy

课程主页: https://www.udemy.com/course/python-solid-principles-and-top-design-patterns/

课程评论:没有评论

第一个写评论        关注课程

课程简介

课程名称:Python:SOLID原则与顶级设计模式 课程概述: 在这个课程中,我们将帮助您成为更优秀的软件开发者,从而能够称自己为“软件工程师”或“软件架构师”。要实现这一目标,您首先需要掌握一系列设计模式。本课程将引导您识别在构建复杂系统时何时使用特定的设计模式,从而以divide-and-conquer的方法减少复杂性并实现抽象。我们将专注于最重要的、基本的GoF设计模式,同时在面向对象的Python环境中讲解这些知识。 课程开始时,您将全面了解S.O.L.I.D设计原则,以及它们如何与这些设计模式相联系。我们将通过现实世界中的问题和具体代码示例来解释所有内容。此外,如果您需要Python面向对象的复习,我们也会提供相关内容,涵盖类、接口和抽象类等主题。课程中还将教您如何使用pygame(Python游戏平台)进行编程。在课程结束时,您将能够架构一个解决方案,通过编码约翰·康威的“生命游戏”模拟程序,该程序能够在您的移动设备上运行。 复杂软件系统通常面临三大主要问题:需求变更导致的时间延误;多个开发者之间的协调困难;代码冗余。所有这些问题都会导致维护和灵活性下降,使得系统设计不佳,难以维护及不适应新特性。 本课程提供的解决方案是拥有一个适当的设计和架构。我们可以将这一过程比作建造摩天大楼:总是有一个高层蓝图,供所有相关人员(从建筑师到施工人员)共同理解和遵循。软件工程中也有许多重复使用的元素,例如所有软件应用需要创建对象,需要能在这些对象之间传递状态变化 etc.。如果您希望成为更优秀的开发者,就需要熟练掌握这些经过时间考验的元素,这些元素被称为“设计模式”。 通过本课程,您将了解到如何在构建复杂系统时,识别何时使用特定的设计模式,从而以架构性的方式设计项目,最终缩短开发时间,降低维护成本。设计模式是经过时间考验的解决方案,可以帮助您应对软件工程中常见的问题。我们将采取一种实用的方法,通过具体例子来讲解设计模式的概念,使您能够根据自己的需求灵活运用和修改这些模式。此外,我们还将探讨如何将所有这些模式结合成更大的架构,从而实现整体效应大于各部分之和的理想状态。 欢迎加入我们,开始这段学习之旅!

课程评论(0条)

课程详情

We all want to become better software developers and be able to call ourselves "Software Engineers" or "Software Architects", but to do that you first have to master a number of design patterns.This course will put you on a track to that destination. We will teach you how to recognize when to use specific design patterns to build complex systems in a divide-and-conquer manner so that complexity is reduced and abstracted.But rather than learning all the design patterns out there, we have curated the most important, the top fundamental GoF Design Patterns for you. All of that in the context of the Object Oriented Python.We start with full understanding of the S.O.L.I.D Design Principles and how they in turn relate to those design patterns. We explain everything in the context of real-world problems as well as specific code examples.if you need a Python OOP Refresher, we have that for you. everything from classes to interfaces and abstract classes is covered. We will also show you how to code using pygame (Python Game Platform.) At the end of the course you will get to Architect a solution by coding John Conway's Game of Life simulation which will run on your mobile device.Complex software systems are plagued with three major issues:Timelines are stretched as requirements change.Multiple developers have a hard time coordinating their efforts.Code redundancy.This in turn creates issues with maintenance and overall flexibility for adding new features. In general this means poorly designed systems that are hard to maintain and are not adaptable.One answer to all the above problems is having a proper design and architecture. Think of a skyscraper being built. There is always a high-level blueprint. This blueprint is used to show everybody involved (from architects to supply chain to construction workers to machinery scheduling etc…) what is being worked on.That way, everybody understands and follows the same vision.A blueprint has a number of commonly understood elements which repeat themselves across many projects. For example all buildings need electrical wiring and plumbing, they might need elevators, and cooling systems, and underground parking lots, and of course stairs. They also usually are connected to the electrical grid and water supply as well as… roads.All these common elements follow certain standards that have been improved over many many years and across many many projects. They are well understood and can be used almost like recipes.In Software Engineering we also have a set of elements that repeat themselves across many projects. For example all software applications need to create objects, they need to communicate state change across those objects, they need to be able traverse over collections of those objects. In other words, if you want to be a better developer then you need to become proficient in those elements that have been time-tested. In the Software Engineering world these elements are known as "Design Patterns"This course will teach students how to recognize when to use specific design patterns to build complex systems in a divide-and-conquer manner so that complexity is reduced and abstracted.This will help you to design projects in an Architectural manner before any major development happens and can be used to shorten development time and reduce maintenance costs.Design patterns are important because they are time-tested recipes or solutions to well-known software engineering problems. When creating software applications certain problems recur in a pretty predictable fashion so rather than ‘reinvent' the wheel we will have an assortment of, if you will, wheels to choose from.We will teach you this in a slightly different manner than you probably have been taught before. We will take a practical approach (i.e. specific examples) but the power of Design Patterns comes from their ‘concept' and we will teach you the concept of those design patterns so that you are fully able to change them and modify them to your needs. In addition we will look at how to combine all those patterns into something greater: an architecture.A well designed Architecture is this magical thing where the whole is greater than the sum of its parts.This is what we will strive to teach you.

课程标签

0人关注该课程

主题相关的课程