C# NINJITSU
Blog: kodefuguru.com
   Email: kodefuguru@live.com
      Twitter: @kodefuguru
Facebook: facebook.com/kodefuguru
Readable
Maintainable
Most General Interface
Most General Interface




            Interface
           Inheritance
Most General Interface




         IEnumerable<T>
Most General Interface




         AsEnumerable()
Most General Interface




            DEMO
Favor Fluency
Favor Fluency




      Method
      Chaining
Favor Fluency




        Left
         To
        Right
Favor Fluency




       context
Favor Fluency




      Complex
       Types
Favor Fluency




          out
Favor Fluency




          ref
Favor Fluency




        LINQ
Favor Fluency




       DEMO
Avoid Side Effects
Avoid Side Effects




           State
Avoid Side Effects




          Purity
Avoid Side Effects




      Encapsulation
Avoid Side Effects




          DEMO
Favor Declarative Code
Favor Declarative Code




             What
             not
             How
Favor Declarative Code




         Initializers
Favor Declarative Code




                ?
Favor Declarative Code




               ??
Favor Declarative Code




             LINQ
Favor Declarative Code




            DEMO
Strive for Functional Cohesion
Strive for Functional Cohesion




                 Strive
                  for
             High Cohesion
Strive for Functional Cohesion




                 Single
              Responsibility
                Principle
Strive for Functional Cohesion




                 Helper
                 Classes
Strive for Functional Cohesion




               Extension
               Methods
Strive for Functional Cohesion




                 DEMO
Extension Over Inheritance
Extension Over Inheritance




            Extension
             Methods
Extension Over Inheritance




            Interfaces
Extension Over Inheritance




              Lego
             Classes
Extension Over Inheritance




              DEMO
Thank You

C# Ninjitsu