Chromium学习指引
来源:互联网 发布:常州淘宝运营 编辑:程序博客网 时间:2024/05/21 07:07
面对复杂如操作系统的一个工程,我们应该如何学习,学习什么,从哪里入手?下面是一篇学习指引:
关于Chromium code base,有许多需要学习的,宏观层次比如:进程及其相互之间的关系,IPC如何工作,URL加载流程;微观层次比如:智能指针,消息循环,线程用法,线程模型,string等的使用指引。
学习Chromium的“行为处事”:
编码风格:http://www.chromium.org/developers/coding-style;如果你有其它编码经验,你可能会觉得chrome编码风格过于严格甚至是挑剔。例如:禁止在行尾添加多余的空格。所有的注释都应该是合法的英语句子包括标点符号。行的长度限制在80列。
个人学习计划:
最终,你配好了编译环境,编译成功,准备开始写代码了。如果我们有时间阅读完所有的代码并理解之后才开始写第一行代码,那就完美了。当然,那是不可能的,boss没时间等你阅读完并理解所有的代码,大概我们自己也没有耐心阅读完所有的代码。我们应该怎么做呢?我们建议你根据自己的实际需要制定学习计划,下面推荐一些切入点:
Chromium已经有一些高质量的设计文档http://www.chromium.org/developers/design-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
- 看项目组是否有相关的指引文档 -- 同事可能已经写了相关的文档,你可以进行参考以避免走弯路
- 学习相关代码约定
- 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
- 如果时间允许,浏览一遍所有的设计文档,阅读相关的部分
- 擅用代码搜索(或者你自己的代码浏览工具)
- 学习怎么样找到了解相关代码的人员
- 对你要学习的代码进行调试,使用调试工具,打印log等
- 注意区分哪些是需要理解的,哪些是目前所理解的。例如,如果你的团队正在做很多GUI编程,那么也许你应该花点时间学习GTK+,Win32, 或者Cocoa编程。
Blink:
有时,你需要深入到blink(以前的webkit),以fix一个bug或者添加一个新功能。
这里有一篇关于“Webkit工作原理”的文档https://docs.google.com/presentation/pub?id=1ZRIQbUKw9Tf077odCh66OrrwRIVNLvI_nhLm2Gi__F0。尽管Blink已经不同步Webkit了,但其中很多东西还是没有变。
这篇文档解释了webkit开发的基本流程: http://dev.chromium.org/developers/webkit-development-workflow;
原文:http://www.chromium.org/developers/learning-your-way-around-the-code
0 0
- Chromium学习指引
- hibernate学习要点指引
- hibernate学习要点指引
- hibernate学习要点指引
- hibernate学习要点指引
- hibernate学习要点指引
- C++学习经典指引
- 函数库学习入门指引
- C++进阶学习指引
- Python学习资料指引
- PSI&SI学习指引
- 学习emacs的指引
- Cocos Studio 学习指引
- 程序员英语学习指引
- Cocos Studio 学习指引
- C++进阶学习指引
- 性能学习指引收录
- Html5学习入门指引
- 【codeforces #292(div 1)】ABC题解
- pyyhon 运算法则
- 第四天工作总结
- spring的DAO编程(jdbc)
- 本地搭建apache+php+mysql
- Chromium学习指引
- BZOJ 1570 JSOI2008 Blue Mary的旅行 网络流
- 【BZOJ3885】【Usaco2015 Jan】Cow Rectangles 某奇怪的最大子矩形
- iOS技术浅谈之第二篇 (iBeacon技术概述)
- Android SDK Android NDK Android Studio 官方下载地址
- Java中利用MessageFormat对象实现类似C# string.Format方法格式化
- Java final变量和普通变量的区别
- spark下统计单词频次
- 更好用的javascript编辑器——spket