Content tagged with: refactoring
We can do without architecture early on, but at some point a clearly communicated architecture offers big productivity benefits to developers who otherwise drown in the expanding implementation-level detail.
Dave Thomas interviews Michael Feathers about legacy code and the benefits and challenges of refactoring older code bases to match the needs of modern times. This is a fascinating topic.
As programmers we have learned and practiced various refactoring techniques, you have pulled up methods, pushed down fields, extracted superclass,… Yet if you feel that you or your team can use something more fundamental, something more basic to make better use of these techniques, then this interactive session is for you. We will discuss and learn how to approach the act of refactoring along with some key underpinnings.
The notion of approaching such a huge refactoring task is daunting to say the least, and the altruistic idea of dismantling the project piece by piece, then reâ€“building it systematically is more easily said than done. But through the course of this advanced refactoring session, weâ€™ll identify and assemble the building blocks needed to accomplish a task of this nature.
For any code base there comes a time when you want to change it. But if you just steam ahead making changes that break the code and then fixing errors, a common situation is that every fix or change creates several more errors. It feels as if you have picked a fight with a beast, the Software Hydra – for every scary head you cut of, two more grows out!
A short demo of the refactoring capabilities of Python Tools for Visual Studio. Python Tools for Visual Studio is a free and open source plug-in for Visual Studio 2010 from Microsoft’s Developer Division. PTVS enables developers to use all the major productivity features of Visual Studio to build Python code using either CPython or IronPython and adds new features such as using High Performance Computing clusters to scale your code.
This short videos shows how you can implement closures in Java.
Video Producer / Source Code: http://pettergraff.blogspot.com/2010/11/closures-in-java.html
In this video, Kevlin Henney promotes live architecture through refactoring, recovery, re-envisioning, retrospection, re-engineering, repair, rewriting, reduction, reuse, reaction, re-evaluation and remembering.
Wrangler is an interactive refactoring tool for Erlang, integrated into both emacs and Eclipse. Wranglerâ€™s refactorings cover structural changes such as function, variable and module renaming, function extraction and generalization. Wrangler recognizes macros in code, and can be used on a single file or across a whole project. Wrangler can also be used to locate and remove code clones, through a tool that locates and reports on similar code fragments, suggesting possible abstractions.
The Mikado Method: Code almost always depend on other pieces of code, hence one change often requires another in an entangled web. This works like the game Mikado (pick-up sticks), where you have to pick up lower scoring sticks in a certain order to reach the higher scoring Mikado stick. When working with software, one usually has to perform a series of refactorings before making the core change to the software, be it to enable adding a new feature or just making a part of the code read better.