I am able to finish Chapter 6 - While you are coding and Chapter 7 - Before the Project . These chapters triggered my understandings about the topics and made me reconsider everything I know about software development , requirement analysis , tools etc. . I would like to give a sneak preview what I have been reading so far.
On Chapter 6 ,Programming by coincidence is my current favorite. It explains why some piece of code might works or assume the code is working. I was shocked and confused when I first read the title, but whenever I went into the details of the topic, I got the idea behind it. An example coincident code from the book ;
paint(g);
invalidate();
validate();
revalidate();
repaint();
paintImmediately(r);
at the end of the day , the piece of code might output whatevet it is expected to do , but it is not logical to expect the desired outbut by these cascading calls , because it is not intended to do.The topic also suggest rely on reliable things , and if you are making any assumptions , at least write them down.
Algorithm Speed explains about the performance considerations and mathematical way to define a algorithm complexity using Big "O" notation. ( I remembered senior year of Bachelor degree , iygghh!)
Refactoring topic explains , how , why and when. You might find quite a lot material about Refactoring. It is better to keep it short , "Refactor Early, Refactor Often"
Code That's Easy to Test describes Unit Testing , Test Harness and writing code that is more suitable to test :)
Evil Wizards highly suggest not the use the wizard code generators unless you understand them. Because it may cause more trouble that you expected to solve , if you dont get the idea.
On Chapter 7 , the topic goes aroung the pre stages of coding , talking about requirements , specifications , tools , methodologies. The idea is , don't stick to a single thing , embrace new things , and always look for a better way.
The topics are ;
- The Requirements Pit
- Solving Impossible Puzzles
- Not Until You're Ready
- The Specification Trap
- Circles and Arrows
Well , the last chapter , Pragmatic Projects left behind.
if( Pragmatic Projects contains Pragmatic developers ) Is this a best case senario ? :) Let's see what the next chapter will bring...