Click here to Skip to main content
15,892,298 members

Welcome to the Lounge

   

For discussing anything related to a software developer's life but is not for programming questions. Got a programming question?

The Lounge is rated Safe For Work. If you're about to post something inappropriate for a shared office environment, then don't post it. No ads, no abuse, and no programming questions. Trolling, (political, climate, religious or whatever) will result in your account being removed.

 
GeneralRe: Learning a big new codebase Pin
Kirk 103898212-Nov-16 3:30
Kirk 103898212-Nov-16 3:30 
GeneralRe: Learning a big new codebase Pin
englebart2-Nov-16 3:34
professionalenglebart2-Nov-16 3:34 
GeneralRe: Learning a big new codebase Pin
William Peets2-Nov-16 3:57
William Peets2-Nov-16 3:57 
GeneralRe: Learning a big new codebase Pin
Shmoken992-Nov-16 5:51
Shmoken992-Nov-16 5:51 
GeneralRe: Learning a big new codebase Pin
Ralph Little2-Nov-16 6:17
Ralph Little2-Nov-16 6:17 
GeneralRe: Learning a big new codebase Pin
Gerry Schmitz2-Nov-16 7:02
mveGerry Schmitz2-Nov-16 7:02 
GeneralRe: Learning a big new codebase Pin
Hamza Ahmed Zia2-Nov-16 19:26
Hamza Ahmed Zia2-Nov-16 19:26 
GeneralRe: Learning a big new codebase Pin
mbb012-Nov-16 23:24
mbb012-Nov-16 23:24 
Here are a few tips.

If nothing else fix layout issues - indentation, spacing etc - and add (sensible) comments where it makes sense. The act of tidying up layout and having to think about what a small section of code is doing, in its own right, will help build your understanding of the bigger picture. From there is probably won't take long for you to start spotting refactoring opportunities.

If you do decide to make changes, start with the small trivial things since these will often be overlooked or tolerated for the sake of the big things. Build up a testing regime for your changes BEFORE you make the changes.

Don't focus on code structure or control too much. That will become obvious. The key to any code base is how it organizes its data and moves it around. This you can analyse and diagram.

Remember, fundamentally all any software is really about is moving data from A to B.

With this in mind, pay special attention to the interfaces between modules, components and systems. This is likely where the most problems are. Especially when either side of the interface has been independently developed.

Also look for places where data is transformed from one form to another e.g. conversions, lookups. Another source for faults.

If you are able to run the software, another way of gaining understanding is to include detailed logging/tracing of the software's operation as it is running. In this context, look to trace the initial state of variables and when variables change, the function calls (including explicit variable values) and function returns and error events in the code. Those three categories of logging should be enough for you to hone in on most problems with the code when it is running. This is ofc verbose and has performance implications so make sure it can be turned off or removed from the release product entirely.

Finally, study design patterns and identify where they have been used in the code. Either intentionally or unwittingly. You may be lucky and the patterns may be explicitly named e.g. WidgetFactory or WangleAdaptor. Design patterns are not the be all and end all, but they are a useful shorthand for common development problems.
GeneralRe: Learning a big new codebase Pin
AndrewDavie2-Nov-16 23:53
AndrewDavie2-Nov-16 23:53 
GeneralRe: Learning a big new codebase Pin
hpcoder23-Nov-16 17:36
hpcoder23-Nov-16 17:36 
GeneralWired magic... Pin
Kornfeld Eliyahu Peter31-Oct-16 21:55
professionalKornfeld Eliyahu Peter31-Oct-16 21:55 
GeneralRe: Wired magic... Pin
Chris C-B31-Oct-16 22:38
Chris C-B31-Oct-16 22:38 
GeneralRe: Wired magic... Pin
glennPattonWork331-Oct-16 23:30
professionalglennPattonWork331-Oct-16 23:30 
GeneralRe: Wired magic... Pin
OriginalGriff31-Oct-16 23:34
mveOriginalGriff31-Oct-16 23:34 
JokeRe: Wired magic... Pin
Kornfeld Eliyahu Peter1-Nov-16 0:02
professionalKornfeld Eliyahu Peter1-Nov-16 0:02 
GeneralRe: Wired magic... Pin
OriginalGriff1-Nov-16 0:09
mveOriginalGriff1-Nov-16 0:09 
GeneralRe: Wired magic... Pin
glennPattonWork31-Nov-16 0:12
professionalglennPattonWork31-Nov-16 0:12 
GeneralRe: Wired magic... Pin
glennPattonWork31-Nov-16 0:11
professionalglennPattonWork31-Nov-16 0:11 
GeneralRe: Wired magic... Pin
S Houghtelin1-Nov-16 1:13
professionalS Houghtelin1-Nov-16 1:13 
GeneralRe: Wired magic... Pin
Daniel Pfeffer1-Nov-16 1:48
professionalDaniel Pfeffer1-Nov-16 1:48 
GeneralRe: Wired magic... Pin
glennPattonWork31-Nov-16 1:54
professionalglennPattonWork31-Nov-16 1:54 
GeneralRe: Wired magic... Pin
S Houghtelin1-Nov-16 2:47
professionalS Houghtelin1-Nov-16 2:47 
GeneralRe: Wired magic... Pin
Foothill1-Nov-16 3:21
professionalFoothill1-Nov-16 3:21 
GeneralPerks of the job! PinPopular
DaveAuld31-Oct-16 17:52
professionalDaveAuld31-Oct-16 17:52 
GeneralRe: Perks of the job! Pin
Abhinav S31-Oct-16 19:02
Abhinav S31-Oct-16 19:02 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Praise Praise    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.