Tally another point for the "comments for almost every line" crowd, although with a big caveat to this.
I like to code as english as possible, so my inital methods read as pure english so no comments are needed. These methods are composed of 3 or 4 words. I'd also like to point out this is a new way of coding for me.
These methods also read very english like and somebody call a 3rd tier of methods. This 3rd tier is the actualy code which is commented on about 80% of the lines. Just by reading the comments only and skipping the code, you can understand exactly what my code does.
I can't really explain why but I really love to have my initial loading method read as such straigt forward english, that even a ProjectManager/CIO could read the code and know exactly what it does. A more technical person could dive down into the 2nd layer of methods and get a more step by step overview. And a true coder would dive into the 3rd layer and see the actual line by line code.
Also on a dev tangent, I've been trying to write my code from the top down. So instead of writing lines of functional code, I write the overly english methods and create empty placeholders (sometimes containing hard coded example data so I have a functioning demo). I find this to be more fun and productive than my old way of coding which was along the lines of: my code needs to do 1, 2 and 3. Code all of 1 first, then all of 2, then 3.
I've come to dislike writing my apps 1 line at a time as I feel keeping a broad overview of the app and as I develop more of the app, I get deeper into the code.
If you've never coded this way, give it a try, you might like it better like myself.