|
所在平台: Udemy |
课程主页: https://www.udemy.com/course/solid-cpp/
课程评论:没有评论
课程名称:SOLID C++ 课程概述:学习编程语言的语法并不足以成为一名专业人士并构建高质量的软件。一个软件必须具备良好的设计,并适当实现,以确保其稳健性、可维护性、灵活性和可测试性。因此,我们需要SOLID对象导向设计原则。SOLID包括: - 单一责任原则(Single responsibility) - 开闭原则(Open-closed) - 里氏替换原则(Liskov substitution) - 接口隔离原则(Interface segregation) - 依赖反转原则(Dependency inversion) 这门课程可能是Udemy上最完整的SOLID原则课程,特别之处在于它聚焦于C++编程语言,课程中使用C++作为示例和作业。课程涵盖理论和实践。 课程结束后,学员应该能够: - 直观理解所有SOLID原则 - 明白何时需要和不需要遵循SOLID原则 - 学会如何在不同编程语言中使用适当的抽象和编程模式来遵循SOLID原则 - 学会如何利用C++语言的不同特性和习惯来遵循SOLID原则 - 知道如何构建C++项目、测试和重构代码 然而,完成此课程或其他课程并不足以让人真正掌握面向对象设计和编程,成为一名专家需要多年的实践。但这门课程是一个很好的起点,提供了必要的基础。 具体课程内容包括: - 关于原则的理论和概念的讲座 - 来自现实世界的视觉类比(帮助理解和记忆原则) - UML图(主要是类图,举例说明原则) - 大量独立代码示例(每个原则至少几个) - 几乎真实的项目(一个通过TCP连接接收并处理JSON或XML格式税报的服务器应用),并包含单元测试和高层次测试 - 解释如何安装项目依赖项、编译和运行测试(使用C++17,CMake,Boost库(asio、程序选项等),Google test) - 测验和期末测试(包含额外代码示例) - 编程作业(参与项目等) 本课程适合您,如果: - 您是初级或中级C++编程者(但不是完全初学者) - 您对面向对象编程(类、多态、继承、封装等)有基本了解 - 您希望学习更多内容,成为更优秀的软件工程师 理想情况下,在参加本课程之前,您应该已经参与了几个小的业余项目或拥有一些商业软件开发经验。虽然某些应用技术和示例较为高级,但与本课程的主要主题是可选的。 即使您并不主要使用C++,您仍然会发现大多数代码示例及原则适用于其他许多编程语言。 期待您的参与: 除了观看讲座和/或阅读演示文稿,还期待您: - 编译、阅读并理解代码示例及项目源代码(阅读和处理他人代码的能力非常重要,且常常被低估) - 在作业中重构一些提供的代码示例 - 在最终作业中参与项目源代码的工作,扩展其功能并添加测试 视觉示例中的图片来自网站pixabay,视频中的音频来源于网站bensound。
Learning syntax of a programming language is not enough to become professional and build high quality software. One must also learn how to make good design and implement it properly so that software is robust, maintainable, flexible and testable. That's why we need object-oriented design principles like SOLID:Single responsibilityOpen-closedLiskov substitutionInterface segregationDependency inversionThis is probably the most complete SOLID principles course on Udemy. But it's also special in that it focuses on C++ programming language, which we use for examples and assignments. And this course covers both theory and practice.By the end of this course you shouldDevelop an intuitive understanding of all SOLID principlesUnderstand when SOLID principles are needed and when notLearn how to follow SOLID principles in general, regardless of a programming language, using appropriate abstractions and programming patternsLearn how to follow SOLID principles using different C++ language features and idiomsKnow how to structure C++ projects, test and refactorHowever, there should be no illusions about this or any other course. One cannot become a true master of object-oriented design and programming only by completing one or few courses - it takes years of practice. But this course is a good starting point and provides the needed foundations.So what exactly is covered in the course?Presentations (theory and concepts about the principles)Visual analogies from real world (to better understand and remember the principles)UML diagrams (mainly class diagrams with examples about the principles)Plenty of stand-alone code examples (at least a few for each principle)Almost a real-world project (server application that receives over TCP connection and processes tax reports in JSON or XML formats) with unit and high-level testsExplanations how to install the project's dependencies, compile it and run tests (uses C++17, CMake, Boost libraries (asio, program options, etc.), Google test)Quizzes and final test (some have additional code examples)Programming assignments (work on the project, etc.)This course is for you if youAre a beginner or intermediate C++ programmer (but not complete beginner)Have a basic understanding of OOP (classes, polymorphism, inheritance, encapsulation, etc.)Want to learn more and become a better software engineer Ideally, before this course you should have already worked on a few small hobby projects or have some commercial software development experience.You should be able to pick up the rest of the materials and technologies during the course. At the same time, some applied technologies and examples are more advanced but optional to the main subject of this course.And even if you don't primarily program in C++, you will still find that most of the code examples, as well as the principles, apply to many other programming languages.What is expected from you?Besides watching lectures and/or reading presentations, it's expected that youCompile, read and understand code examples and the project source code (ability to read and work with somebody else's code is very important and often underestimated)Refactor some of the provided code examples while doing assignmentsWork on the project source code in the final assignment, extend its functionality and add testsThe images in visual examples are from website pixabay and the audio in videos is from website bensound.