Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Back to forgotten roots

Mariusz Gil
February 26, 2017

Back to forgotten roots

Slides from my "Back to the roots" talk, performed at Boilings Frogs 2017, the software craftsmanship conference.

Mariusz Gil

February 26, 2017
Tweet

More Decks by Mariusz Gil

Other Decks in Programming

Transcript

  1. BACK TO FORGOTTEN
    RootS
    Mariusz Gil
    [ source ministry ]
    @mariuszgil

    View Slide

  2. View Slide

  3. START
    The

    View Slide

  4. HoW

    View Slide

  5. Microservices

    View Slide

  6. Serverless

    View Slide

  7. Nosql

    View Slide

  8. lambda function

    View Slide

  9. solid principles

    View Slide

  10. design patterns

    View Slide

  11. object oriented programming

    View Slide

  12. Grasp principles

    View Slide

  13. SSDD/HDD

    View Slide

  14. View Slide

  15. View Slide

  16. Build & use toolbox. Wisely

    View Slide

  17. Too
    trivial
    to implement
    Too
    Complex
    to maintain

    View Slide

  18. OVER ENGINEERED since day 1

    View Slide

  19. WhaT

    View Slide

  20. View Slide

  21. oo violations

    View Slide

  22. DIG
    DIG
    DIG

    View Slide

  23. View Slide

  24. interface ItemProvider { ... }
    interface ItemFilter { ... }
    class MostPopular implements ItemProvider { ... }
    class RecentlyPopular implements ItemProvider { ... }
    class Random implements ItemProvider { ... }
    class Promoted implements ItemProvider { ... }
    class CollaborativeFiltering implements ItemProvider { ... }
    class Clicked implements ItemFilter { ... }
    class Capping implements ItemFilter { ... }
    class Outdated implements ItemFilter { ... }
    class SimilarNameDuplication implements ItemFilter { ... }
    class RecommenderService
    {
    ...
    public function generate($limit = 5)
    {
    $items = $provider->get($limit * 2);
    foreach ($this->filters as $filter) {
    $items = $filter->filter($items);
    }
    if ($items->length() < $limit) {
    $items = $items->add($refill->get($limit));
    }
    return $items->unique()->limit($limit);
    }
    }

    View Slide

  25. View Slide

  26. step back, to see more

    View Slide

  27. GRASP
    General responsibility assignment softw
    are patterns

    View Slide

  28. 19 95

    View Slide

  29. 20 04

    View Slide

  30. Days vs months

    View Slide

  31. TDD/RDD

    View Slide

  32. View Slide

  33. Define & solve problem
    Using right tools

    View Slide

  34. WhY

    View Slide

  35. V
    ALUE
    The

    View Slide

  36. View Slide

  37. Solve right problem

    View Slide

  38. WhY noT

    View Slide

  39. Solve problem worth to solve

    View Slide

  40. we use ...
    to build ...
    foR ...
    to help with ...

    View Slide

  41. LearN

    View Slide

  42. BACK TO FORGOTTEN
    Mariusz Gil
    RootS
    [ source ministry ]
    @mariuszgil

    View Slide