Making Your C# 6 Code More Object-oriented
This course will help leverage your conceptual understanding to produce proper object-oriented code, where objects will completely replace procedural code for the sake of flexibility and maintainability.
What you'll learn
Programmers do have conceptual understanding of OO concepts, but often fail to turn that into a proper object-oriented code. In this course, Making Your C# 6 Code More Object-oriented, you'll learn how to create proper object-oriented code. First, you'll learn how to avoid branching and looping. Next, you'll learn how to avoid Boolean expressions. Finally, you'll learn how to make domain logic implementation dynamic and configurable. By the end of this course, you'll be able to recognize your own error of the past and build more correct coding style.
Table of contents
- Identifying the Problem of Selecting an Object 3m
- Identifying the Problem of Synthesizing an Object 8m
- Understanding the Problems 4m
- Treating Collection of Objects as an Object 5m
- Implementing the Collection of Objects 6m
- Introducing the Compositional Function Idea 9m
- Generalized Composition Function 9m
- Summary 2m
- Causing a Bug That Comes from a Mutable Object 6m
- Discovering the Aliasing Bug 6m
- Fixing the Aliasing Bug 2m
- Understanding Value Objects 4m
- Implementing Reference Type as a Value Type 7m
- Consuming the Immutable Class 4m
- Turning Immutable Objects into Value Objects 7m
- Supporting Hash Tables 5m
- Completing the Equality Tests 4m
- Mutable vs. Immutable vs. Value Object 7m
- Summary 2m
- Complicating the Requirements That Lead to Use of Nulls 4m
- Identifying the Problem of a Nonexistent Objects 7m
- Representing Optional Object as a Collection 6m
- Wrapping a Collection into an Option Type 7m
- Improving Readability of the Client Code 1m
- Adding Pattern Matching to Options 4m
- Heavyweight Implementation of Options with Pattern Matching 8m
- Demonstrating the Use of Heavyweight Option Type 6m
- Summary 2m
- Adding Requirements that Lead to Multiway Branching 6m
- Using the Old-fashioned Switch Instruction and an Enum 6m
- Encapsulating Representation in a Separate Class 6m
- Using Encapsulated Representation as the Key 9m
- Turning Multiway Branching into a Dictionary Object 4m
- Substituting the Multiway Branching Object at Runtime 8m
- Summary 2m
- Introducing an Example 4m
- Analyzing Initial Implementation 4m
- Recognizing Infrastructural Code 6m
- Making Infrastructure Explicit 3m
- Removing All Infrastructure from Implementation 6m
- Where to Go with Infrastructural Code? 7m
- Making Profit on Flexibility of Object-oriented Code 9m
- Summary 2m
- Course Summary 6m