软件设计师的思维方式
The Software Designer Mindset
简介:软件设计师的思维方式
本课程提供软件设计的现代视角,并教您设计师的思维方式,使您能够始终如一地做出更好的设计决策,让您准备好迈出职业生涯的下一步,您将能够设计复杂的软件,极大地改进您现有的代码,并创建易于更改和扩展的软件。
本课程的所有代码示例都使用 Python。因此,建议在学习本课程之前先了解一些 Python 编程知识。但是,您将在课程中学到的内容将能够应用于任何编程语言和软件项目。
如果满足以下条件,本课程适合您:
- 您有一些编程经验,并且希望将您的技能提升到一个新的水平。
- 您真的想成为一名更好的软件开发人员,并且您愿意投资于自己并投入工作。
- 您想成长为高级软件开发人员职位,但您希望高效地做到这一点。
- 您喜欢编写漂亮的代码,感觉它非常适合软件问题。
- 您想学习如何轻松设置更大的软件项目。
如果满足以下条件,本课程不适合您:
- 您根本没有编程经验。
- 您期望结果而不付出努力。您必须认真对待成为一名高级软件开发人员,并愿意投入时间并遵循这些原则。
- 您希望一门涵盖深入软件测试技术的课程。本课程侧重于软件设计。但是,应用这些原则将导致软件更容易测试。
- 您期望一门涵盖设计模式的课程。本课程侧重于更深层次的内容:模式背后的原则,以及你提出自己的模式所需的思维方式。
- 你讨厌 Python
。
以下是您将在 The Software Designer Mindset 中学到的内容概述:
模块 1:掌握工具
- 设置您的开发环境 – 了解如何设置您的开发环境以取得成功(这比您想象的更重要):使用哪些插件/扩展以及更改哪些设置以使您的生活更轻松。
- 类型和类型提示 – 了解什么是类型和类型提示以及它们在 Python 中是如何工作的非常重要。在本课中,我将深入探讨类型系统的细节,在 Python 中是如何工作的,并向您展示最佳实践,以便您充分利用类型提示。
- 数据结构 – 软件设计的核心部分是正确使用数据结构。每种数据结构都有自己的优点和缺点。了解这些将有助于您更好地决定何时使用哪种数据结构。
- 类和数据类 – 虽然这不是面向对象编程的完整介绍,但我在本课中详细讨论了类和数据类,以及它们如何适应软件设计。
- 强大的功能 (新增!– 本课将深入探讨函数:它们是什么,您可以使用它们执行更高级的操作,以及何时在设计中使用函数而不是类。
- 继承、ABC 和协议 – 在本模块的最后一课中,您将学习抽象,这是软件设计的核心元素。我将介绍在 Python 中实现抽象的各种方法,以帮助您为设计选择最佳选项。
模块 2:现代软件设计的 7 项原则
课程的第二部分介绍了现代软件设计的 7 项原则。它采用许多现有的设计原则,并使其适应现代软件设计人员的需求。它超越了面向对象设计,向您传授适用于任何编程语言和范例的通用原则,无论是面向对象的、纯过程的还是函数式的。
- Favor Composition 而不是 inheritance – 通过查看几个代码示例,了解如何在代码中处理继承并以平衡的方式使用它。
- 高内聚 – 用于确保您编写的代码具有明确职责的各种技术。
- 低耦合 – 了解如何减少应用程序不同区域之间的耦合,以便将来更容易维护您的代码。
- 从数据开始 – 数据在设计过程中扮演什么角色?我们什么时候应该考虑软件设计中的数据和数据结构?在软件中对数据结构进行建模的实际过程是什么?
- 依赖抽象 – ABC 和 Protocol 等抽象有助于减少依赖关系。在本课中,我将向您展示如何有效地使用这些抽象。
- 将创建与使用分开 – 您将学习在软件系统中创建对象的不同方法,以及作为软件开发人员如何更好地控制对象的创建方式和时间。
- 让事情变得简单 – 作为软件开发人员,您如何让事情变得简单?我将讨论不同的方法,以确保您的代码保持简单,即使应用程序本身很复杂。
模块 3:成为负责任的开发人员
- Mixins – 您将了解什么是 Mixins,为什么需要非常小心它们,以及更好的替代方案是什么。
- 处理错误 – 任何应用程序都必须正确处理错误。在这里,您将了解错误处理在 Python 中的工作原理、不同的可能性以及一些更高级的错误处理机制,例如上下文管理器。
- 设置复杂的软件项目 – 了解文件、文件夹、模块、包、绝对和相对导入。了解如何正确构建代码,以及代码存储库中通常应该包含哪些内容。
模块 4:开发 API [仅限完整版/专业版]
本模块真正将课程提升到一个新的水平,提供了一个深入、实用的案例研究,我教你如何在 Python 中从头开始构建 API。我将与您一起完成整个过程,涵盖各个方面:
- 对领域进行建模 – 为什么在开始开发之前了解领域很重要,以及如何使用数据类快速创建模型。
- 项目脚手架 – 完成 API 产品的脚手架,学习快速设置 API 服务器,与数据库集成并设计所需的数据结构。
- 架构 – 设置 API 的架构,并相应地构建您的代码,应用您在前三个模块中学到的原则,使代码面向未来。
- 构建系统 – 创建多个端点,实现 API 的基本操作,使用干净的架构很好地分离 API 的不同区域。
- 创建可测试的 API – 向 API 软件添加单元测试,使代码更加健壮。了解架构和设计如何帮助您更轻松地测试代码。
模块 5:设计胜出 [仅限完整版/专业版]
一个非常有趣的系列 15 个视频,每个视频都重点介绍了您可以做的一件简单的事情来改进您的软件设计,从避免类型滥用和编写对称代码到避免冗余和使用协议隔离,只需几分钟。
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。
评论(0)