Giter VIP home page Giter VIP logo

learning-tracking's People

Contributors

belclei avatar

Watchers

 avatar

learning-tracking's Issues

Inbox

Here I put ALL the new stuffed that I still need to process and categorize.

S.O.L.I.D. Principles of Object-Oriented Design

http://www.youtube.com/watch?v=GtZtQ2VFweA

  • Set of guidelines by Robert C. Martin AKA Uncle Bob
  • Helps you oriented your code towards future use, not just immediate needs
  • Modular, flexible and independent code :)

Why?

  1. Too much dependency (spaghetti code)
  2. Rigidity: changes affects other parts
  3. Fragility: breaks in unrelated places
  4. Immobility: can’t reuse code outside the original context

S - Single responsibility

  • A class should have only one reason to change
  • Doesn’t mean have to be one function
  • If part needs to change for different reasons maybe need to refactor

O - Open-closed

  • Be able to extend a class without modifying.

L - Liskov substitution

  • Derived classes must be substituable for their base classes

I - Interface segregation

  • Make fine-grained interfaces with specific methods

D - Dependency inversion

  • Depend on abstractions, not on concretions
  • Take advantage of interfaces
  • If you’re creating and instance of a class inside of another maybe you need to rethink this, or pass the instance into

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.