课程主页: https://www.coursera.org/learn/software-design-abstraction
在软件开发的过程中,设计阶段具有一些独特的特征,这是本课程”软件设计作为抽象”所要探索的主题之一。首先,设计阶段是唯一一个常常需要绘制图像的步骤,这究竟有什么特别之处呢?图像能做其他表现形式无法做到的事情,比如提供细节的层次和上下文。这些都是十分重要的内容,因为设计不仅仅是编写代码,更是在构建一个完整的视觉和功能表达。
在课程中,我们将探讨其他领域(例如建筑设计)如何为软件设计提供启示。课程大纲包括了几个关键的模块:
1. **谁需要抽象?** 这部分将对比软件开发过程中的设计步骤与抽象表达的概念。
2. **以用户为中心** 讨论在涉及用户时需要考虑的设计因素。
3. **如果没有用户怎么办?** 探索在没有用户的情况下应考虑的设计因素。
4. **高级数据库设计** 学习何时创建第三范式的数据库,以及何时不应该这样做。
5. **设计模式的优缺点** 理解设计模式何时有用,何时无效。
6. **语言选择** 明智地选择语言和操作系统,因为这些决定是长期的。
7. **期末考试** 包含5个小测验的综合课程评估,每个测验均从不同模块随机抽取问题。
通过本课程,学生不仅可以领会设计的重要性,还能掌握具体的设计原则和最佳实践。如果你想深入了解如何在软件开发中运用设计抽象的理念,那么这门课程将非常适合你。无论你是刚入门的学生,还是拥有一定经验的开发者,这门课程都能为你的职业生涯增添色彩。
课程主页: https://www.coursera.org/learn/software-design-abstraction