Autoplay
Autocomplete
Previous Lesson
Complete and Continue
Master the Art of Writing Clean Code in C#
Meta Principles
Motivation for Writing Clean Code
01-Outline
02-DRY
03-KISS
04-YAGNI
05-SoC
06-CQS
07-PoLA
08-Encapsulation
09-Conclusion
Names
01-Outline
02-General Principles of Naming
03-About Names Once Again
04-Violating Naming Conventions
05-Naming Conventions in .NET
06-Conclusion
Writing Clean Functions
01-Outline
02-Variable Declarations on the Top
03-Magic Numbers
04-Stringly Typed Smell
05-Property vs Method
06-Implementing Parameters
07-Too Many Parameters
08-Too Long Methods
09-Creational Patterns VS Constructors
10-Method Extraction
11-Simplifying Complex Logic
12-Sequence of Arguments
13-Guard Clauses and Early Returns
14-Poor Conditional Clauses
15-Output Parameters
16-Comments
17-Prefer Positive if-statements
18-Conclusion
Common Architectural Design Smells
01-Outline
02-Primitives Obsession
03-Violation of Law of Demeter
04-Temporal Coupling
05-Switch Statements
06-Refactoring to Strategy
07-Refactoring to State
08-Conclusion
Functional Programming - Extendibility and Immutability
01-Outline
02-Programming Paradigms
03-Defining Functional Programming
04-Functions Are Everywhere
05-Why Functional Programming
06-Immutability
07-Immutability of Structs
08-Temporal Coupling and Immutability
09-Pipelining
10-Extending IDisposable
11-General Extensions
12-Extending StringBuilder
13-Primitive Obsession - Abusing Extension Methods
14-Builder Design Pattern
15-Errors and Functional Programming
16-Handling Errors by Methods Chaining
17-Conclusion
DI-Related Anti-Patterns & Refactorings
01-Outline
02-Control Freak
03-Hidden Dependencies with Service Locator
04-Temporal Coupling and Constructor Injection
05-Constructor Over-Injection
06-Ambient Context
07-Facade Service
08-Property Injection vs Bastard Injection
09-Cyclic Dependencies
10-Conclusion
Clean Code and TDD
01-Outline
02-What is TDD
03-Red Green Refactor
04-Three Laws of TDD
05-Reading Roman Numerals
06-Continuos Testing
07-TicTacToe
08-Conclusion
06-Implementing Parameters
Lesson content locked
If you're already enrolled,
you'll need to login
.
Enroll in Course to Unlock