HTML Diff
0 added 0 removed
Original 2026-01-01
Modified 2026-02-26
1 <p><strong>Всем привет, меня зовут Андрей Мошков, я руководитель разработки на Хекслете. Сегодня я расскажу, как присоединиться к работе над нашими опен-сорс проектами и зачем это вообще нужно делать.</strong></p>
1 <p><strong>Всем привет, меня зовут Андрей Мошков, я руководитель разработки на Хекслете. Сегодня я расскажу, как присоединиться к работе над нашими опен-сорс проектами и зачем это вообще нужно делать.</strong></p>
2 <h2>Содержание</h2>
2 <h2>Содержание</h2>
3 <ul><li><a>Зачем участвовать в опенсорс-проектах Хекслета</a></li>
3 <ul><li><a>Зачем участвовать в опенсорс-проектах Хекслета</a></li>
4 <li><a>Если человек хочет участвовать в опенсорсе, с чего ему начать?</a></li>
4 <li><a>Если человек хочет участвовать в опенсорсе, с чего ему начать?</a></li>
5 <li><a>С каким минимальным уровнем подготовки можно идти в опенсорc</a></li>
5 <li><a>С каким минимальным уровнем подготовки можно идти в опенсорc</a></li>
6 <li><a>Неопытные разработчики часто не умеют работать с Git. Как можно это исправить?</a></li>
6 <li><a>Неопытные разработчики часто не умеют работать с Git. Как можно это исправить?</a></li>
7 <li><a>Что такое PS1 и для чего используется?</a></li>
7 <li><a>Что такое PS1 и для чего используется?</a></li>
8 <li><a>Какие ещё инструменты для работы с Git заслуживают внимания новичков?</a></li>
8 <li><a>Какие ещё инструменты для работы с Git заслуживают внимания новичков?</a></li>
9 <li><a>Что можно запомнить:</a></li>
9 <li><a>Что можно запомнить:</a></li>
10 </ul><h2>Зачем участвовать в опенсорс-проектах Хекслета</h2>
10 </ul><h2>Зачем участвовать в опенсорс-проектах Хекслета</h2>
11 <p>Для начала два слова об опенсорс-проектах - что это такое. Речь идёт о проектах с открытым исходным кодом, к разработке которых может присоединиться каждый желающий. Сообщество Хекслета работает над несколькими проектами, полный список будет ниже в одной из ссылок.</p>
11 <p>Для начала два слова об опенсорс-проектах - что это такое. Речь идёт о проектах с открытым исходным кодом, к разработке которых может присоединиться каждый желающий. Сообщество Хекслета работает над несколькими проектами, полный список будет ниже в одной из ссылок.</p>
12 <p>Это настоящие проекты или реальный продакшен. Они уже работают и приносят пользу людям. Хороший пример -<a>Code Basics</a>. На этом ресурсе каждый желающий может бесплатно изучать основы программирования и вёрстки.</p>
12 <p>Это настоящие проекты или реальный продакшен. Они уже работают и приносят пользу людям. Хороший пример -<a>Code Basics</a>. На этом ресурсе каждый желающий может бесплатно изучать основы программирования и вёрстки.</p>
13 <p>Участие в опенсорсе даёт чувство причастности к большим и полезным проектам. Также участие в проектах с открытым исходным кодом даёт новичкам важный опыт:</p>
13 <p>Участие в опенсорсе даёт чувство причастности к большим и полезным проектам. Также участие в проектах с открытым исходным кодом даёт новичкам важный опыт:</p>
14 <ul><li>учит работать с Git в команде, создавать ветки, оформлять и отправлять пулреквесты;</li>
14 <ul><li>учит работать с Git в команде, создавать ветки, оформлять и отправлять пулреквесты;</li>
15 <li>помогает наработать навыки общения в команде;</li>
15 <li>помогает наработать навыки общения в команде;</li>
16 <li>учит ответственности, планированию и тайм-менеджменту.</li>
16 <li>учит ответственности, планированию и тайм-менеджменту.</li>
17 </ul><p>Есть ещё несколько важных и приятных моментов. Например, опыт в опенсорсе можно<a>записать в резюме</a>. Можно участвовать в Хактоберфесте и получать приятные подарки за вклад в проекты с открытым исходным кодом.</p>
17 </ul><p>Есть ещё несколько важных и приятных моментов. Например, опыт в опенсорсе можно<a>записать в резюме</a>. Можно участвовать в Хактоберфесте и получать приятные подарки за вклад в проекты с открытым исходным кодом.</p>
18 <h2>Если человек хочет участвовать в опенсорсе, с чего ему начать?</h2>
18 <h2>Если человек хочет участвовать в опенсорсе, с чего ему начать?</h2>
19 <p>Для ответа на этот вопрос мы написали<a>большой и подробный гайд</a>. В нём есть обещанный выше список наших проектов с открытым исходным кодом. Для удобства читателей продублирую часть информации.</p>
19 <p>Для ответа на этот вопрос мы написали<a>большой и подробный гайд</a>. В нём есть обещанный выше список наших проектов с открытым исходным кодом. Для удобства читателей продублирую часть информации.</p>
20 <p>Обсудить любые вопросы, связанные с опенсорс-проектами, можно в канале #volunteers в<a>сообществе</a>Хекслета.</p>
20 <p>Обсудить любые вопросы, связанные с опенсорс-проектами, можно в канале #volunteers в<a>сообществе</a>Хекслета.</p>
21 <p>Чтобы участвовать в опенсорсе, надо в первую очередь выбрать проект или несколько проектов себе по душе. Это можно сделать по стеку технологий - если вы изучаете PHP, вам подойдёт Hexlet SICP, в котором используется PHP и Laravel, и так далее. Также можно выбирать по сути проекта - если вам нравится идея, начинайте работать и изучайте соответствующие технологии.</p>
21 <p>Чтобы участвовать в опенсорсе, надо в первую очередь выбрать проект или несколько проектов себе по душе. Это можно сделать по стеку технологий - если вы изучаете PHP, вам подойдёт Hexlet SICP, в котором используется PHP и Laravel, и так далее. Также можно выбирать по сути проекта - если вам нравится идея, начинайте работать и изучайте соответствующие технологии.</p>
22 <p>В выбранном проекте посмотрите открытые и закрытые issue, изучите структуру кода. Возможно, вы захотите и сможете взять в работу задачу, описанную в одном из issue. Желательно стать пользователем проекта - зарегистрироваться и попробовать использовать его. Этот опыт даст вам идеи по улучшению проекта. Их можно оформить в issue и обсудить с другими участниками.</p>
22 <p>В выбранном проекте посмотрите открытые и закрытые issue, изучите структуру кода. Возможно, вы захотите и сможете взять в работу задачу, описанную в одном из issue. Желательно стать пользователем проекта - зарегистрироваться и попробовать использовать его. Этот опыт даст вам идеи по улучшению проекта. Их можно оформить в issue и обсудить с другими участниками.</p>
23 <p>Если вы умеете верстать, задачи найдутся в каждом проекте. Можно реализовать адаптивную вёрстку, поправить отображение. Даже если вы пока вообще не знакомы с программированием и вёрсткой, задачи тоже найдутся. Можно исправлять опечатки, добавлять контент и так далее.</p>
23 <p>Если вы умеете верстать, задачи найдутся в каждом проекте. Можно реализовать адаптивную вёрстку, поправить отображение. Даже если вы пока вообще не знакомы с программированием и вёрсткой, задачи тоже найдутся. Можно исправлять опечатки, добавлять контент и так далее.</p>
24 <h2>С каким минимальным уровнем подготовки можно идти в опенсорc</h2>
24 <h2>С каким минимальным уровнем подготовки можно идти в опенсорc</h2>
25 <p>Как сказано выше, почти всегда есть задачи, которые под силу новичкам без знаний кода: можно по образцу добавить упражнения в СИКП, добавить задачу с решением на Codebattle, поправить опечатку, кривой отступ или перенос, переводы или описания, даже развернуть проект и поправить или добавить README - это уже большая полезная задача.</p>
25 <p>Как сказано выше, почти всегда есть задачи, которые под силу новичкам без знаний кода: можно по образцу добавить упражнения в СИКП, добавить задачу с решением на Codebattle, поправить опечатку, кривой отступ или перенос, переводы или описания, даже развернуть проект и поправить или добавить README - это уже большая полезная задача.</p>
26 <p>Если вы знаете основы вёрстки и Bootstrap, можно улучшать внешний вид сайтов. Для более серьёзной работы уже хорошо бы знать фреймворки, на которых написаны наши сайты, например,<a>Laravel</a>для Hexlet Sicp,<a>Django</a>для Hexlet Friends,<a>Ruby on Rails</a>для Hexlet CV и так далее.</p>
26 <p>Если вы знаете основы вёрстки и Bootstrap, можно улучшать внешний вид сайтов. Для более серьёзной работы уже хорошо бы знать фреймворки, на которых написаны наши сайты, например,<a>Laravel</a>для Hexlet Sicp,<a>Django</a>для Hexlet Friends,<a>Ruby on Rails</a>для Hexlet CV и так далее.</p>
27 <h2>Неопытные разработчики часто не умеют работать с Git. Как можно это исправить?</h2>
27 <h2>Неопытные разработчики часто не умеют работать с Git. Как можно это исправить?</h2>
28 <p>Если студент прошёл хотя бы один проект на Хекслете, он уже знает, как работать с Git. Но одно дело - пушить в мастер<a>своей репки</a>, а другое - работать в проекте с несколькими людьми.</p>
28 <p>Если студент прошёл хотя бы один проект на Хекслете, он уже знает, как работать с Git. Но одно дело - пушить в мастер<a>своей репки</a>, а другое - работать в проекте с несколькими людьми.</p>
29 <p>На Хекслете есть<a>курс по работе с Git</a>. Есть<a>подборка курсов</a>про Git от комьюнити. Также рекомендую пользоваться документацией Git, она очень подробная. В ней описаны основные моменты, с которыми человек сталкивается в опенсорсе: синхронизация форка и основного репозитория, работа с git pull/rebase и так далее.</p>
29 <p>На Хекслете есть<a>курс по работе с Git</a>. Есть<a>подборка курсов</a>про Git от комьюнити. Также рекомендую пользоваться документацией Git, она очень подробная. В ней описаны основные моменты, с которыми человек сталкивается в опенсорсе: синхронизация форка и основного репозитория, работа с git pull/rebase и так далее.</p>
30 <h2>Что такое PS1 и для чего используется?</h2>
30 <h2>Что такое PS1 и для чего используется?</h2>
31 <p>PS - Prompt Statement. Переменная PS1 определяет, как будет выглядеть приглашение для ввода новых команд. И каждый пользователь может переопределять её как пожелает, например, в файле ~/.bashrc. Конкретика зависит от операционной системы пользователя и оболочки командной строки. Например, она может содержать специальные символы \u@\h \W\\$.</p>
31 <p>PS - Prompt Statement. Переменная PS1 определяет, как будет выглядеть приглашение для ввода новых команд. И каждый пользователь может переопределять её как пожелает, например, в файле ~/.bashrc. Конкретика зависит от операционной системы пользователя и оболочки командной строки. Например, она может содержать специальные символы \u@\h \W\\$.</p>
32 <p>Нас интересует <a>момент с выводом текущей ветки</a>. Люди часто делают ошибки, да и я сталкивался с этим, когда коммитил не в ту ветку или делал новую ветку не от<em>main, и</em>получалась каша. Конечно, в гите всё поправимо, но это маленькое изменение - настройка PS1 - упрощает работу. Я его советую всем - когда программирую с кем-то парно, теряюсь, если вывод текущей ветки в PS1 не настроен.</p>
32 <p>Нас интересует <a>момент с выводом текущей ветки</a>. Люди часто делают ошибки, да и я сталкивался с этим, когда коммитил не в ту ветку или делал новую ветку не от<em>main, и</em>получалась каша. Конечно, в гите всё поправимо, но это маленькое изменение - настройка PS1 - упрощает работу. Я его советую всем - когда программирую с кем-то парно, теряюсь, если вывод текущей ветки в PS1 не настроен.</p>
33 <p>Поговорим о настройке PS1. Сначала расскажу, как происходит настройка PS1, если вы пользуетесь стандартным Bash и уже настроили bash completion. При этом на современных MacBook обычно по умолчанию стоит ZSH - про его настройку я расскажу чуть позже.</p>
33 <p>Поговорим о настройке PS1. Сначала расскажу, как происходит настройка PS1, если вы пользуетесь стандартным Bash и уже настроили bash completion. При этом на современных MacBook обычно по умолчанию стоит ZSH - про его настройку я расскажу чуть позже.</p>
34 <p>Если вы пользуетесь Bash и у вас настроен bash completion, добавьте в файл .bashrc такой код:</p>
34 <p>Если вы пользуетесь Bash и у вас настроен bash completion, добавьте в файл .bashrc такой код:</p>
35 <p>В терминале это выглядит так:</p>
35 <p>В терминале это выглядит так:</p>
36 <p>Я пошёл дальше и использую такой код:</p>
36 <p>Я пошёл дальше и использую такой код:</p>
37 <p>В терминале директории и ветки подсвечиваются разными цветами.</p>
37 <p>В терминале директории и ветки подсвечиваются разными цветами.</p>
38 <p>Если у вас не установлен/не настроен bash completion, можно использовать такой код:</p>
38 <p>Если у вас не установлен/не настроен bash completion, можно использовать такой код:</p>
39 <p>Если у вас операционная система Ubuntu, для использования bash completion добавьте в файл .bashrc код (см. ниже). Возможно, он уже есть в файле, но закомментирован, тогда его надо раскомментировать.</p>
39 <p>Если у вас операционная система Ubuntu, для использования bash completion добавьте в файл .bashrc код (см. ниже). Возможно, он уже есть в файле, но закомментирован, тогда его надо раскомментировать.</p>
40 <p>Для владельцев Mac можно пойти двумя путями - через работу с Bash, или через взаимодействие с установленным по умолчанию ZSH. Если у вас стоит старая версия macOS с уже готовым Bash, то установите<a>bash completion</a>, добавьте в файл .bash_profile код:</p>
40 <p>Для владельцев Mac можно пойти двумя путями - через работу с Bash, или через взаимодействие с установленным по умолчанию ZSH. Если у вас стоит старая версия macOS с уже готовым Bash, то установите<a>bash completion</a>, добавьте в файл .bash_profile код:</p>
41 <p>bash completion расширяет возможности автодополнения по нажатию TAB. Он позволяет дополнять не только команды и пути, а так же git-команды, ключи опций и многое другое.</p>
41 <p>bash completion расширяет возможности автодополнения по нажатию TAB. Он позволяет дополнять не только команды и пути, а так же git-команды, ключи опций и многое другое.</p>
42 <p>Но проще всего владельцам Mac работать с ZSH (Z-Shell), так как с недавних пор он по умолчанию установлен во всех устройствах на MacOS.</p>
42 <p>Но проще всего владельцам Mac работать с ZSH (Z-Shell), так как с недавних пор он по умолчанию установлен во всех устройствах на MacOS.</p>
43 <p>Если в Bash очень много вещей надо настраивать руками, то в ZSH все это идет уже из коробки. Существует гигантское количество пресетов с настроенными темами, и это позволяет за две команды сделать из терминала рабочую эффективную машину с кучей возможностей. Кроме того, если мощность ZSH объединить с альтернативным терминалом для macOS -<a>iTerm</a>2, то работа с ним станет еще удобнее и красивее.</p>
43 <p>Если в Bash очень много вещей надо настраивать руками, то в ZSH все это идет уже из коробки. Существует гигантское количество пресетов с настроенными темами, и это позволяет за две команды сделать из терминала рабочую эффективную машину с кучей возможностей. Кроме того, если мощность ZSH объединить с альтернативным терминалом для macOS -<a>iTerm</a>2, то работа с ним станет еще удобнее и красивее.</p>
44 <p>Cейчас ZSH является оболочкой по умолчанию в терминале на macOS, тогда как Oh My Zsh - отдельный фреймворк для настройки ZSH, поэтому его необходимо специально устанавливать и настраивать. При этом устанавливается он одной простой командой:</p>
44 <p>Cейчас ZSH является оболочкой по умолчанию в терминале на macOS, тогда как Oh My Zsh - отдельный фреймворк для настройки ZSH, поэтому его необходимо специально устанавливать и настраивать. При этом устанавливается он одной простой командой:</p>
45 <p>Подробнее почитать про Oh My Zsh можно на<a>официальном сайте проекта</a>или в его репозитории на<a>GitHub</a>. При этом Oh My Zsh из коробки поставляется с огромным количеством плагинов, полный список который можно увидеть на страничке на<a>GitHub</a>.</p>
45 <p>Подробнее почитать про Oh My Zsh можно на<a>официальном сайте проекта</a>или в его репозитории на<a>GitHub</a>. При этом Oh My Zsh из коробки поставляется с огромным количеством плагинов, полный список который можно увидеть на страничке на<a>GitHub</a>.</p>
46 <p>После установки Oh My Zsh вы сможете установить тему - сейчас у оболочки есть как минимум несколько десятков разных, как<a>официальных</a>, так и<a>кастомных</a>от пользователей.</p>
46 <p>После установки Oh My Zsh вы сможете установить тему - сейчас у оболочки есть как минимум несколько десятков разных, как<a>официальных</a>, так и<a>кастомных</a>от пользователей.</p>
47 <p>Все актуальные темы можно найти в themes/каталоге в дистрибутиве Oh My Zsh. Чтобы включить определенную тему, нужно открыть файл фреймворка ~/.zshrc (открыть его можно будет через vim ~/.zshrc или nano ~/.zshrc) и установить в пункте ZSH_THEME название темы. Ее можно найти в описании к теме, которая вам понравилась. Например: ZSH_THEME=robbyrussell (это стандартная тема, с которой поставляется Oh My Zsh). Так выглядит стандартная тема robbyrussell:</p>
47 <p>Все актуальные темы можно найти в themes/каталоге в дистрибутиве Oh My Zsh. Чтобы включить определенную тему, нужно открыть файл фреймворка ~/.zshrc (открыть его можно будет через vim ~/.zshrc или nano ~/.zshrc) и установить в пункте ZSH_THEME название темы. Ее можно найти в описании к теме, которая вам понравилась. Например: ZSH_THEME=robbyrussell (это стандартная тема, с которой поставляется Oh My Zsh). Так выглядит стандартная тема robbyrussell:</p>
48 <p>А так выглядит модифицированная<a>тема</a>для Oh My Zsh - typewritten:</p>
48 <p>А так выглядит модифицированная<a>тема</a>для Oh My Zsh - typewritten:</p>
49 <p>Или модифицированная<a>тема</a>Headline с использованием разных цветов:</p>
49 <p>Или модифицированная<a>тема</a>Headline с использованием разных цветов:</p>
50 <h2>Какие ещё инструменты для работы с Git заслуживают внимания новичков?</h2>
50 <h2>Какие ещё инструменты для работы с Git заслуживают внимания новичков?</h2>
51 <p>Я бы посоветовал обновить Git до последней версии. Например, в стандартной версии гита на Ubuntu 18.04 отсутствуют команды<a>git switch</a>и<a>git restore</a>, которые более семантичны и понятны для новичка, чем checkout-комбайн.</p>
51 <p>Я бы посоветовал обновить Git до последней версии. Например, в стандартной версии гита на Ubuntu 18.04 отсутствуют команды<a>git switch</a>и<a>git restore</a>, которые более семантичны и понятны для новичка, чем checkout-комбайн.</p>
52 <p>Советую использовать<a>git stash</a>, алиасы для популярных команд. Но для начала рекомедовал бы выполнять полные команды, а если вы используете краткие, важно понимать, как они работают и какой флаг что делает. Например, git pull --rebase - это git fetch и rebase.</p>
52 <p>Советую использовать<a>git stash</a>, алиасы для популярных команд. Но для начала рекомедовал бы выполнять полные команды, а если вы используете краткие, важно понимать, как они работают и какой флаг что делает. Например, git pull --rebase - это git fetch и rebase.</p>
53 <p>Не стоит забывать что в git есть возможность интерактивного и частичного добавления изменений. Интерактивным в своей жизни я пользовался один раз, а вот частичное использую постоянно. Оно позволяет добавлять изменения в индекс частями, просматривая каждое и решая, добавить, пропустить, разделить на более мелкие части или добавить интерактивно.</p>
53 <p>Не стоит забывать что в git есть возможность интерактивного и частичного добавления изменений. Интерактивным в своей жизни я пользовался один раз, а вот частичное использую постоянно. Оно позволяет добавлять изменения в индекс частями, просматривая каждое и решая, добавить, пропустить, разделить на более мелкие части или добавить интерактивно.</p>
54 <p>Это позволяет лишний раз просмотреть свои изменения и более точечно разделить по коммитам, если вдруг изменений накопилось не на один коммит.</p>
54 <p>Это позволяет лишний раз просмотреть свои изменения и более точечно разделить по коммитам, если вдруг изменений накопилось не на один коммит.</p>
55 <h2>Что можно запомнить:</h2>
55 <h2>Что можно запомнить:</h2>
56 <ul><li>в опенсорсе есть задачи для людей с разным уровнем подготовки, в том числе для тех, кто пока совсем не знаком с кодом;</li>
56 <ul><li>в опенсорсе есть задачи для людей с разным уровнем подготовки, в том числе для тех, кто пока совсем не знаком с кодом;</li>
57 <li>участвовать в проектах с открытым исходным кодом полезно всем - это опыт работы в команде, умение решать реальные задачи и хорошая строчка в резюме;</li>
57 <li>участвовать в проектах с открытым исходным кодом полезно всем - это опыт работы в команде, умение решать реальные задачи и хорошая строчка в резюме;</li>
58 <li>чтобы начать, выберите проект по душе, изучите его и задайте вопросы в<a>Телеграме</a>.</li>
58 <li>чтобы начать, выберите проект по душе, изучите его и задайте вопросы в<a>Телеграме</a>.</li>
59 </ul>
59 </ul>