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 full-size slide

  2. $gardener = new Gardener; 

    $gardener->water($plant);

    View full-size slide

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

    names.reverse()

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

    View full-size slide

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

    names.split(', ') 

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

    View full-size slide

  5. $date = new DateTime;

    $date->format('l');

    // 'Wednesday'

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

  14. METHODS ARE
    Affordances

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

  22. A
    CAN
    A
    GARDENER
    WATERED
    PLANT
    BE
    USING

    View full-size slide

  23. A
    CAN
    PLANT
    WATERED
    BE

    View full-size slide

  24. $gardener = new Gardener; 

    $gardener->water($plant);

    View full-size slide

  25. $plant->water();

    View full-size slide

  26. AGENT NOUNS
    Eliminating

    View full-size slide

  27. 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 full-size slide

  28. ENCAPSULATION
    Promoting

    View full-size slide

  29. CONQUERING YOUR
    Fear of Facades

    View full-size slide

  30. $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 full-size slide

  31. MATTER
    Ergonomics

    View full-size slide

  32. PUSH SIDE WORK TO
    Event Listeners

    View full-size slide

  33. GOD OBJECTS
    Breaking up

    View full-size slide

  34. NEW CONCEPTS
    Uncovering

    View full-size slide

  35. FUNCTION
    Maybe you just need a

    View full-size slide

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

    View full-size slide