Software Development Axioms, 2nd Edition
With Membership
Suggested price

Software Development Axioms, 2nd Edition

Simple Rules for Higher Quality

About the Book

Welcome to the Second Edition of this book!

These axioms, when followed diligently,

  • applies no matter what language/framework you are in,
  • improves quality,
  • becomes deploy-friendly,
  • provides fewer and shorter troubleshooting events!

If you are a student of software, this is all the stuff they should be teaching you, but aren't!

I have been building large-scale systems for over 30 years, and ultimately, a small number of simple rules deliver higher quality implementations. The software I build runs factories in real time, and unhandled exceptions are not an option! Neither is constantly restarting applications; I have direct evidence that my apps run for literally months without shutting them down!

Using care up-front pays back handsomely with fewer and shorter troubleshooting events.

Face it: those who maintain and deploy systems (and their users) we "throw over the wall" don't have the time or inclination to deal with "mysterious" failures that leave logs filled with cryptic stack dumps, or worse yet, little or no trace at all.

It's in our power to put an end to their pain. Dig in, and Level Up!

  • Share this book

  • Categories

    • Computers and Programming
    • .NET
    • Java
    • JavaScript
    • Software
    • Databases
    • Software
    • Software Architecture
  • Feedback

    Email the Author(s)

About the Author

John Gmutza
John "g$" Gmutza

Software author who's seen it come and go, mostly go.... The software I build runs factories in real time, so unhandled exceptions are not an option. This book shows you the techniques that go into building applications that can run for literally months without shutting them down.

About the Contributors

Haley Gmutza
Haley Gmutza


Jim Clack
Jim Clack

Early Reviewer

Tim Hooker
Tim Hooker

Early Reviewer

Table of Contents

  • Preface
    • Second Edition
    • About the Cover
  • Software Development Axioms
    • Terms of Endearment
    • Axiom
    • Dogma
    • Habit
    • Introducing the Axioms to a Codebase
    • Be Lazy
    • What’s Next?
  • That One’s A “True”
  • The Egg
  • Closing Safely
  • Rube Goldberg 3.0
  • Unmanaged Code Considered Harmful
  • No Wonder Software Works Like Shit!
  • Are You Using Threads for Everything Yet?
  • Service Container is the Best Thing Since Timesliced Bread
  • Tales From The Factory
  • Using Annotations in an IoC Protocol
  • Code Without Tests is Like a Life Without Sunshine
  • Don’t Float Away
  • A Journey into the Depths of Hell, aka Interop
  • If I See Another NullPointerException I’m Gonna Yak!
  • PSA For Control Structures
  • Protect Your Code From “Joey”
  • Axioms: Input Validation
    • Trust No One
    • Help Others
    • Say Something Righteous!
    • Special CLR Section
    • Special Javascript Section
    • Defense in Depth
    • Summary
  • Axioms: Naming
    • Length
    • Renaming
  • Axioms: Guarantee of non-NULL
    • Collections
    • Object-oriented Programming
  • Axioms: Immutability and Deep Protection
    • Instances
    • Collections
    • Collection Elements
  • Axioms: Caller Controls Context
    • Technique
    • Special .NET Section
  • Axioms: Error Propagation
    • Grrrr, Fire Bad!!!
    • Top-Level Contexts
    • Don’t make Decisions for the Caller
    • Don’t Strip Information
    • Fucking and Punching
  • Axioms: Error Control
    • Foreign Code
    • Logging
    • Special Java Section
    • Special IDE Section
    • Resources and Error Control
    • Another IDE Epic Fail
    • Reducing Burden
    • Special Java Section
    • Don’t Catch NullPointerException
    • Visual Aid
  • Axioms: Intra-function Organization
    • Formatting and Whitespace
    • Documentation Comments
    • Size
    • Fail Fast
    • Data Flow
    • One Line, One Statement
  • Axioms: Handling Resources
    • Using Resources
    • Accepting Resources
    • RAII Bye Bye
    • File Names
    • Other Resources
    • Format Your Way out of a Paper Bag
  • Axioms: Lifecycle
    • Lifecycle Start
    • Lifecycle Stop
    • Duals
  • Axioms: Taint
    • NULL is Taint
    • unsigned is Taint
    • IDisposable/AutoCloseable is Taint
    • Special .NET Section: async/await is Taint
  • Axioms: Multi-threading
    • Debugging
    • Data flow
    • Sharing
    • Thread-safety
    • Use Platform Tools
    • The UI Thread
  • Axioms: Writing Tests
    • Prototyping the Design
    • Positive and Negative
    • More Greek than Italian
    • Three from Column A
    • Tests are Code Too
  • Axioms: Troubleshooting
    • Home Sweet Debugger
    • Playing Away
    • Home Again, Home Again, Jiggity-Jig
    • Special .NET Section: TraceSwitch
  • Axioms: SQL
    • Not String Processing
    • Use Parameter Markers
    • Use Configuration
    • Dynamic WHERE
    • Stored Procedures Suck at Dynamic SQL
    • SQL Is Code Too!
    • Don’t Rewrite History
  • Axioms: XML
    • Use High-level Tooling
    • Use Writer Tooling
    • Use DOM Tooling
    • Use XSL Transforms
  • List of Axioms
  • Epilogue
    • Second Edition Epilogue

The Leanpub 60 Day 100% Happiness Guarantee

Within 60 days of purchase you can get a 100% refund on any Leanpub purchase, in two clicks.

Now, this is technically risky for us, since you'll have the book or course files either way. But we're so confident in our products and services, and in our authors and readers, that we're happy to offer a full money back guarantee for everything we sell.

You can only find out how good something is by trying it, and because of our 100% money back guarantee there's literally no risk to do so!

So, there's no reason not to click the Add to Cart button, is there?

See full terms...

80% Royalties. Earn $16 on a $20 book.

We pay 80% royalties. That's not a typo: you earn $16 on a $20 sale. If we sell 5000 non-refunded copies of your book or course for $20, you'll earn $80,000.

(Yes, some authors have already earned much more than that on Leanpub.)

In fact, authors have earnedover $13 millionwriting, publishing and selling on Leanpub.

Learn more about writing on Leanpub

Free Updates. DRM Free.

If you buy a Leanpub book, you get free updates for as long as the author updates the book! Many authors use Leanpub to publish their books in-progress, while they are writing them. All readers get free updates, regardless of when they bought the book or how much they paid (including free).

Most Leanpub books are available in PDF (for computers) and EPUB (for phones, tablets and Kindle). The formats that a book includes are shown at the top right corner of this page.

Finally, Leanpub books don't have any DRM copy-protection nonsense, so you can easily read them on any supported device.

Learn more about Leanpub's ebook formats and where to read them

Write and Publish on Leanpub

You can use Leanpub to easily write, publish and sell in-progress and completed ebooks and online courses!

Leanpub is a powerful platform for serious authors, combining a simple, elegant writing and publishing workflow with a store focused on selling in-progress ebooks.

Leanpub is a magical typewriter for authors: just write in plain text, and to publish your ebook, just click a button. (Or, if you are producing your ebook your own way, you can even upload your own PDF and/or EPUB files and then publish with one click!) It really is that easy.

Learn more about writing on Leanpub