Keeping Software Soft

D3e3f4ac37c02289f5dfed115949fc88?s=47 John Kary
January 17, 2015

Keeping Software Soft

Software provides continual value when it can evolve with the business. But without proper care it's easy for software to become rigid and difficult to change--it stops being soft. In this talk John introduces ways to think of software as independent, replaceable components.

D3e3f4ac37c02289f5dfed115949fc88?s=128

John Kary

January 17, 2015
Tweet

Transcript

  1. 4.
  2. 8.

    $ ls -l | grep "b" fabien.txt rabid-bear.rb sunk-cost.bl zabbazabba.do

    ! ! $ tail -f logs/prod.log | grep "error" [2015-01-16 21:15:45] app.error — Uncaught Exception [2015-01-16 23:22:42] app.error — Invalid argument "1" expected "2" [2015-01-17 00:01:52] app.error — SQL parse error "); DROP TABLE St
  3. 9.

    $ ls -l | grep "b" fabien.txt rabid-bear.rb sunk-cost.bl zabbazabba.do

    ! ! $ tail -f logs/prod.log | grep "error" [2015-01-16 21:15:45] app.error — Uncaught Exception [2015-01-16 23:22:42] app.error — Invalid argument "1" expected "2" [2015-01-17 00:01:52] app.error — SQL parse error "); DROP TABLE St Unix Pipes
  4. 13.
  5. 16.

    GET /index.html HTTP/1.1 Host: www.lmgtfy.com www.lmgtfy.com HTTP/1.1 200 OK Date:

    Mon, 23 May 2005 22:38:34 GMT Last-Modified: Wed, 08 Jan 2003 23:11:55 GMT ETag: "3f80f-1b6-3e1cb03b" Content-Type: text/html; charset=UTF-8 ! <html><head><title>An Example Page</title></head> <body>Hello World</body></html>
  6. 17.
  7. 21.

    Interface "[Prohibits] access to all resources by default, allowing access

    only through well-defined entry points" http://en.wikipedia.org/wiki/Interface_(computing) "[A] shared boundary across which two separate components of a computer system exchange information."
  8. 22.
  9. 23.
  10. 24.
  11. 31.
  12. 43.
  13. 44.
  14. 53.

    Further Study Basic of the Unix Philosophy! http://www.catb.org/esr/writings/taoup/html/ch01s06.html The Art

    of Unix Programming (2003) ! The Art of Destroying Software! Talk by Greg Young (Unsure location/date) http://vimeo.com/108441214 ! Stop Writing Classes! Jack Diederich @ PyCon 2012 https://www.youtube.com/watch?v=o9pEzgHorH0 ! Architecture the Lost Years Robert C Martin (Uncle Bob) @ Ruby Midwest 2011 http://confreaks.com/videos/759-rubymidwest2011-keynote-architecture-the-lost-years ! Seven Languages in Seven Weeks (Erlang chapter)! https://pragprog.com/book/btlang/seven-languages-in-seven-weeks
  15. 54.

    Homework • Build small things • Build simple things and

    compose them together • Connect things by generic messages • Isolate complexity into more small things • Build things that can be thrown away