CodeFest 2018. Dylan Beattie (Skills Matter) — Life, Liberty and the Pursuit of APIness : The Secret to Happy Code

CodeFest 2018. Dylan Beattie (Skills Matter) — Life, Liberty and the Pursuit of APIness : The Secret to Happy Code

Посмотрите выступление Dylan: https://2018.codefest.ru/lecture/1246/

We spend our lives working with systems created by other people. From the UI on our phones to the cloud infrastructure that runs so much of the modern internet, these interactions are fundamental to our experience of technology - as engineers, as developers, as users - and user experiences are viral. Great user experiences lead to happy, productive people; bad experiences lead to frustration, inefficiency and misery.

Whether we realise it or not, when we create software, we are creating user experiences. People are going to interact with our code. Maybe those people are end users; maybe they're the other developers on your team. Maybe they're the mobile app team who are working with your API, or the engineers who are on call the night something goes wrong. These may be radically different use cases, but there's one powerful principle that works across all these scenarios and more - and it's called discoverability. In this talk, we'll draw on ideas and insight from user experience, API design, psychology and education to show how you can incorporate discoverability into every layer of your application. We'll look at some real-world systems, and we'll discuss how how discoverability works with different interaction paradigms. Because, whether you're building databases, class libraries, hypermedia APIs or mobile apps, sooner or later somebody else is going to work with your code - and when they do, wouldn't it be great if they went away afterwards with a smile on their face?

16b6c87229eaf58768d25ed7b2bbbf52?s=128

CodeFest

April 09, 2018
Tweet

Transcript

  1. Life, Liberty, and the Pursuit of APIness The Secret to

    Happy Code Dylan Beattie @dylanbeattie www.dylanbeattie.net
  2. @dylanbeattie • Building websites since 1992 • Microsoft MVP •

    London .NET User Group • www.dylanbeattie.net • dylan@dylanbeattie.net
  3. None
  4. http://starnewshq.deviantart.com/art/Comedy-and-Tragedy-325546823

  5. None
  6. http://www.mornota.com/beyninizi-gelistirin/

  7. EXPERIENCE EXPERIENCE EXPERTISE EXPERTISE

  8. EXPERIENCE EXPERTISE

  9. How To Draw An Owl: 1: draw an oval for

    the head 2: draw an oval for the body 3: draw the rest of the owl
  10. EXPERIENCE EXPERTISE

  11. Server Error in '/' Application Looks like you forgot to

    register the http module Castle.MicroKernel.Lifestyle.PerWebRequestLifestyleModule. To fix this add <add name="PerWebRequestLifestyle" type="Castle.MicroKernel.Lifestyle.PerWebRequestLifeStyleModule, Castle.Windsor" /> to the <httpModules> section on your web.config
  12. Do you believe in… the users?

  13. None
  14. (image from @DrunkVS via Twitter)

  15. None
  16. None
  17. None
  18. By MBlairMartin - Own work, CC BY-SA 4.0, https://commons.wikimedia.org/w/index.php?curid=50244059

  19. A>

  20. A>hello

  21. A>hello Bad command or file name A>

  22. A>hello Bad command or file name A>menu

  23. A>hello Bad command or file name A>menu Bad command or

    file name A>
  24. A>hello Bad command or file name A>menu Bad command or

    file name A>help
  25. A>hello Bad command or file name A>menu Bad command or

    file name A>help Bad command or file name A>
  26. A>

  27. A>if you're happy and you know it, syntax error

  28. A>if you're happy and you know it, syntax error Syntax

    error A>
  29. A>if you're happy and you know it, syntax error Syntax

    error A>if you're happy and you know it, syntax error
  30. A>if you're happy and you know it, syntax error Syntax

    error A>if you're happy and you know it, syntax error Syntax error A>
  31. A>if you're happy and you know it, syntax error Syntax

    error A>if you're happy and you know it, syntax error Syntax error A>if you're happy and you know it and you really want to show it if you're happy and you know it syntax error
  32. A>if you're happy and you know it, syntax error Syntax

    error A>if you're happy and you know it, syntax error Syntax error A>if you're happy and you know it and you really want to show it if you're happy and you know it syntax error Syntax error A>
  33. None
  34. Type Your Program Here

  35. Microsoft Edge video

  36. None
  37. None
  38. http://maxpixel.freegreatpicture.com/Heartbeat-Pulse-Healthcare-Heart-Medicine-163709

  39. https://www.flickr.com/photos/philliecasablanca/2070476609/in/photostream/

  40. None
  41. None
  42. None
  43. None
  44. Type Your Program Here

  45. https://practicalmotoring.com.au/car-advice/common-car-warning-lights-explained/

  46. Monty Python Lumberjack.

  47. Time CPU Consumption 100% 80% 60% 40% 20% 0%

  48. Time CPU Consumption 100% 80% 60% 40% 20% 0%

  49. Time CPU Consumption 100% 80% 60% 40% 20% 0%

  50. Time CPU Consumption 100% 80% 60% 40% 20% 0%

  51. Time CPU Consumption 100% 80% 60% 40% 20% 0%

  52. Time CPU Consumption 100% 80% 60% 40% 20% 0% 10:00

    11:00 12:00 13:00 14:00 15:00
  53. Time CPU Consumption 100% 80% 60% 40% 20% 0% Jan

    Feb Mar Apr May Jun Jul
  54. FATAL ERROR WARN INFO DEBUG

  55. FATAL •Application is completely unresponsive •Multiple users affected with immediate

    effect •Immediate attention. Stop what you’re doing and look into it.
  56. ERROR & WARN •They will happen. •ERROR – one person

    noticed, maybe? •WARN – nobody noticed but it’s still odd. •Individual messages probably aren’t useful
  57. https://universitycompare.com/articles/worst-commuters-sit-next-tube/

  58. INFO •Everything’s fine •Startup, shutdown, cache recycle •In a perfect

    world, INFO is all you’ll ever see.
  59. DEBUG http://hyperboleandahalf.blogspot.co.uk/

  60. http://hyperboleandahalf.blogspot.co.uk/

  61. None
  62. log.Fatal Log.Error log.Warn log.Info log.Debug ――――― Wake_Me_Up_At_4AM_On_A_Sunday() ――――― Apologize_To_User_And_Raise_A_Ticket() ――――

    Make_A_Note_In_Case_It_Happens_Again() ―――― Everything_Is_Fine_Just_Checking_In() ――――― Fill_My_C_Drive_With_Stack_Traces() Adapted from a post by Daniel Lebrero / https://labs.ig.com/logging-level-wrong-abstra
  63. The Rules of Happy Code

  64. None
  65. None
  66. None
  67. Oxfordian Kissuth via Wikimedia Commons : https://commons.wikimedia.org/wiki/File:Hyde_Park_sign_post.jpg

  68. None
  69. None
  70. Life, Liberty, and the Pursuit of APIness The Secret to

    Happy Code Dylan Beattie @dylanbeattie www.dylanbeattie.net
  71. None
  72. None
  73. Enterprise Warp Drive http://memory-

  74. None
  75. Request Timed Out

  76. None
  77. Oxfordian Kissuth via Wikimedia Commons : https://commons.wikimedia.org/wiki/File:Hyde_Park_sign_post.jpg

  78. None