83: DHH - Stimulus in Practice + On Writing Software Well

Full Stack Radio

Episode | Podcast

Date: Wed, 28 Feb 2018 13:55:00 +0000

<p>Topics include:</p><ul> <li>What JavaScript looked like at Basecamp before Stimulus</li> <li>Why Basecamp chose to create a new framework instead of using React, Angular, or Vue</li> <li>How Basecamp uses server-rendered partials instead client-side templates</li> <li>Why David decided to start "On Writing Software Well"</li> <li>Evaluating patterns in practice and choosing between conflicting approaches</li> <li>Using concerns/mixins to organize classes with many features</li> <li>Applying resourceful routing to singular resources</li> </ul><p>Sponsors:</p><ul> <li> <a href="https://rollbar.com/fullstackradio">Rollbar</a>, sign up at https://rollbar.com/fullstackradio to try their Bootstrap Plan free for 90 days</li> <li> <a href="https://codeship.com">Codeship</a>, check out how they performed in <a href="https://codeship.com/forrester-wave-continuous-integration-report">Forrester's latest Continuous Integration Tools report</a> </li> </ul><p>Links:</p><ul> <li><a href="https://stimulusjs.org/">Stimulus Homepage</a></li> <li><a href="https://github.com/stimulusjs/stimulus">Stimulus on GitHub</a></li> <li>David's <a href="https://m.signalvnoise.com/stimulus-1-0-a-modest-javascript-framework-for-the-html-you-already-have-f04307009130">blog post</a> introducing Stimulus</li> <li><a href="https://github.com/turbolinks/turbolinks">Turbolinks</a></li> <li><a href="https://github.com/rails/webpacker">Webpacker</a></li> <li> <a href="https://signalvnoise.com/posts/3697-server-generated-javascript-responses">"Server-generated JavaScript Responses (SJR)"</a> (2013)</li> <li> <a href="http://api.rubyonrails.org/classes/ActionController/MimeResponds.html#method-i-respond_to">respond_to</a>, returning multiple formats from the same Rails controller</li> <li>"On Writing Software Well" <ul> <li><a href="https://www.youtube.com/watch?v=wXaC0YvDgIo&amp;list=PL9wALaIpe0Py6E_oHCgTrD6FvFETwJLlx&amp;index=1">1: Removing the need for code comments</a></li> <li><a href="https://www.youtube.com/watch?v=M3JPTOTqsnE&amp;list=PL9wALaIpe0Py6E_oHCgTrD6FvFETwJLlx&amp;index=2">2: Using callbacks to manage auxiliary complexity</a></li> <li><a href="https://www.youtube.com/watch?v=lEUkarkROv0&amp;index=3&amp;list=PL9wALaIpe0Py6E_oHCgTrD6FvFETwJLlx">3: Using globals when the price is right</a></li> <li><a href="https://www.youtube.com/watch?v=hkmrfjex7jI&amp;list=PL9wALaIpe0Py6E_oHCgTrD6FvFETwJLlx&amp;index=4">4: Not every model is backed by a database</a></li> <li><a href="https://www.youtube.com/watch?v=5hN6OZDyQtk&amp;list=PL9wALaIpe0Py6E_oHCgTrD6FvFETwJLlx&amp;index=5">5: Testing without test damage or excessive isolation</a></li> </ul> </li> <li>Basecamp's <a href="https://www.youtube.com/channel/UCdx5Dk3EWTe2i8YDA7bfl6g">"Getting Real"</a> YouTube channel</li> </ul>