|
所在平台: Udemy |
课程主页: https://www.udemy.com/course/java-solid-principles-and-top-design-patterns/
课程评论:没有评论
课程名称:Java:掌握SOLID原则与顶级设计模式 概述:想要成为更优秀的软件开发者,并自称为“软件工程师”或“软件架构师”,首先需要掌握多种设计模式。本课程将帮助您在这条道路上前行,我们将教您如何识别何时使用特定的设计模式,以分而治之的方式构建复杂系统,从而减少和抽象复杂性。我们精心挑选了最重要的GoF设计模式,并将在Java编程语言的背景下进行讲解。 课程开始时,我们将全面理解S.O.L.I.D设计原则,以及这些原则与设计模式之间的关系。我们通过现实问题和具体代码示例进行解释。在课程末尾,您将能够通过编码约翰·康威的生命游戏模拟来设计一个解决方案,并在多种设备上运行。 复杂的软件系统通常面临三个主要问题:需求变化导致时间延误;多个开发者之间协调困难;代码冗余。这些问题会影响维护性和新功能的添加灵活性,最终导致设计不良的系统,难以维护和适应。 解决这些问题的一个方法是建立合理的设计和架构。可以将其类比为建造摩天大楼时所需的高层蓝图。蓝图用于向参与的各方(如建筑师、供应链、施工工人等)展示工作内容,确保大家理解并遵循相同的愿景。 软件工程中也有一套在多个项目中反复出现的元素。例如,所有软件应用需要创建对象,沟通状态变更,遍历对象集合等。因此,若想成为更好的开发者,您需熟悉那些经过时间考验的元素,这些元素称为“设计模式”。 本课程将教您如何识别何时使用特定的设计模式,以便以分而治之的方式构建复杂系统,帮助您在重大开发前设计项目的架构,从而缩短开发时间,降低维护成本。设计模式的重要性在于,它们是经过时间检验的解决方案,以应对众所周知的软件工程问题。 课程会采取不同的方式授课,采用实用的方法(如具体示例),但设计模式的力量来自于它们的“概念”,我们将教您这些设计模式的概念,以便您能够根据自己的需求进行更改和修改。此外,我们还将探讨如何将这些模式结合起来形成一个更伟大的架构。 一个良好的设计架构具有魔力,整体大于部分之和,这正是我们努力教会您的。
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, top fundamental GoF Design Patterns for you. All of that in the context of the Java programming language.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 eplain everything in the context of real-world problems as well as specific code examples.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 variety of devices.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.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.