Clean C# cover page

Clean C#

Clean C#

Readable, Maintainable, Pleasurable C#


This book is free, please consider paying what you think it's worth and supporting independent authors - thanks :)
Clean C# Edit
This book is 100% complete

Updated

About the Book

This book will help you write cleaner, more maintainable, more readable, and more pleasurable C# code.

Read more

Table of Contents

  • About The Author
    • Other Leanpub Books by Jason Roberts
      • Keeping Software Soft
      • C# Tips
    • Pluralsight Courses
  • About this Book
  • Introduction
    • What is Clean C#?
    • Why Clean C#?
    • Using this Book
      • Code Samples
      • Order
      • Prescriptive
    • Clean C# is a Spectrum
  • Comments
    • Repeating What the Code Already Says
    • Change Control Comments
    • Comments as a Substitute for Self Documenting Code
    • Commented-Out Code
    • Pointless XML Documentation Comments
    • Acceptable Use of Comments
  • Naming Things
    • Qualities of Clean Names
      • Expressive
      • Accurate
      • Suitable Length
      • Pronounceable Names
    • Naming Specific Items
      • Namespaces
      • Interfaces
      • Classes
      • Methods
      • Properties
      • Events
      • Fields
      • Attributes
      • Method Parameters
      • Variables
      • Booleans
      • Generic Types Parameters
      • Enums
    • Some General Rules
  • Methods
    • Method Size and Clarity
    • Cohesive Methods
    • Mixing Abstraction Levels
    • Action or Answering Methods
    • Method Parameters
      • Methods with Zero Parameters
      • Methods with One Parameter
      • Methods with Two Parameters
      • Methods with Three Parameters
      • Methods with More Than Three Parameters
      • Refactoring to Reduce the Number of Parameters
      • Params
      • Output Parameters
      • Named Arguments
      • Boolean Switching Arguments
    • Multiple Returns
    • Code Duplication in Methods
    • Methods with Side Effects
  • Structuring Programs for Readability
    • Levels of Abstraction
    • Method Level Abstractions
  • Errors and Exceptions
    • Returning Error Codes
    • Using Exceptions
      • Supplied Framework Exceptions
      • Defining Custom Exceptions
    • Alternatives to Error Codes, Exceptions, and Returning Nulls
      • Try Methods
      • Special Case Design Pattern
  • Visual Formatting
    • The Principle of Proximity
    • The Principal of Similarity
    • The Principal of Uniform Connectedness
    • The Principal of Symmetry
  • Cohesion and Coupling
    • Cohesion
    • Coupling
  • Clean Tests
    • Qualities of Good Test
      • Execution Speed
      • Independent and Isolated
      • Repeatable and Reliable
      • Valuable
      • Resilient to Production Code Changes
    • The Three Logical Phases of Tests
      • The Arrange Phase
      • The Act Phase
      • The Assert Phase
    • How Many Asserts?
    • Simplifying Arrange Phase code with AutoFixture
  • Building On Clean Code
    • The Single Responsibility Principle (SRP)
    • The Open Closed Principle (OCP)
    • The Liskov Substitution Principle (LSP)
    • The Interface Segregation Principle (ISP)
    • Keep It Simple Stupid (KISS)
    • Don’t Repeat Yourself (DRY)
    • You Aren’t Gonna Need It (YAGNI)

Read More

About the Author

The Leanpub Unconditional, No Risk, 100% Happiness Guarantee

Within 45 days of purchase you can get a 100% refund on any Leanpub purchase, in two clicks. We process the refunds manually, so they may take a few days to show up.
See full terms