| Refactoring to Patterns using C# | 
|---|
  
    | Course Outline | Outline | 
  
    | Reading Material |  | 
  
    | PowerPoint Slides | Intro.pptx | 
  | Day | Modules | Sharing | 
|---|
  
    | 1 | 
    
        The Patterns PanaceaUnder-EngineeringTest-Driven Development and Continuous RefactoringRefactoring and PatternsEvolutionary Design |  | 
  
    | 
    
        What Is Refactoring?The motivations to refactorHuman-Readable CodeKeeping It CleanSmall StepsDesign DebtEvolving a New ArchitectureComposite and Test-Driven RefactoringsThe Benefits of Composite RefactoringsRefactoring Tools |  | 
  
    | 
    
        What Is a Pattern?Very brief introduction to the GoF PatternsThere Are Many Ways to Implement a PatternRefactoring to, towards, and away from PatternsDo Patterns Make Code More Complex?Pattern KnowledgeUp-Front Design with Patterns |  | 
  
    | 
    
        Duplicated CodeLong MethodConditional ComplexityPrimitive ObsessionIndecent ExposureSolution SprawlAlternative Classes with Different InterfacesLazy ClassLarge ClassSwitch StatementsCombinatorial ExplosionOddball Solution |  | 
  
    | 2 | 
    
        Format of the RefactoringsProjects Referenced in This CatalogA Starting PointA Study Sequence |  | 
  
    | 
    
        Replace Constructors with Creation MethodsMove Creation Knowledge to FactoryEncapsulate Classes with FactoryIntroduce Polymorphic Creation with Factory MethodEncapsulate Composite with BuilderInline Singleton |  | 
  
    | 
    
        Compose MethodReplace Conditional Logic with StrategyMove Embellishment to DecoratorReplace State-Altering Conditionals with StateReplace Implicit Tree with CompositeReplace Conditional Dispatcher with Command |  | 
  
    | 
    
        Form Template MethodExtract CompositeReplace One-Many Distinctions with CompositeReplace Hard-Coded Notifications with ObserverUnify Interfaces with AdapterExtract AdapterReplace Implicit Language with Interpreter |  | 
  
    | 3 | 
    
        Replace Type Code with ClassLimit Instantiation with SingletonIntroduce Null Object |  | 
  
    | 
    
        Move Accumulation to Collecting ParameterMove Accumulation to Visitor |  | 
  
    | 
    
        Chain ConstructorsUnify InterfacesExtract Parameter |  | 
    | Recommanded Books | 
|---|
  |  | Title | Refactoring with C#: Safely improve .NET applications and pay down technical debt with Visual Studio, .NET 8, and C# 12 | 
|---|
| ISBN | 978-1-835-08998-9 | 
|---|
| Author | Matt Eland | 
|---|
| Year | 2024 | 
|---|
| Publisher | Packt Publishing Pvt Ltd | 
|---|
  |  | Title | Clean Code with C#: Refactor your legacy C# code base and improve application performance using best practices | 
|---|
| ISBN | 978-1-837-63519-1 | 
|---|
| Author | Jason Alls | 
|---|
| Year | 2023 | 
|---|
| Publisher | Packt Publishing | 
|---|