Python SOLID

  • 1,864 views
Uploaded on

 

More in: Technology , Business
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
No Downloads

Views

Total Views
1,864
On Slideshare
0
From Embeds
0
Number of Embeds
8

Actions

Shares
Downloads
35
Comments
1
Likes
5

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