Aug 16, 2007 15:06
I've been thinking about how my coding priorities have shifted over the years. Way way back, I used to think efficiency was everything. After that, I started thinking perfect abstractions was the biggest thing. Next, I went on to thinking information hiding was the most important...then I went onto the expressiveness of your static typing.
These tendencies have shifted as I work on different projects and gain different experiences.
Most recently, I've been playing more with dynamic languages and "enterprise-scale" development, and I think I've noticed my priorities shift again.
At this point, I think my priorities are:
1) Make the code testable
2) Simplify abstractions and reduce dependencies (especially remove deep object nesting or function chains)
3) Hide information and pick abstractions that fit your logical model.
It's funny how these things change over time. I wonder how they'd be different if I worked at a startup?