Tweeted twitter.com/#!/StackProgrammer/status/602200689297760256
6 edited tags
| link
    Post Locked by Thomas Owens
    Notice added Historical significance by Thomas Owens
    Question Protected by World Engineer
5 This question will be featured at Ars Technica this weekend. Copyedited for grammar and flow.
source | link

What tools and techniques do you use for exploring and learning an unknown code base?

I am thinking of tools like grep, ctags, unit-tests, functional test, class-diagram generators, call graphs, code metrics like sloccount, and so on. I'd be interested in your experiences, the helpers you used or wrote yourself and the size of the codebase,code base with which you worked with.

I realize, that thisbecoming acquainted with a code base is also a process (happeningthat happens over time), and that learningfamiliarity can mean "can give a ten minute intro"anything from "I'm able to "cansummarize the code" to "I can refactor and shrink thisit to 30% of the size". Let's leave that open for now. But how to even begin?

What tools and techniques do you use for exploring and learning an unknown code base?

I am thinking of tools like grep, ctags, unit-tests, functional test, class-diagram generators, call graphs, code metrics like sloccount and so on. I'd be interested in your experiences, the helpers you used or wrote yourself and the size of the codebase, with which you worked with.

I realize, that this is also a process (happening over time) and that learning can mean "can give a ten minute intro" to "can refactor and shrink this to 30% of the size". Let's leave that open for now.

What tools and techniques do you use for exploring and learning an unknown code base?

I am thinking of tools like grep, ctags, unit-tests, functional test, class-diagram generators, call graphs, code metrics like sloccount, and so on. I'd be interested in your experiences, the helpers you used or wrote yourself and the size of the code base with which you worked.

I realize that becoming acquainted with a code base is a process that happens over time, and familiarity can mean anything from "I'm able to summarize the code" to "I can refactor and shrink it to 30% of the size". But how to even begin?

    Post Made Community Wiki by c.hughes
    Post Merged (destination) from programmers.stackexchange.com/questions/29788/…
    Post Merged (destination) from programmers.stackexchange.com/questions/141968/…
4 edited tags
| link
    Post Merged (destination) from programmers.stackexchange.com/questions/76347/…
    Mod Removes Wiki by Adam Lear
3 removed redundant language-agnostic tag as per http://meta.programmers.stackexchange.com/questions/534/do-we-need-language-agnostic-tag-here
| link
2 added 29 characters in body
source | link
1
source | link