Invest Regularly in Your Knowledge PortfolioI started my career as an ASP classic VB 6 developer. Learning Java taught me that I should really think more like an OO programmer. It also exposed me to design patterns and forced me to realize that the code I was produced was actually a big mess. Java changed the way I was doing things. I started to use patterns like; proxies; late binding; interfaces; and factories. This greatly improved my ability to test production code and helped me reduce the outrages scriptlet code found in the web pages I was working on.
Make learning a habit. [Thomas and Hunt]
Then came C#. The transition from Java was not so difficult but I did learn more about delegates, data binding, event driven programming, as well as presentation patterns that were not MVC. It did not seem to make quite as much of an impact on the way I wrote Java apps. I did however find myself asking questions about how useful EJBs where and whether or not a DTO made any sense! I also longed for a "using(closableResource)" so that I would not have to write so many try/catch statements. MbUnit also really impacted the way I thought about testing and how refactoring test code was just as important as production code.
Then there are more complex things like SOA based applications using SOAP/WSDL and how it made me think about designing reusable components using better interfaces. I also learned a lot about how really useful adapters, bridges, and facades mitigate integration nightmares.
Now I find myself reflecting on how Rails influenced the way I approach Java Web applications and how it changed the way I think! So much so that the next few posts are going to be about:
- Component/Integration Testing
- Unit/Micro Testing
- Test Driving UI
- Using conventions in my configuration
- Simplifying the way I use Hibernate
- Using composite views with partials
- Meta programming and annotations
- Action mappings
- Simplifying Models