Skip to content

Instantly share code, notes, and snippets.

@knzconnor
Forked from jbarnette/think.markdown
Created December 22, 2008 21:05
Show Gist options
  • Save knzconnor/39121 to your computer and use it in GitHub Desktop.
Save knzconnor/39121 to your computer and use it in GitHub Desktop.

Note to Self

Test

Tests build confidence. Write 'em. They'll save your ass, and they'll let you take a chainsaw to your code without being afraid of unintended consequences.

Automate

If it's happened more than twice, don't ever do it by hand again.

Queue

If it can be done outside the request/response cycle, consider queuing it. Mailers, uploads, audit trails, anything with an external system dependency or a lot of IO.

Model Statefully

If there's a lifecycle, model it as a real state machine. Beware ad hoc flags.

Simplify

You'll write it once, but you'll read it a lot. Code accordingly. Sometimes simplicity takes a bit longer, but it'll pay off.

Enforce consistency

Coding conventions and consistency help productivity.

Update (but not too early)

Keep frameworks, plugins, libraries, and tools up-to-date, but think twice before using a production app to play with the bleeding edge.

Measure

Don't speculate, get data. Act on what you know, not what you suspect. Is that code really faster? Do users really want that feature?

Refactor

If it's broken, fix it, not just superficially.

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