Faced with complex such as operating system of a project, we should learn how to learn what, where to start? Here is a guide to learning:
There are a lot of things to learn about chromium code base, such as: processes and their relationships, how the IPC works, URL loading processes, and micro-hierarchies such as smart pointers, message loops, threading usages, threading models, string, and so on.
Learn Chromium's "behavior":Coding style:Http://www.chromium.org/developers/coding-styleIf you have other coding experience, you may feel that Chrome coding style is too strict or even picky. For example, prohibit adding extra spaces at the end of a line. All comments should be legal in English sentences including punctuation. The length of the row is limited to 80 columns.
Individual Learning programs:In the end, you have the build environment, the compilation is successful, and you are ready to start writing code. It would be perfect if we had time to read all the code and understand it before we started writing the first line of code. Of course, that's not possible, boss don't have time to read and understand all the code, probably we have no patience to read all the code. What should we do? We recommend that you develop a learning plan based on your actual needs, and here are some points of entry: Chromium already has some high-quality design documentationhttp://www.chromium.org/developers/design-documents。 Some may be older, but it is not in the way of helping to understand the overall organization of the Code.
- Read some of the most important development documents
- Http://www.chromium.org/developers/design-documents/multi-process-architecture
- Http://www.chromium.org/developers/design-documents/displaying-a-web-page-in-chrome
- Http://www.chromium.org/developers/design-documents/inter-process-communication
- Http://www.chromium.org/developers/design-documents/threading
- Http://www.chromium.org/developers/how-tos/getting-around-the-chrome-source-code
- See if the project team has the relevant guidance document--colleagues may have written the relevant documents, you can refer to avoid detours
- Learn about Code conventions
- Http://www.chromium.org/developers/coding-style/important-abstractions-and-data-structures
- Http://www.chromium.org/developers/smart-pointer-guidelines
- Http://www.chromium.org/developers/chromium-string-usage
- If time permits, browse through all the design documents and read the relevant sections
- Search by code (or your own code-browsing tool)
- Learn how to find people who know the relevant code
- Debug the code you want to learn, use debugging tools, print logs, and more
- Be aware of what needs to be understood and what is currently understood. For example, if your team is doing a lot of GUI programming, then maybe you should take some time to learn gtk+,win32, or cocoa programming.
Blink: Sometimes you need to go deep into Blink (previous webkit) to fix a bug or add a new feature. Here's a document on "How WebKit Works"https://docs.google.com/presentation/pub?id=1ZRIQbUKw9Tf077odCh66OrrwRIVNLvI_nhLm2Gi__F0。 Although Blink has been out of sync WebKit, many of them have not changed.
This document explains the basic process of WebKit development: http://dev.chromium.org/developers/webkit-development-workflow;
Original: Http://www.chromium.org/developers/learning-your-way-around-the-code
Chromium Learning Guide