Skip to content

Instantly share code, notes, and snippets.

@folsen
Created April 28, 2015 08:29
Show Gist options
  • Save folsen/789d1ffd0cc17b5e4c8a to your computer and use it in GitHub Desktop.
Save folsen/789d1ffd0cc17b5e4c8a to your computer and use it in GitHub Desktop.

Notes from DHH RailsConf Keynote 2015

monolith vs integrated system - i really hope integrated system doesn't catch on, sooo buzzwordy :P if you like monoliths you should just be proud of that and be able to defend it and say monolith

monoliths vs bad software - I totally agree that there's nothing inherently wrong in monoliths and the term of derision usually just means "this is bad software"

while talking about monoliths I'm really sad he didn't actually address the fact that 99% of Rails apps become unmanageable and unmaintainable after a year of development, yeah it's bad software, but why does almost all Rails software become bad and what can we do about it?

it's not going to become better by making 10 bad applications - the reality is that in most cases it does become better because now you have years worth of more knowledge of your domain and rewriting the software from scratch you bake all that knowledge in, you could've rewritten your monolith and see the same increase in code quality, but that's a higher investment and higher risk than people are willing to take, microservices are popular because they allow people to refactor their app in small parts at a time

"the catalogue is static but the cart is per user so boho I can't cache, i'm going to make it into an SPA" - what? who would say that? SPA's have nothing to do with page speed or caching or any of the things he's talking about with turbolinks, SPAs are about complex client-side behavior that need to be expressed in javascript because you can't handle dom manipulation and animations and everything else like that server-side

i really like turbolinks, it's totally the way to go for a ton of use-cases where you don't need that complex client-side behavior, but either he deals with incredibly stupid over-engeering people on the regular or he's making up a "bad guy" to hold forth as motivation for it

almost-native turbolinks, sounds cool, I wonder if they can get native feel, i'd imagine they're gonna have a hard time getting button presses and scrolling right in webkit, sounds similar to React Native but React Native renders to actual native components and not rendered through webkit

ActionCable - woo finally I don't need to create a completely separate app to have websockets, it's a shame they're 5 years too late for this and javascript managed to take over from them because of it. I wonder how Rails will actually manage these connections, Rails/Ruby isn't exactly known for it's concurrency prowess, feels like you're gonna be able to have like 10-100 connections max on a server

not having to deal with DOM on client side - woop, very nice, his example of a chat is really poor though because that's like the one place where you don't want to do this, re-rendering the whole page on every message? that just spells trouble

my overall takeaway is: nice to see Rails still actively moving towards new things and better flexibility without compromising what makes Rails great sad to not see any comments about why everyone dislikes the monolithic structure of rails and how to improve that DHH's own idea of what Rails is rings very true "It's a toolkit to build adequate software", if you want to build great software, look elsewhere, if adequate is good enough, stick to Rails

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment