Description
In this course, you will learn :
- You'll discover why design patterns are more of a communication tool than a technical solution, and how patterns allow you to create and share a common vocabulary, which simplifies communication.
- The course introduces a variety of patterns and demonstrates how to implement them in C. Each pattern is introduced by describing the problem it solves and the domains in which it can be used.
- We also go over the underlying design principles as well as the trade-offs that come with using the pattern.
- The course introduces a set of coding idioms that will help you apply design patterns in C.
Syllabus :
1. Introduction to Pattern in C
- Patterns in Software
- Why Do We Need Patterns in Software Development?
- Overview
- Pattern Categories
2. The First-Class ADT Pattern
- Reflections on First-Class ADT
- Why We Need First-Class ADT Pattern
- Implementing the First-Class ADT Pattern
- Consequences of the First-Class ADT pattern
3. The State Pattern
- Reflections on State Pattern
- Different Strategies for Implementing State Machines
- Implementing State Machines With the State Pattern
- Benefits and Consequences of Using State Pattern
4. The Strategy Pattern
- Reflections on Strategy
- Example
- Implementing the Strategy Pattern
- Consequences of using the strategy pattern
5. The Observer Pattern
- Reflections on Observer
- Theory of the Observer Pattern
- Implementing the Observer Pattern
- Consequences of Using Observer Pattern
6. The Reactor Pattern
- Reflections on Reactor
- Investigate a Pattern for Event driven Applications
- Implementing the Reactor Pattern
- Consequences and Comparison
7. Idiomatic Expressions
- Reflections on the Idioms
- Idiomatic Expressions in C
- SIZEOF TO VARIABLES
- Initialize Compound Types with `0`
- Array Size by Division
- Magic Numbers as Variables
- Named Parameters
- Assertion Context
- Constants to the Left