by andrei
19. September 2008 21:39
You can read about the purpose of this list and how to use it here.
Also, the list of resources is here.
- general implementation
E8
E9 - concepts
- Encapsulate Collection Refactoring
basically means that the parent will protect all changes to the collection
resources
B4 - ReSharper
http://www.jetbrains.com/resharper/
resources
B4 - Replace Nested Conditional with Guard Clauses
resources
B4 - refactoring
In a nutshell, what refactoring does is to take you from smelly code to nice code. It's as simple as that.
Continuous refactoring has come to be considered a "best practice," but most project teams are still too cautious about it. If you wait until you can make a complete justification for a change, you've waited too long.
In order to be able to use refactoring in a safe way, you must carry out extensive tests. If you don't, you will introduce bugs and/or you will prioritize, not making any changes simply for the sake of maintainability, because the risk of introducing bugs is just too large. And when you stop making changes because of maintainability, your code has slowly started to degrade.
Don't refactor the day before a release.
refactoring requires automatic tests
resources
B1
B4 - Refactor!
http://www.devexpress.com/Products/Visual_Studio_Add-in/Refactoring/
resources
B4 - Inline Singleton
resources
B4 - Extract Method
resources
B4 - Consolidate Conditional Expression
resources
B4 - code smell
resources
B4 - Duplicated Code
resources
B4 - base class methods
the subclass is responsible for calling up to the base class at certain points in the execution of the Execute() method. I think that's too loose a contract for the subclass; the developer of the subclass has to remember to add those calls and to do it at the right places
can be avoided through template method
resources
B4
You can find the entire list of techniques in progress in the Development base concepts category. Please feel free to leave any comments or suggestions which could make these lists more useful for everyone.
Also, if you are interested in learning these skills you can try the Developer training modules.
Enjoy programming!
I am putting together a set of concept lists for the main programming techniques, which should help developers learning or using them to be more efficient. Here are the techniques in progress:
Please feel free to leave any comments or suggestions which could make these lists more useful for everyone.
Also, if you are interested in learning these techniques you can try the developer training modules.
Again, please feel free to leave any comments or suggestions which could make the training modules more useful for everyone. We are having great results with them at Akcedo (so they really work), but they can always be improved. Also, if you would like to use the modules or are already using them and you want to discuss about the process feel free to comment and ask questions here.