c# ninjitsu

43
C# NINJITSU

Upload: chris-eargle

Post on 25-Dec-2014

1.907 views

Category:

Education


0 download

DESCRIPTION

 

TRANSCRIPT

Page 1: C# Ninjitsu

C# NINJITSU

Page 2: C# Ninjitsu
Page 3: C# Ninjitsu

Blog: kodefuguru.com

Email: [email protected]

Twitter: @kodefuguru

Facebook: facebook.com/kodefuguru

Page 4: C# Ninjitsu

Readable

Page 5: C# Ninjitsu

Maintainable

Page 6: C# Ninjitsu

Most General Interface

Page 7: C# Ninjitsu

Most General Interface

Interface

Inheritance

Page 8: C# Ninjitsu

Most General Interface

IEnumerable<T>

Page 9: C# Ninjitsu

Most General Interface

AsEnumerable()

Page 10: C# Ninjitsu

Most General Interface

DEMO

Page 11: C# Ninjitsu

Favor Fluency

Page 12: C# Ninjitsu

Favor Fluency

Method

Chaining

Page 13: C# Ninjitsu

Favor Fluency

Left

To

Right

Page 14: C# Ninjitsu

Favor Fluency

context

Page 15: C# Ninjitsu

Favor Fluency

Complex

Types

Page 16: C# Ninjitsu

Favor Fluency

out

Page 17: C# Ninjitsu

Favor Fluency

ref

Page 18: C# Ninjitsu

Favor Fluency

LINQ

Page 19: C# Ninjitsu

Favor Fluency

DEMO

Page 20: C# Ninjitsu

Avoid Side Effects

Page 21: C# Ninjitsu

Avoid Side Effects

State

Page 22: C# Ninjitsu

Avoid Side Effects

Purity

Page 23: C# Ninjitsu

Avoid Side Effects

Encapsulation

Page 24: C# Ninjitsu

Avoid Side Effects

DEMO

Page 25: C# Ninjitsu

Favor Declarative Code

Page 26: C# Ninjitsu

Favor Declarative Code

What

not

How

Page 27: C# Ninjitsu

Favor Declarative Code

Initializers

Page 28: C# Ninjitsu

Favor Declarative Code

?

Page 29: C# Ninjitsu

Favor Declarative Code

??

Page 30: C# Ninjitsu

Favor Declarative Code

LINQ

Page 31: C# Ninjitsu

Favor Declarative Code

DEMO

Page 32: C# Ninjitsu

Strive for Functional Cohesion

Page 33: C# Ninjitsu

Strive for Functional Cohesion

Strive

for

High Cohesion

Page 34: C# Ninjitsu

Strive for Functional Cohesion

Single Responsibility

Principle

Page 35: C# Ninjitsu

Strive for Functional Cohesion

Helper

Classes

Page 36: C# Ninjitsu

Strive for Functional Cohesion

Extension

Methods

Page 37: C# Ninjitsu

Strive for Functional Cohesion

DEMO

Page 38: C# Ninjitsu

Extension Over Inheritance

Page 39: C# Ninjitsu

Extension Over Inheritance

Extension Methods

Page 40: C# Ninjitsu

Extension Over Inheritance

Interfaces

Page 41: C# Ninjitsu

Extension Over Inheritance

Lego

Classes

Page 42: C# Ninjitsu

Extension Over Inheritance

DEMO

Page 43: C# Ninjitsu

Thank You