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

Resisting Complexity

Resisting Complexity

Adam Wathan

July 25, 2018
Tweet

More Decks by Adam Wathan

Other Decks in Technology

Transcript

  1. Resisting
    COMPLEXITY
    with Adam Wathan

    View Slide

  2. View Slide

  3. View Slide

  4. $gardener = new Gardener; 

    $gardener->water($plant);

    View Slide

  5. View Slide

  6. const names = ['Blair', 'Sam', 'Kelly']

    names.reverse()

    // ['Kelly', 'Sam', 'Blair']

    View Slide

  7. const names = "Blair, Sam, Kelly" 

    names.split(', ') 

    // ['Blair', 'Sam', 'Kelly']

    View Slide

  8. $date = new DateTime;

    $date->format('l');

    // 'Wednesday'

    View Slide

  9. $gardener->water($plant);

    View Slide

  10. A
    CAN
    A
    GARDENER
    WATER
    PLANT.
    $gardener->water($plant);

    View Slide

  11. A
    CAN
    A
    {OBJECT}
    {METHOD}
    {PARAMETER.}
    ( )
    $object->method($param);

    View Slide

  12. A
    CAN
    ARRAY
    REVERSE
    names.reverse()
    N

    View Slide

  13. A
    CAN
    A
    STRING
    SPLIT
    DELIMITER.
    names.split(', ')

    View Slide

  14. View Slide

  15. A
    CAN
    A
    STRING
    SPLIT
    DELIMITER.
    names.split(', ')

    View Slide

  16. A
    CAN
    A
    STRING
    SPLIT
    DELIMITER.
    names.split(', ')
    BE
    USING

    View Slide

  17. A
    CAN
    A
    {OBJECT}
    {METHOD}
    {PARAMETER}.
    object.method(param)
    BE
    USING
    ( )

    View Slide

  18. METHODS ARE
    Affordances

    View Slide

  19. View Slide

  20. A
    CAN
    A
    {OBJECT}
    {METHOD}
    {PARAMETER}.
    object.method(param)
    BE
    USING
    ( )

    View Slide

  21. A
    CAN
    A
    STRING
    SPLIT
    DELIMITER.
    names.split(', ')
    BE
    USING

    View Slide

  22. A ARRAY
    names.reverse()
    N
    CAN REVERSED
    BE

    View Slide

  23. A
    CAN
    A
    DATE
    FORMATTED
    FORMAT STRING.
    $date->format('l');
    BE
    USING

    View Slide

  24. A
    CAN
    USER
    SAVED.
    $user->save();
    BE

    View Slide

  25. View Slide

  26. A
    CAN
    A
    {OBJECT}
    {METHOD}
    {PARAMETER}.
    $object->method($param);
    BE
    USING
    ( )

    View Slide

  27. A
    CAN
    A
    GARDENER
    WATERED
    PLANT.
    $gardener->water($plant);
    BE
    USING

    View Slide

  28. View Slide

  29. A
    CAN
    A
    GARDENER
    WATERED
    PLANT
    BE
    USING

    View Slide

  30. A
    CAN
    PLANT
    WATERED
    BE

    View Slide

  31. $gardener = new Gardener; 

    $gardener->water($plant);

    View Slide

  32. $plant->water();

    View Slide

  33. AGENT NOUNS
    Eliminating

    View Slide

  34. a·gent noun
    /ˈājənt noun/
    a noun denoting someone or something
    that performs the action of a verb, typically
    ending in -er or -or, e.g., worker,
    accelerator.

    View Slide

  35. ENCAPSULATION
    Promoting

    View Slide

  36. CONQUERING YOUR
    Fear of Facades

    View Slide

  37. $date = new DateTime('now', 'America/Chicago');

    $date->format('Y-m-d H:i'); 

    // 2018-07-25 09:00 


    $date->setTimezone('Australia/Sydney');

    $date->format('Y-m-d H:i'); 

    // 2018-07-26 00:00

    View Slide

  38. MATTER
    Ergonomics

    View Slide

  39. PUSH SIDE WORK TO
    Event Listeners

    View Slide

  40. GOD OBJECTS
    Breaking up

    View Slide

  41. NEW CONCEPTS
    Uncovering

    View Slide

  42. FUNCTION
    Maybe you just need a

    View Slide

  43. Thanks!
    @adamwathan
    https://adamwathan.me

    View Slide