Your SlideShare is downloading. ×
0
Python SOLID
Python SOLID
Python SOLID
Python SOLID
Python SOLID
Python SOLID
Python SOLID
Python SOLID
Python SOLID
Python SOLID
Python SOLID
Python SOLID
Python SOLID
Python SOLID
Python SOLID
Python SOLID
Python SOLID
Python SOLID
Python SOLID
Python SOLID
Python SOLID
Python SOLID
Python SOLID
Python SOLID
Python SOLID
Python SOLID
Python SOLID
Python SOLID
Python SOLID
Python SOLID
Python SOLID
Python SOLID
Python SOLID
Python SOLID
Python SOLID
Python SOLID
Python SOLID
Python SOLID
Python SOLID
Python SOLID
Python SOLID
Python SOLID
Python SOLID
Python SOLID
Python SOLID
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Python SOLID

2,740

Published on

Published in: Technology, Business
1 Comment
7 Likes
Statistics
Notes
No Downloads
Views
Total Views
2,740
On Slideshare
0
From Embeds
0
Number of Embeds
8
Actions
Shares
0
Downloads
46
Comments
1
Likes
7
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. S.O.L.I.D. Python
  • 2. Alea Soluciones Bifer Team
  • 3. @eferro @pasku1 @apa42 @nestorsalceda
  • 4. Usual OO Systems Rigid Fragile Immobile Viscous
  • 5. Why S.O.L.I.D. principles? To create easy to maintain OO systems Improve reusability Easy testing
  • 6. For creating Clean Code
  • 7. It's all about money
  • 8. S.O.L.I.D SRP - Single responsibility principle DIP - Dependency inversion principle OCP - Open/closed principle LSP - Liskov substitution principle ISP - Interface segregation principle
  • 9. Principles Not Rules
  • 10. Car wash service car wash job when the car enters in the car wash ✓ it registers a job customer notification when service completed ✓ it notifies the customer reporting when client report requested ✓ it shows all wash services for that customer 3 examples ran in 0.0178 seconds
  • 11. … Some refactors / versions later
  • 12. Depend upon Abstractions. Do not depend upon concretion
  • 13. Compilation / Startup time dependency from <package> import module
  • 14. Runtime dependency self.collaborator.message()
  • 15. Global State Problem Implicit dependency problem Concrete API
  • 16. No dependency injection Implicit dependency problem Concrete API
  • 17. Duck Typing Approved!!!
  • 18. Liskov Substitution principle violation
  • 19. Python don't force type inheritance For API implementation (So, for reuse code, prefer Composition)
  • 20. Derived types must be completely substitutable for their base types
  • 21. It isn't so important
  • 22. A narrow interface is a better interface
  • 23. SOLID Motivational Posters, by Derick Bailey http://lostechies.com/derickbailey/2009/02/11/solid-development-principles-in-motivational-pictures/
  • 24. car_wash code example https://github.com/aleasoluciones/car_wash SOLID definition (at wikipedia) http://en.wikipedia.org/wiki/SOLID_(object-oriented_design) Getting a SOLID start (Uncle Bob) http://butunclebob.com/ArticleS.UncleBob.PrinciplesOfOod Video SOLID Object Oriented Design (Sandi Metz) http://www.confreaks.com/videos/240-goruco2009-solid-object-oriented-design
  • 25. Thanks !!! @eferro @pasku1 @apa42 @nestorsalceda

×