67
Don't Be STUPID Grasp SOLID Anthony Ferrara MidWestPHP 2013

Don't Be Stupid, Grasp Solid - MidWestPHP

Embed Size (px)

DESCRIPTION

Slides from my MidWestPHP talk on 3/3/2013

Citation preview

Page 1: Don't Be Stupid, Grasp Solid - MidWestPHP

Don't Be STUPIDGrasp SOLID

Anthony FerraraMidWestPHP 2013

Page 2: Don't Be Stupid, Grasp Solid - MidWestPHP

DISCLAIMERS

Page 3: Don't Be Stupid, Grasp Solid - MidWestPHP

None Of ThesePrinciples

Are Limited To OOP

Page 4: Don't Be Stupid, Grasp Solid - MidWestPHP

These ArePrinciples

Not Laws(Well, Some Are)

Page 5: Don't Be Stupid, Grasp Solid - MidWestPHP

function hash_password($password = NULL, $salt = NULL, $salt2){ if($password === NULL) return FALSE;

if($salt === NULL) $salt = config_item('encryption_key');

$password = (string) $password; $salt = (string) $salt;

$ci =& get_instance();

$ci->load->library('encrypt');

$salt2 = $ci->encrypt->decode(base64_decode($salt2), config_item('encryption_key2'));

return crypt( hash_hmac('whirlpool', $password, hash('sha512', crypt($salt, '$6$rounds=100[000$' . hash('sha256', $salt) ) . '$' ) ), '$2y$12$'. $salt2 .'$' );}

Page 6: Don't Be Stupid, Grasp Solid - MidWestPHP

STUPID

Page 7: Don't Be Stupid, Grasp Solid - MidWestPHP

SingletonsTUPID

Page 8: Don't Be Stupid, Grasp Solid - MidWestPHP
Page 9: Don't Be Stupid, Grasp Solid - MidWestPHP
Page 10: Don't Be Stupid, Grasp Solid - MidWestPHP
Page 11: Don't Be Stupid, Grasp Solid - MidWestPHP
Page 12: Don't Be Stupid, Grasp Solid - MidWestPHP

SingletonsTight CouplingUPID

Page 13: Don't Be Stupid, Grasp Solid - MidWestPHP
Page 14: Don't Be Stupid, Grasp Solid - MidWestPHP
Page 15: Don't Be Stupid, Grasp Solid - MidWestPHP

SingletonsTight CouplingUntestable CodePID

Page 16: Don't Be Stupid, Grasp Solid - MidWestPHP
Page 17: Don't Be Stupid, Grasp Solid - MidWestPHP
Page 18: Don't Be Stupid, Grasp Solid - MidWestPHP
Page 19: Don't Be Stupid, Grasp Solid - MidWestPHP
Page 20: Don't Be Stupid, Grasp Solid - MidWestPHP

SingletonsTight CouplingUntestable CodePremature Optimization

ID

Page 21: Don't Be Stupid, Grasp Solid - MidWestPHP
Page 22: Don't Be Stupid, Grasp Solid - MidWestPHP
Page 23: Don't Be Stupid, Grasp Solid - MidWestPHP

SingletonsTight CouplingUntestable CodePremature Optimization

Indescriptive NamingD

Page 24: Don't Be Stupid, Grasp Solid - MidWestPHP
Page 25: Don't Be Stupid, Grasp Solid - MidWestPHP
Page 26: Don't Be Stupid, Grasp Solid - MidWestPHP

SingletonsTight CouplingUntestable CodePremature Optimization

Indescriptive NamingDuplication

Page 27: Don't Be Stupid, Grasp Solid - MidWestPHP
Page 28: Don't Be Stupid, Grasp Solid - MidWestPHP
Page 29: Don't Be Stupid, Grasp Solid - MidWestPHP

The RuleOf Three

Page 30: Don't Be Stupid, Grasp Solid - MidWestPHP

SOLID

Page 31: Don't Be Stupid, Grasp Solid - MidWestPHP

Single Responsibility Principle

OLID

Page 32: Don't Be Stupid, Grasp Solid - MidWestPHP
Page 33: Don't Be Stupid, Grasp Solid - MidWestPHP
Page 34: Don't Be Stupid, Grasp Solid - MidWestPHP
Page 35: Don't Be Stupid, Grasp Solid - MidWestPHP

Single Responsibility Principle

Open Closed Principle

LID

Page 36: Don't Be Stupid, Grasp Solid - MidWestPHP
Page 37: Don't Be Stupid, Grasp Solid - MidWestPHP
Page 38: Don't Be Stupid, Grasp Solid - MidWestPHP

Single Responsibility Principle

Open Closed Principle

Liskov Substitution Principle

ID

Page 39: Don't Be Stupid, Grasp Solid - MidWestPHP
Page 40: Don't Be Stupid, Grasp Solid - MidWestPHP
Page 41: Don't Be Stupid, Grasp Solid - MidWestPHP
Page 42: Don't Be Stupid, Grasp Solid - MidWestPHP

Single Responsibility Principle

Open Closed Principle

Liskov Substitution Principle

Interface Segregation Principle

D

Page 43: Don't Be Stupid, Grasp Solid - MidWestPHP
Page 44: Don't Be Stupid, Grasp Solid - MidWestPHP
Page 45: Don't Be Stupid, Grasp Solid - MidWestPHP
Page 46: Don't Be Stupid, Grasp Solid - MidWestPHP
Page 47: Don't Be Stupid, Grasp Solid - MidWestPHP

Single Responsibility Principle

Open Closed Principle

Liskov Substitution Principle

Interface Segregation Principle

Dependency Inversion Principle

Page 48: Don't Be Stupid, Grasp Solid - MidWestPHP
Page 49: Don't Be Stupid, Grasp Solid - MidWestPHP
Page 50: Don't Be Stupid, Grasp Solid - MidWestPHP
Page 51: Don't Be Stupid, Grasp Solid - MidWestPHP

Law ofLeaky

Abstractions

Page 52: Don't Be Stupid, Grasp Solid - MidWestPHP
Page 53: Don't Be Stupid, Grasp Solid - MidWestPHP
Page 54: Don't Be Stupid, Grasp Solid - MidWestPHP

Law of

Demeter

Page 55: Don't Be Stupid, Grasp Solid - MidWestPHP

Principle Of

LeastKnowledge

Page 56: Don't Be Stupid, Grasp Solid - MidWestPHP
Page 57: Don't Be Stupid, Grasp Solid - MidWestPHP
Page 58: Don't Be Stupid, Grasp Solid - MidWestPHP

Principle Of

LeastAstonishment

Page 59: Don't Be Stupid, Grasp Solid - MidWestPHP
Page 60: Don't Be Stupid, Grasp Solid - MidWestPHP
Page 61: Don't Be Stupid, Grasp Solid - MidWestPHP

Principle Of

GoodEnough

Page 62: Don't Be Stupid, Grasp Solid - MidWestPHP
Page 63: Don't Be Stupid, Grasp Solid - MidWestPHP
Page 64: Don't Be Stupid, Grasp Solid - MidWestPHP
Page 65: Don't Be Stupid, Grasp Solid - MidWestPHP
Page 66: Don't Be Stupid, Grasp Solid - MidWestPHP
Page 67: Don't Be Stupid, Grasp Solid - MidWestPHP

Anthony Ferrarajoind.in/8219@ircmaxell

[email protected]/ircmaxell