$30 off During Our Annual Pro Sale. View Details »

What Can We Learn With JavaScript Fatigue? - NebraskaJS

What Can We Learn With JavaScript Fatigue? - NebraskaJS

Lucas Fernandes da Costa

July 21, 2017
Tweet

More Decks by Lucas Fernandes da Costa

Other Decks in Programming

Transcript

  1. 1
    PAGE NUMBER
    What can we
    learn with
    JavaScript
    Fatigue?
    github: lucasfcosta
    twitter: lfernandescosta L U C A S F C O S T A . C O M

    View Slide

  2. 2
    PAGE NUMBER
    github: lucasfcosta
    twitter: lfernandescosta L U C A S F C O S T A . C O M

    View Slide

  3. 3
    PAGE NUMBER
    github: lucasfcosta
    twitter: lfernandescosta L U C A S F C O S T A . C O M

    View Slide

  4. PAGE NUMBER 4 LUCASFCOSTA.COM

    View Slide

  5. PAGE NUMBER LUCASFCOSTA.COM
    5
    Realities
    of your
    industry
    101

    View Slide

  6. PAGE NUMBER
    REALITIES OF YOUR INDUSTRY 101
    6 LUCASFCOSTA.COM
    Software
    solves
    business
    problems
    Don't Call Yourself A Programmer, And
    Other Career Advice - Patrick McKenzie

    View Slide

  7. REALITIES OF YOUR INDUSTRY 101
    PAGE NUMBER LUCASFCOSTA.COM
    7
    You are not paid to write code
    (sorry for that)

    View Slide

  8. PAGE NUMBER LUCASFCOSTA.COM
    REALITIES OF YOUR INDUSTRY 101
    8
    Technology
    is not a goal

    View Slide

  9. PAGE NUMBER LUCASFCOSTA.COM
    9
    REALITIES OF YOUR INDUSTRY 101
    versus
    Revenue
    Cost
    All that matters™

    View Slide

  10. PAGE NUMBER LUCASFCOSTA.COM
    REALITIES OF YOUR INDUSTRY 101
    10

    View Slide

  11. PAGE NUMBER LUCASFCOSTA.COM
    11
    Realities
    of your
    industry
    101
    REALITIES OF YOUR INDUSTRY 101

    View Slide

  12. PAGE NUMBER LUCASFCOSTA.COM
    12
    Realities
    of your
    industry
    101
    REALITIES OF YOUR INDUSTRY 101

    View Slide

  13. PAGE NUMBER LUCASFCOSTA.COM
    13
    Realities of
    capitalism
    101
    REALITIES OF YOUR INDUSTRY 101

    View Slide

  14. 14
    PAGE NUMBER
    64%
    36%
    Coding
    Design
    Some Experience With Automated Aids To The Design Of Large-Scale Reliable Software - 1975
    Occurrence of Errors
    REALITIES OF YOUR INDUSTRY 101
    LUCASFCOSTA.COM

    View Slide

  15. PAGE NUMBER LUCASFCOSTA.COM
    15
    REALITIES OF YOUR INDUSTRY 101
    In the NASA Apollo project about
    73% of all errors were design errors.
    HAMILTON, M., AND ZELDIN, S.
    "Higher order software--a
    methodology for defining software,"

    View Slide

  16. 16
    PAGE NUMBER

    Louis Srygley
    Without requirements or design,
    programming is the art of adding
    bugs to an empty text file.
    REALITIES OF YOUR INDUSTRY 101
    LUCASFCOSTA.COM

    View Slide

  17. PAGE NUMBER LUCASFCOSTA.COM
    REALITIES OF YOUR INDUSTRY 101
    17
    JS
    These things
    exist to solve
    problems.

    View Slide

  18. PAGE NUMBER 18
    JS Fatigue happens when people
    use tools they don't need to solve
    problems they don't have.
    REALITIES OF YOUR INDUSTRY 101
    LUCASFCOSTA.COM

    View Slide

  19. PAGE NUMBER LUCASFCOSTA.COM
    REALITIES OF YOUR INDUSTRY 101
    Donald Knuth

    19
    "Premature
    optimization is
    the root of all
    evil"

    View Slide

  20. PAGE NUMBER LUCASFCOSTA.COM
    REALITIES OF YOUR INDUSTRY 101
    20
    Remember this?

    View Slide

  21. PAGE NUMBER LUCASFCOSTA.COM
    21
    REALITIES OF YOUR INDUSTRY 101
    analysis
    paralysis

    View Slide

  22. PAGE NUMBER LUCASFCOSTA.COM
    22
    REALITIES OF YOUR INDUSTRY 101
    analysis
    paralysis

    View Slide

  23. PAGE NUMBER 23
    JavaScript

    View Slide

  24. PAGE NUMBER 24
    A bunch of
    impressive
    numbers™
    LUCASFCOSTA.COM
    JAVASCRIPT

    View Slide

  25. PAGE NUMBER LUCASFCOSTA.COM
    JAVASCRIPT
    25
    482,971
    packages on

    View Slide

  26. PAGE NUMBER LUCASFCOSTA.COM
    JAVASCRIPT
    26
    ~479
    packages/day

    View Slide

  27. 27
    PAGE NUMBER
    The number of people born daily in Nebraska
    JAVASCRIPT
    6.5
    times
    LUCASFCOSTA.COM

    View Slide

  28. PAGE NUMBER 28 LUCASFCOSTA.COM
    JAVASCRIPT

    View Slide

  29. PAGE NUMBER LUCASFCOSTA.COM
    29
    ? But how
    did that
    happen?
    JAVASCRIPT

    View Slide

  30. JAVASCRIPT
    PAGE NUMBER LUCASFCOSTA.COM
    30
    Transpilers

    View Slide

  31. JAVASCRIPT
    PAGE NUMBER LUCASFCOSTA.COM
    31
    Module
    Bundlers

    View Slide

  32. JAVASCRIPT
    PAGE NUMBER LUCASFCOSTA.COM
    32
    Front-end
    Frameworks

    View Slide

  33. PAGE NUMBER

    33
    Abstractions are
    necessary to reduce the
    cognitive load of how
    things work so you can
    focus on creating.
    Eric Clemmons
    LUCASFCOSTA.COM
    JAVASCRIPT

    View Slide

  34. PAGE NUMBER 34
    The web
    platform
    moves
    too fast
    LUCASFCOSTA.COM
    JAVASCRIPT

    View Slide

  35. PAGE NUMBER 35
    More tools
    mean more
    choices
    LUCASFCOSTA.COM
    JAVASCRIPT

    View Slide

  36. PAGE NUMBER LUCASFCOSTA.COM
    36
    The Unix Philosophy
    JAVASCRIPT

    View Slide

  37. PAGE NUMBER LUCASFCOSTA.COM
    37
    JAVASCRIPT
    Do one
    thing, and
    do it well.

    View Slide

  38. PAGE NUMBER LUCASFCOSTA.COM
    38
    Do one
    thing, and
    do it well.
    JAVASCRIPT

    View Slide

  39. PAGE NUMBER LUCASFCOSTA.COM
    39
    JAVASCRIPT
    Write
    programs
    that work
    together.

    View Slide

  40. PAGE NUMBER 40
    Natural
    Selection
    LUCASFCOSTA.COM
    JAVASCRIPT

    View Slide

  41. M A R K 0 3 P R E S E N T A T I O N
    PAGE NUMBER 41
    Our
    tools are
    not new
    LUCASFCOSTA.COM

    View Slide

  42. PAGE NUMBER 42
    These things are not new
    LUCASFCOSTA.COM
    JAVASCRIPT

    View Slide

  43. PAGE NUMBER 43
    These things are not new
    LUCASFCOSTA.COM
    JAVASCRIPT
    E4X
    JSX

    View Slide

  44. PAGE NUMBER 44
    These things are not new
    LUCASFCOSTA.COM
    JAVASCRIPT

    View Slide

  45. PAGE NUMBER 45
    These things are not new
    grunt
    npm
    webpack
    LUCASFCOSTA.COM
    JAVASCRIPT

    View Slide

  46. PAGE NUMBER 46
    These things are not new
    LUCASFCOSTA.COM
    JAVASCRIPT
    Symbian

    WRT

    View Slide

  47. PAGE NUMBER 47
    How to deal with it

    View Slide

  48. PAGE NUMBER LUCASFCOSTA.COM
    48
    HOW TO DEAL WITH IT
    you don’t
    need to know
    everything

    View Slide

  49. PAGE NUMBER LUCASFCOSTA.COM
    49
    start from the
    beginning
    HTTP
    CompSci

    Fundamentals
    HOW TO DEAL WITH IT

    View Slide

  50. PAGE NUMBER LUCASFCOSTA.COM
    50
    HOW TO DEAL WITH IT
    when learning,
    avoid
    boilerplates

    View Slide

  51. PAGE NUMBER LUCASFCOSTA.COM
    51
    HOW TO DEAL WITH IT
    don’t be too
    attached to a
    single technology

    View Slide

  52. PAGE NUMBER LUCASFCOSTA.COM
    52
    HOW TO DEAL WITH IT
    dig
    deep

    View Slide

  53. PAGE NUMBER LUCASFCOSTA.COM
    53
    HOW TO DEAL WITH IT
    What I cannot
    create I do not
    understand.
    Richard Feynman

    View Slide

  54. PAGE NUMBER LUCASFCOSTA.COM
    54
    HOW TO DEAL WITH IT
    don’t get
    ahead of
    yourself

    View Slide

  55. PAGE NUMBER LUCASFCOSTA.COM
    55
    engineering
    software
    development
    HOW TO DEAL WITH IT

    View Slide

  56. PAGE NUMBER 56
    This is
    Barcelona.
    LUCASFCOSTA.COM
    HOW TO DEAL WITH IT

    View Slide

  57. PAGE NUMBER 57
    This is Barcelona as
    seen from the sky.
    LUCASFCOSTA.COM
    HOW TO DEAL WITH IT

    View Slide

  58. PAGE NUMBER 58
    Be a town planner
    LUCASFCOSTA.COM
    HOW TO DEAL WITH IT

    View Slide

  59. PAGE NUMBER 59
    Software is
    flexible.
    Engineering
    is not.
    HOW TO DEAL WITH IT

    View Slide

  60. 60
    PAGE NUMBER
    We can break things
    We spend more time
    designing and thinking
    than building
    We can build as many
    times as we want
    We can always change
    things
    Our build time is compile time.
    HOW TO DEAL WITH IT

    View Slide

  61. PAGE NUMBER 61
    LET IT GROW
    ADAPT AS NEEDED
    Be a town planner.
    LUCASFCOSTA.COM
    HOW TO DEAL WITH IT

    View Slide

  62. PAGE NUMBER LUCASFCOSTA.COM
    HOW TO DEAL WITH IT

    62
    Abstractions only work well
    in the right context, and the
    right context develops as
    the system develops.
    Sam Koblenski

    View Slide

  63. PAGE NUMBER LUCASFCOSTA.COM
    63
    HOW TO DEAL WITH IT
    strive to be lazy

    View Slide

  64. PAGE NUMBER LUCASFCOSTA.COM
    64
    HOW TO DEAL WITH IT
    talk to
    people

    View Slide

  65. PAGE NUMBER LUCASFCOSTA.COM
    65
    HOW TO DEAL WITH IT
    build
    things

    View Slide

  66. PAGE NUMBER LUCASFCOSTA.COM
    66
    HOW TO DEAL WITH IT
    solve problems

    View Slide

  67. PAGE NUMBER LUCASFCOSTA.COM
    67
    solve problems
    thank you
    L U C A S F C O S T A . C O M github: lucasfcosta
    twitter: lfernandescosta

    View Slide

  68. 68
    PAGE NUMBER
    Related Material/References
    THANK YOU!
    • Don't Call Yourself A Programmer, And Other Career Advice (Highly Recommended)

    Patrick McKenzie

    http://www.kalzumeus.com/2011/10/28/dont-call-yourself-a-programmer/
    • The Cost of Abstraction

    Sam Koblenski

    http://sam-koblenski.blogspot.com/2014/07/the-cost-of-abstraction.html
    • The Deep Roots of Javascript Fatigue

    Calvin French-Owen

    https://segment.com/blog/the-deep-roots-of-js-fatigue/
    • JavaScript Fatigue

    Eric Clemmons

    https://medium.com/@ericclemmons/javascript-fatigue-48d4011b6fc4
    • JavaScript Fatigue Fatigue - Dr. Axel Rauschmayer

    http://2ality.com/2016/02/js-fatigue-fatigue.html
    • JavaScript Fatigue, AMP, and Paths.js - JS Party Episode #3

    https://changelog.com/jsparty/3
    Building Microservices (Book)

    Sam Newman

    View Slide