4 ms·
Ask HN: Resources about writing reliable software
I'm looking for books / articles about how to write reliable software.
There is a lot of focus in the web / startup world on writing code as fast as possible with the general assumption that you can always fix your bugs once they're in production (ie 'Move fast and break things').
I don't see many articles on general strategies / ways of thinking / processes to put in place when you can't afford to have bugs in your software. I'm not writing airplane-level, formally-verified code either (the level I'm aiming for is that the user can't do his job if the app fails but no one is going to die either)
More specifically, we're writing mobile apps where some of the users don't have network connectivity for a part of the day, so syncing is a big issue.
Thanks for all your ideas!
- brudgers 9y agoProgramming Erlang: Software for a Concurrent World, Joe Armstrong. The tldr; is "Let it crash." From an engineering perspective, this seems like the sensible approach. Let it crash has been field tested in life and death uses: https://www.hq.nasa.gov/alsj/a11/a11.1201-pa.html https://www.hq.nasa.gov/alsj/a11/a11.1201-pa.html
- domnomnom 9y agoI don’t think books are very helpful, you basically just write lots of functions with immutable data structures. It’s hard to understand unless you’re forced into functional programming. I recommend clojure. Programming in a functional paradigm is closer to writing mathematical proofs. It’s not fun at first but it will totally change the way you think about programming.