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

Simplicity

 Simplicity

How principles impact my work, selection of tools and code that I write. This talk is a work-in-progress for me as well, but I believe it is way too easy for us to use new frameworks and tools only for the sake of using them. This talk won't answer all your questions but it may help you look at things in a different way.

krzychukula

March 19, 2016
Tweet

More Decks by krzychukula

Other Decks in Programming

Transcript

  1. Simplicity
    @krzychukula

    View Slide

  2. 1. Simple
    2. Principles and Ideas
    3. Tools and Code

    View Slide

  3. Do you like …?

    View Slide

  4. Simple vs Easy

    View Slide

  5. Simple == One Thing

    View Slide

  6. Easy == Familiar

    View Slide

  7. Simple Complex

    View Slide

  8. Easy
    Hard

    View Slide

  9. Simple Complex
    Easy
    Hard

    View Slide

  10. Simple Complex
    Easy
    Hard

    View Slide

  11. Simple Complex
    Easy function
    Hard

    View Slide

  12. Simple Complex
    Easy
    Hard

    View Slide

  13. Simple Complex
    Easy
    Hard Physics

    View Slide

  14. Simple Complex
    Easy
    Hard

    View Slide

  15. angular-typescript-react-babel-boilerplate

    View Slide

  16. View Slide

  17. angular-typescript-react-babel-boilerplate

    View Slide

  18. Simple Complex
    Easy boilerplate
    Hard

    View Slide

  19. Simple Complex
    Easy
    Hard

    View Slide

  20. Simple Complex
    Easy
    Hard FP

    View Slide

  21. Simple Complex
    Easy function boilerplate
    Hard FP Physics

    View Slide

  22. 2. Principles and Ideas

    View Slide

  23. Avoid Magic

    View Slide

  24. Avoid GWT

    View Slide

  25. Avoid Zone.js

    View Slide

  26. Obscure Spells

    View Slide

  27. Avoid DI Frameworks

    View Slide

  28. View Slide

  29. Magic has Costs

    View Slide

  30. Innovation Tokens

    View Slide

  31. Choose Boring Technology
    Dan McKinley

    View Slide

  32. One Innovation Token

    View Slide

  33. CV

    View Slide

  34. CVDD

    View Slide

  35. CV Driven Development

    View Slide

  36. Sunk Cost Fallacy

    View Slide

  37. The Law of the Instrument

    View Slide

  38. If the only tool you have is a hammer,
    everything looks like a nail.
    Abraham Maslow, 1966

    View Slide

  39. If the only tool you have is a RX.hammer,
    everything looks like a stream.
    Krzysztof Kula, 2016

    View Slide

  40. If the only tool you have is a Angular,
    everything looks like a directive.
    Krzysztof Kula, 2016

    View Slide

  41. If the only tool you have is a React,
    everything looks like a component.
    Krzysztof Kula, 2016

    View Slide

  42. Framework Developers

    View Slide

  43. View Slide

  44. “Our strategy around recruiting is to find the best
    and brightest engineers. We don’t bring them in
    specifically because the engineer knows Erlang,”
    Jamshid Mahdavi

    View Slide

  45. “Our strategy around recruiting is to find the best
    and brightest engineers. We don’t bring them in
    specifically because the engineer knows Erlang,”
    Jamshid Mahdavi

    View Slide

  46. “Our strategy around recruiting is to find the best
    and brightest engineers. We don’t bring them in
    specifically because the engineer knows Erlang,”
    Jamshid Mahdavi

    View Slide

  47. WhatsApp now has 900 million
    monthly active users.

    View Slide

  48. ~50 engineers

    View Slide

  49. View Slide

  50. Learn New Things

    View Slide

  51. Surgeon

    View Slide

  52. scalpel-chainsaw-boilerplate

    View Slide

  53. Checks

    View Slide

  54. First, do no harm

    View Slide

  55. Self Contained Systems

    View Slide

  56. Progressive Enhancement

    View Slide

  57. Surgeon

    View Slide

  58. 3. Tools and Code

    View Slide

  59. 1. Editor
    2. Code Style
    3. Builds
    4. Libraries
    5. this
    6. DI

    View Slide

  60. Editor

    View Slide

  61. Learn C The Hard Way

    View Slide

  62. View Slide

  63. THE RULES
    15 min
    HTML/CSS
    No previews

    View Slide

  64. Editor

    View Slide

  65. JavaScript Standard Code Style

    View Slide

  66. View Slide

  67. It just works.

    View Slide

  68. View Slide

  69. Builds

    View Slide

  70. npm install -g webpack

    View Slide

  71. npm install -g webpack

    View Slide

  72. npm install
    npm start

    View Slide

  73. Self Contained Systems

    View Slide

  74. View Slide

  75. thisless

    View Slide

  76. You Don’t Know JS
    Kyle Simpson

    View Slide

  77. function

    View Slide

  78. DI Without Magic

    View Slide

  79. function (config) {

    View Slide

  80. Most Important

    View Slide

  81. Avoid Magic

    View Slide

  82. Learn New Things

    View Slide

  83. Be Like a Surgeon

    View Slide

  84. Thanks!
    @krzychukula

    View Slide

  85. We’re Hiring!
    SmartRecruiters

    View Slide

  86. Questions?

    View Slide

  87. • Web dev in 2016: https://twitter.com/iamdevloper/status/694198210894520320
    • You could be better: https://twitter.com/andrestaltz/status/698958921717964800
    • Simple Made Easy by Rich Hickey: http://www.infoq.com/presentations/Simple-Made-Easy
    • Beyond Features by Dan North: https://www.youtube.com/watch?v=lz5HBtDl-1A
    • Choose Boring Technology by Dan McKinley: http://mcfunley.com/choose-boring-technology
    • Law of the Instrument: https://en.wikipedia.org/wiki/Law_of_the_instrument
    • http://codeinthedark.com/
    • http://standardjs.com/
    • XKCD Standards: https://xkcd.com/927/
    • You Don’t Know JS by Kyle Simpson: https://github.com/getify/You-Dont-Know-JS
    • 8 Lines of Code by Greg Young: http://www.infoq.com/presentations/8-lines-code-refactoring

    View Slide