💼 Archived — originally
~2004-2009. A recovered piece of internet history (the quinthar.com wiki), restored to
quinthar.com. Old links & forms may not work.
Here's a quick overview of some of the techniques I use to write, program, and otherwise live my life: |
| — | Agile Design: I was originally a major proponent of heavy up-front design (after graduating from the "keep hacking until it's done" school of thought). However, now I've relaxed that a bit to use a more balanced blend of up-front design and quick iterations. |
|
| — | Design By Contract: I'm not a huge fan of unit testing (heretic!), but I am a huge fan of Design by Contract. In essence, I assert every method parameter, every return value, as well as class invariants on public methods. |
|
| — | Pervasive Asserts: I also throw in asserts all throughout my code, wherever a hint of doubt exists that something might get off track. For example, I generally assert that every pointer is valid before dereferencing it (even though technically this isn't necessary, as it'll throw a null-pointer exception, but I do it anyway), assert that a list contains something before I remove it, assert that a list doesn't contain something before I add it, etc. |
|
| — | Standard Template Library: I love STL. I don't like how it fragments the heap and does wasteful copies, but I don't worry about these until I get to optimization. |
|
|