I would start with the various tasks you need to complete.
Recently, I faced a similar problem, given the 15-year-old code base created by a group of developers who did not have communication with each other (one worked on the project, on the left, then another hiring, etc., without cross-talk). The result is a common mishmash of a wide variety of styles and qualities.
To make it work, we had to isolate the necessary functionality other than decorative fluff so that it all worked. For example, there were many different string classes, and one person spent what must have spent a lot of time converting a 2k string between COleDateTime and const char* and vice versa; it was fluff, code for solving the problem associated with the main goal (getting things to and from the database).
What we needed to do was identify the big goal that this code accomplished, and then write the basic logic for that. When there was a task that we needed to accomplish, which we knew before, we found it and wrapped it in library calls so that it could exist on its own. For example, one piece of code activates a USB device driver to create an image; this code is not affected by this current project, but is called if necessary through library calls. Another piece of code works with a security key, and another requests remote servers for data. This is all the necessary code that can be encapsulated. The drawing code, however, was built over 15 years, and such a building is insane that rewriting in OpenGL for a month was a better use of time than trying to figure out what someone else had done, and then how to add to it.
I am a little useful here because our project was MFC C ++ for .NET C #, but the basic principles apply:
- find the main goal
- identify all the small goals that make the main goal possible.
- Isolate already encapsulated code parts, if any, for use as library calls
- figure out the logic to put it all together.
I hope this helps ...
mmr
source share