2010-07-26 2 views
14

Я студентка CS grad, и я заинтересован в том, чтобы потратить некоторое свободное время на участие в разработке браузера Mozilla Firefox. Я хотел бы внести свой вклад в HTML-рендеринг, движок JavaScript и т. Д. Но у меня нет достаточного опыта написания парсеров или подобных материалов, и у меня нет никаких подсказок, с чего начать.Как принять участие в разработке Mozilla Firefox?

Есть, конечно, некоторые ссылки в https://developer.mozilla.org/En/Developer_Guide/, но поскольку Firefox уже является очень огромным проектом, я не знаю, откуда я должен начать учиться.

Итак, мой вопрос в том, какие основные вещи мне нужно изучить, чтобы начать работу с разработкой веб-браузера и откуда я могу это узнать (любые ссылки)? Должен ли я пересматривать, как писать парсеры/компиляторы? Как я могу научиться писать движок HTML-рендеринга/JavaScript? Возможно ли это, учитывая, что они уже очень большие проекты? Когда-то назад я загрузил исходный код движка JavaScript V8 (http://code.google.com/p/v8/), но я не мог понять многого из его исходного кода, так как он был очень оптимизированным кодом, и для начинающих, таких как я, не было много полезных комментариев, чтобы понять, что происходит.

Обновление: Я довольно комфортно работаю с C, C++, Java, PHP, C#, VB.Net, JavaScript, и меня больше интересует, как веб-браузер анализирует веб-страницу, как она создает и поддерживает DOM , как применяется CSS, как работает механизм reflow HTML, как он взаимодействует с движком JavaScript, как он взаимодействует с веб-сервером, как компоненты рисуются на экране и т. д.

+0

Это действительно зависит от того, что вы хотите работать внутри Mozilla, и какие языки вы знаете/хотите работать. Обновите эту информацию, и я могу предоставить вам ответ. – sdwilsh

+0

Я вижу, что вы обновлены, но объем предметов, которые вы хотите изучить, действительно большой. Очень немногие (если есть?) Люди, которые активны в Mozilla, даже сейчас, как работает все это. Есть ли один из тех, с кем вы хотели бы начать взламывать сначала? – sdwilsh

+0

Я хотел бы начать с базового рендеринга HTML-компонентов. Я понимаю, рендеринг сам по себе очень огромен. Есть ли подмножество того, что вы предложили бы (под рендерингом), что я могу начать? Может быть, сначала со строительством DOM? –

ответ

11

Прочитайте документы на getting started. Выходите на irc.mozilla.org в #developers и смотрите интересные разговоры. Представьте себя в #introduction и задайте вопросы. Перейдите к http://bugzilla.mozilla.org и начните поиск открытых ошибок в компонентах, которые кажутся интересными, а затем найдите ошибки, которые поймают вашу фантазию. Используйте инструменты, такие как http://mxr.mozilla.org/ и http://dxr.mozilla.org, чтобы помочь вам найти нужный код и задавать вопросы в #developers. Учитесь, взламывайте, повторяйте.

Я написал a post о моих впечатлениях, связанных с прошлым годом, и, похоже, отражает путь, который принял значительное количество разработчиков Mozilla.

+0

Мне понравилось ваше сообщение и несколько других сообщений в вашем блоге. Я буду следовать по пути, который вы и другие предложили. Благодаря! –

+1

Также см. Веб-приложение Jugs's «Bugs Ahoy», помогающее сопоставить ваши навыки и интересы с хорошими первыми задачами, чтобы попробовать: http://www.joshmatthews.net/bugsahoy/ – cdleary

+1

. Также есть сайт http://whatcanidoformozilla.org, который будет помогите вам найти проект для участия, который соответствует вашим навыкам. –

6

Возможно, вы захотите просмотреть список известных ошибок и посмотреть, сможете ли вы их исправить. Другим возможным способом получить ступню в дверь является вовлечение в задачи обеспечения качества, которые помогут вам лучше изучить внутренние приложения.

+1

Mchl говорит правду. Вы не хотите пытаться узнать все, что нужно знать о парсерах или рендеринге, прежде чем начать взлом, вы никогда не начнете. Просто найдите ошибку, которая выглядит интересной для исправления, и найдите свой путь вокруг базы кода, пока не найдете достаточно, чтобы исправить эту ошибку. Чем больше вы узнаете, тем больше вы сможете это сделать. В irc.mozilla.org #developers есть много полезных людей, которые могут помочь вам найти свой путь. –

+0

и @Ted Mielczarek, спасибо за предложения. Может быть, я сначала начну с попытки исправить ошибку, иначе я никогда не начну ... –

3

Если вас интересует разбор, изучение автоматов конечного состояния и формальных граммов, он должен быть частью вашей учебной программы в какой-то момент, например, в классе компиляторов. Для части javascript изучите компиляторы JIT, особенно о том, как работает отслеживание JIT. Последующие блоги развития Mozilla, здесь является хорошей отправной статья: http://hacks.mozilla.org/2010/03/a-quick-note-on-javascript-engine-components/

Наконец, но не менее важно, попытаться связаться с людьми, которые уже работают там, и попытаться построить отношения наставника-ученика, они могут назначить вам задачи и может помогите, если вы застреваете при работе над кодом. Переход на конференции с открытым исходным кодом - отличный способ встретить людей, стоящих за проектом, и начать работу.

+0

спасибо за ссылку и различные предложения. –

5

Ошибки, отмеченные в Bugzilla с статусом [хорошей первой ошибки], являются хорошим местом для начала. Вы можете просмотреть список here.

Найдите что-нибудь, что вам нравится, и попытайтесь его исправить! Разработчики IRC (#developers in irc.mozilla.org), как правило, рады помочь, когда вы застряли.

Смежные вопросы