0 added
0 removed
Original
2026-01-01
Modified
2026-02-26
1
<p>При трудоустройстве разработчика первым делом просят показать его GitHub. Это самая популярная платформа для хостинга проектов и фактически - стандарт индустрии. Разбираемся, что такое GitHub, чем отличается от Git и как его использовать.</p>
1
<p>При трудоустройстве разработчика первым делом просят показать его GitHub. Это самая популярная платформа для хостинга проектов и фактически - стандарт индустрии. Разбираемся, что такое GitHub, чем отличается от Git и как его использовать.</p>
2
<p>GitHub - сайт для размещения IT-проектов, основанный на системе контроля версий. При помощи этой платформы программисты могут совместно работать над кодом. GitHub позволяет людям из разных точек земного шара вносить свои изменения в проекты, создавая новые улучшенные версии.</p>
2
<p>GitHub - сайт для размещения IT-проектов, основанный на системе контроля версий. При помощи этой платформы программисты могут совместно работать над кодом. GitHub позволяет людям из разных точек земного шара вносить свои изменения в проекты, создавая новые улучшенные версии.</p>
3
<h2>Содержание</h2>
3
<h2>Содержание</h2>
4
<ul><li><a>Что такое Git</a></li>
4
<ul><li><a>Что такое Git</a></li>
5
<li><a>Как появился GitHub</a></li>
5
<li><a>Как появился GitHub</a></li>
6
<li><a>Кому нужен GitHub</a></li>
6
<li><a>Кому нужен GitHub</a></li>
7
<li><a>Можно ли обойтись без GitHub</a></li>
7
<li><a>Можно ли обойтись без GitHub</a></li>
8
<li><a>Альтернативы GitHub</a></li>
8
<li><a>Альтернативы GitHub</a></li>
9
<li><a>Основные термины в GitHub</a></li>
9
<li><a>Основные термины в GitHub</a></li>
10
<li><a>Стандартная работа с GitHub</a></li>
10
<li><a>Стандартная работа с GitHub</a></li>
11
<li><a>Как начать работать с GitHub</a></li>
11
<li><a>Как начать работать с GitHub</a></li>
12
<li><a>Как искать проекты</a></li>
12
<li><a>Как искать проекты</a></li>
13
<li><a>Как научиться пользоваться GitHub</a></li>
13
<li><a>Как научиться пользоваться GitHub</a></li>
14
</ul><h2>Что такое Git</h2>
14
</ul><h2>Что такое Git</h2>
15
<p>Первым делом разберемся в терминологии. GitHub - это конкретный сайт, который работает на технологии контроля версий. Ее называют Git. Она лежит в основе практически всех аналогичных платформ.</p>
15
<p>Первым делом разберемся в терминологии. GitHub - это конкретный сайт, который работает на технологии контроля версий. Ее называют Git. Она лежит в основе практически всех аналогичных платформ.</p>
16
<p>Git создал в 2005 году отец Linux - Линус Торвальд. Он - один из евангелистов программного обеспечения с открытым исходным кодом. Над такими opensourсe-проектами одновременно работают сотни и тысячи программистов. А их исходный код публикуют в свободном доступе, чтобы каждый желающий мог внести свою лепту в разработку.</p>
16
<p>Git создал в 2005 году отец Linux - Линус Торвальд. Он - один из евангелистов программного обеспечения с открытым исходным кодом. Над такими opensourсe-проектами одновременно работают сотни и тысячи программистов. А их исходный код публикуют в свободном доступе, чтобы каждый желающий мог внести свою лепту в разработку.</p>
17
<p>Для удобства этого процесса и создали Git. Изначально система распределенного контроля версий помогала программистам редактировать ядро Linux.</p>
17
<p>Для удобства этого процесса и создали Git. Изначально система распределенного контроля версий помогала программистам редактировать ядро Linux.</p>
18
<p>Git сразу понравился профессиональному сообществу за счет простоты, функциональности и удачной идее. С его помощью можно наладить нелинейную разработку даже самых серьезных и больших проектов.</p>
18
<p>Git сразу понравился профессиональному сообществу за счет простоты, функциональности и удачной идее. С его помощью можно наладить нелинейную разработку даже самых серьезных и больших проектов.</p>
19
<p>Принцип Git основан на сохранении состояния проекта. Он создает ссылку на определенную версию. Таким образом, можно отредактировать чужой код и оставить снимок новых файлов. А владельцу остается просмотреть изменения, а затем принять их или отклонить.</p>
19
<p>Принцип Git основан на сохранении состояния проекта. Он создает ссылку на определенную версию. Таким образом, можно отредактировать чужой код и оставить снимок новых файлов. А владельцу остается просмотреть изменения, а затем принять их или отклонить.</p>
20
<p>Нужно запомнить: Git - технология контроля версия, GitHub - платформа, работающая на ней.</p>
20
<p>Нужно запомнить: Git - технология контроля версия, GitHub - платформа, работающая на ней.</p>
21
<h2>Как появился GitHub</h2>
21
<h2>Как появился GitHub</h2>
22
<p>GitHub создал в 2008 году программист Том Престон-Вернер. Ему и его команде нужен был удобный инструмент для разработки opensourсe-проектов.</p>
22
<p>GitHub создал в 2008 году программист Том Престон-Вернер. Ему и его команде нужен был удобный инструмент для разработки opensourсe-проектов.</p>
23
<p>Идея была в том, чтобы создать удобный облачный хостинг проектов, где все желающие могли бы совместно писать код и делиться плодами своего труда.</p>
23
<p>Идея была в том, чтобы создать удобный облачный хостинг проектов, где все желающие могли бы совместно писать код и делиться плодами своего труда.</p>
24
<p>Так появился GitHub, ставший стандартом в своей сфере. Сейчас эта платформа - место для хранения проектов и совместной разработки, а также аналог социальной сети для разработчиков.</p>
24
<p>Так появился GitHub, ставший стандартом в своей сфере. Сейчас эта платформа - место для хранения проектов и совместной разработки, а также аналог социальной сети для разработчиков.</p>
25
<p>Что делают в GitHub:</p>
25
<p>Что делают в GitHub:</p>
26
<ul><li>Выкладывают исходный код любой программы и разрешают другим пользователям вносить в него изменения;</li>
26
<ul><li>Выкладывают исходный код любой программы и разрешают другим пользователям вносить в него изменения;</li>
27
<li>Проводят совместную работу в режиме реального времени, так как система сохраняет все новые версии ПО;</li>
27
<li>Проводят совместную работу в режиме реального времени, так как система сохраняет все новые версии ПО;</li>
28
<li>Размещают статические сайты и приложения, развертывают небольшие проекты.</li>
28
<li>Размещают статические сайты и приложения, развертывают небольшие проекты.</li>
29
</ul><h2>Кому нужен GitHub</h2>
29
</ul><h2>Кому нужен GitHub</h2>
30
<p>В целом - всем программистам. Как минимум, умение пользоваться Git входит в стандартный список требований. Коммерческая разработка в команде невозможна без него, поэтому технологию придется изучить в любом случае.</p>
30
<p>В целом - всем программистам. Как минимум, умение пользоваться Git входит в стандартный список требований. Коммерческая разработка в команде невозможна без него, поэтому технологию придется изучить в любом случае.</p>
31
<p>А GitHub важен для социализации программиста и поиска первой работы. При помощи этого сервиса можно найти и принять участие в opensourсe-проектах. Они помогут получить первый опыт разработки и подтвердить его перед работодателем.</p>
31
<p>А GitHub важен для социализации программиста и поиска первой работы. При помощи этого сервиса можно найти и принять участие в opensourсe-проектах. Они помогут получить первый опыт разработки и подтвердить его перед работодателем.</p>
32
<p>Зачастую о разработчике судят по содержимому его GitHub, в котором профессионалы хранят код своих проектов.</p>
32
<p>Зачастую о разработчике судят по содержимому его GitHub, в котором профессионалы хранят код своих проектов.</p>
33
<p>А еще на платформе можно найти полезные дополнительные материалы, пообщаться с разработчиками любимого ПО и оставить им отзыв в комментариях.</p>
33
<p>А еще на платформе можно найти полезные дополнительные материалы, пообщаться с разработчиками любимого ПО и оставить им отзыв в комментариях.</p>
34
<h2>Можно ли обойтись без GitHub</h2>
34
<h2>Можно ли обойтись без GitHub</h2>
35
<p>На первых этапах обучения - да. Если вы пишете код для простых ученических работ или создаете небольшие проекты, их можно хранить локально на своем компьютере.</p>
35
<p>На первых этапах обучения - да. Если вы пишете код для простых ученических работ или создаете небольшие проекты, их можно хранить локально на своем компьютере.</p>
36
<p>Обычно в первые месяцы обучения программисты так и делают. Но нужно понимать, что в будущем функциональность GitHub, скорее всего, понадобится.</p>
36
<p>Обычно в первые месяцы обучения программисты так и делают. Но нужно понимать, что в будущем функциональность GitHub, скорее всего, понадобится.</p>
37
<p>Это самый популярный хостинг для проектов со многими версиями, а заодно и способ поделиться с окружающими своими работами.</p>
37
<p>Это самый популярный хостинг для проектов со многими версиями, а заодно и способ поделиться с окружающими своими работами.</p>
38
<p>Можно сказать, что рано или поздно освоить GitHub придется. Совершенно точно это стоит сделать до начала карьеры в коммерческой разработке.</p>
38
<p>Можно сказать, что рано или поздно освоить GitHub придется. Совершенно точно это стоит сделать до начала карьеры в коммерческой разработке.</p>
39
<h2>Альтернативы GitHub</h2>
39
<h2>Альтернативы GitHub</h2>
40
<p>Технология Git - незаменима для совместной работы над проектами. А вот GitHub как платформа имеет аналоги. Просто этот сайт - самый популярный. Сейчас на нем зарегистрировались 83 миллиона пользователей, а количество опубликованных проектов перевалило за 200 миллионов.</p>
40
<p>Технология Git - незаменима для совместной работы над проектами. А вот GitHub как платформа имеет аналоги. Просто этот сайт - самый популярный. Сейчас на нем зарегистрировались 83 миллиона пользователей, а количество опубликованных проектов перевалило за 200 миллионов.</p>
41
<p>В 2018 году сайт купил Microsoft, а значит в его использовании возможны риски. Например, отключение пользователей из определенных стран. Пока что об этом нет речи, но, если вдруг такое случится, нужно понимать, что аналоги у GitHub есть, просто они менее популярные.</p>
41
<p>В 2018 году сайт купил Microsoft, а значит в его использовании возможны риски. Например, отключение пользователей из определенных стран. Пока что об этом нет речи, но, если вдруг такое случится, нужно понимать, что аналоги у GitHub есть, просто они менее популярные.</p>
42
<p>Альтернативы GitHub:</p>
42
<p>Альтернативы GitHub:</p>
43
<ul><li>GitLab - один из самых старых аналогов, написанный на языке Go. За счет этого он отличается прекрасной производительностью. Его основное достоинство - охват всего жизненного цикла DevOps, что удобно для крупных проектов. У него, также как у GitHub, есть полностью функциональная бесплатная версия, которая покрывает большинство потребностей разработчиков;</li>
43
<ul><li>GitLab - один из самых старых аналогов, написанный на языке Go. За счет этого он отличается прекрасной производительностью. Его основное достоинство - охват всего жизненного цикла DevOps, что удобно для крупных проектов. У него, также как у GitHub, есть полностью функциональная бесплатная версия, которая покрывает большинство потребностей разработчиков;</li>
44
<li>Gogs - решение для небольших команд и студентов, не имеющих серьезных требований к обилию инструментов. Это бесплатное решение, которое запускается на всех операционных системах и даже Raspberry Pi. Интерфейс сервиса максимально похож на упрощенный и лаконичный GitHub;</li>
44
<li>Gogs - решение для небольших команд и студентов, не имеющих серьезных требований к обилию инструментов. Это бесплатное решение, которое запускается на всех операционных системах и даже Raspberry Pi. Интерфейс сервиса максимально похож на упрощенный и лаконичный GitHub;</li>
45
<li>Phabricator - проект Facebook, который изначально использовали только для работы внутри компании. Помимо Git поддерживает другие варианты репозиториев и легко устанавливается. Также в нем есть собственная доска для управления проектами;</li>
45
<li>Phabricator - проект Facebook, который изначально использовали только для работы внутри компании. Помимо Git поддерживает другие варианты репозиториев и легко устанавливается. Также в нем есть собственная доска для управления проектами;</li>
46
<li>GitFlic - российский облачный сервис для совместной работы над проектами. Платформа пока не так функциональна, как более старые аналоги. Зато в ней есть интеграция с привычным в России ПО, например, с Telegram.</li>
46
<li>GitFlic - российский облачный сервис для совместной работы над проектами. Платформа пока не так функциональна, как более старые аналоги. Зато в ней есть интеграция с привычным в России ПО, например, с Telegram.</li>
47
</ul><h2>Основные термины в GitHub</h2>
47
</ul><h2>Основные термины в GitHub</h2>
48
<p>На площадке есть несколько главных концепций, которые нужно сразу усвоить новичку - так будет проще освоиться. Все они пришли из английского, но не всегда интуитивно понятны.</p>
48
<p>На площадке есть несколько главных концепций, которые нужно сразу усвоить новичку - так будет проще освоиться. Все они пришли из английского, но не всегда интуитивно понятны.</p>
49
<h3>Репозиторий (repository)</h3>
49
<h3>Репозиторий (repository)</h3>
50
<p>Это основная сущность в GitHub. Репозиторий - это страница проекта на платформе и корневая папка, в которой хранят все вложенные директории определенной программы.</p>
50
<p>Это основная сущность в GitHub. Репозиторий - это страница проекта на платформе и корневая папка, в которой хранят все вложенные директории определенной программы.</p>
51
<p>На самом деле в репозитории располагают буквально все, что угодно. Но стандартно их используют для хостинга проектов: не только коды, но и, например, графики.</p>
51
<p>На самом деле в репозитории располагают буквально все, что угодно. Но стандартно их используют для хостинга проектов: не только коды, но и, например, графики.</p>
52
<p>Репозиторий можно оставить в публичном доступе, а можно заприватить. Для управления репозиториями в GitHub используют командную строку, приложение для десктопа, а также IDE (с большинством у сервиса есть интеграция).</p>
52
<p>Репозиторий можно оставить в публичном доступе, а можно заприватить. Для управления репозиториями в GitHub используют командную строку, приложение для десктопа, а также IDE (с большинством у сервиса есть интеграция).</p>
53
<p>Для совместной работы над проектами, можно клонировать чужой репозиторий и редактировать его. Внутри репозитория хранят ветки.</p>
53
<p>Для совместной работы над проектами, можно клонировать чужой репозиторий и редактировать его. Внутри репозитория хранят ветки.</p>
54
<h3>Ветки (branch)</h3>
54
<h3>Ветки (branch)</h3>
55
<p>Они нужны для группировки изменений в проекте. Например, вы разместили в репозитории первую версию своего сайта, которая будет главной. По умолчанию ей присвоят имя - main.</p>
55
<p>Они нужны для группировки изменений в проекте. Например, вы разместили в репозитории первую версию своего сайта, которая будет главной. По умолчанию ей присвоят имя - main.</p>
56
<p>Если владелец репозитория или сторонний разработчик захочет что-то поменять, он создаст свою ветку с новой функциональностью, которую внесет на основе исходной.</p>
56
<p>Если владелец репозитория или сторонний разработчик захочет что-то поменять, он создаст свою ветку с новой функциональностью, которую внесет на основе исходной.</p>
57
<p>Ветки могут существовать параллельно, при желании их можно объединить в одну при помощи слияния - merge.</p>
57
<p>Ветки могут существовать параллельно, при желании их можно объединить в одну при помощи слияния - merge.</p>
58
<h3>Коммиты (commit)</h3>
58
<h3>Коммиты (commit)</h3>
59
<p>Это главный способ создания изменений в проекте. В коммите хранят актуальный код, который появился за прошедшую итерацию. Он содержит список изменений, а также дату и ссылку на предыдущую версию проекта.</p>
59
<p>Это главный способ создания изменений в проекте. В коммите хранят актуальный код, который появился за прошедшую итерацию. Он содержит список изменений, а также дату и ссылку на предыдущую версию проекта.</p>
60
<p>Коммиты обычно вносят на локальном репозитории. А его публикацию на GitHub называют пушем - push. Пушить изменения - как бы "проталкивать" их в общее поле.</p>
60
<p>Коммиты обычно вносят на локальном репозитории. А его публикацию на GitHub называют пушем - push. Пушить изменения - как бы "проталкивать" их в общее поле.</p>
61
<p>Для внесения изменений в репозиторий можно пользоваться двумя способами:</p>
61
<p>Для внесения изменений в репозиторий можно пользоваться двумя способами:</p>
62
<ul><li>Clone - клонировать или попросту скопировать репозиторий на свой локальный диск или собственный сервер;</li>
62
<ul><li>Clone - клонировать или попросту скопировать репозиторий на свой локальный диск или собственный сервер;</li>
63
<li>Fork - форкнуть или создать развилку, то есть новую ветку.</li>
63
<li>Fork - форкнуть или создать развилку, то есть новую ветку.</li>
64
</ul><h3>Слияние</h3>
64
</ul><h3>Слияние</h3>
65
<p>Это вторая по популярности операция на GitHub. Допустим, вы с командой работаете над одним проектом: кто-то создает фронтенд, кто-то бэкенд или их части. После того, как вы закончили самостоятельную разработку, проект нужно собрать воедино.</p>
65
<p>Это вторая по популярности операция на GitHub. Допустим, вы с командой работаете над одним проектом: кто-то создает фронтенд, кто-то бэкенд или их части. После того, как вы закончили самостоятельную разработку, проект нужно собрать воедино.</p>
66
<p>То есть фактически объединить все ветку в одну. Для этого нужно провести пулл реквест (pull request). Заканчивая процесс, разработчик подает заявку на слияние всех веток.</p>
66
<p>То есть фактически объединить все ветку в одну. Для этого нужно провести пулл реквест (pull request). Заканчивая процесс, разработчик подает заявку на слияние всех веток.</p>
67
<p>Платформа самостоятельно создаст новый коммит, в котором будут подсвечены все изменения. Так тимлид или менеджер проекта сможет проверить происходящее.</p>
67
<p>Платформа самостоятельно создаст новый коммит, в котором будут подсвечены все изменения. Так тимлид или менеджер проекта сможет проверить происходящее.</p>
68
<p>До полного слияния, о котором мы говорили выше, члены команды обычно проводят код ревью (code review). То есть просматривают все изменения и проверяют их на предмет ошибок.</p>
68
<p>До полного слияния, о котором мы говорили выше, члены команды обычно проводят код ревью (code review). То есть просматривают все изменения и проверяют их на предмет ошибок.</p>
69
<h2>Стандартная работа с GitHub</h2>
69
<h2>Стандартная работа с GitHub</h2>
70
<p>Обычно процесс работы с платформой выглядит так:</p>
70
<p>Обычно процесс работы с платформой выглядит так:</p>
71
<ul><li>Программист копирует себе репозиторий или его часть;</li>
71
<ul><li>Программист копирует себе репозиторий или его часть;</li>
72
<li>Работает над ним и по итогу создает новые ветки или коммиты;</li>
72
<li>Работает над ним и по итогу создает новые ветки или коммиты;</li>
73
<li>Отправляет пулл реквест на принятие изменений;</li>
73
<li>Отправляет пулл реквест на принятие изменений;</li>
74
<li>Владелец проекта проводит код ревью, принимает их или отклоняет. В случае успеха, он объединяет эту ветку с основной.</li>
74
<li>Владелец проекта проводит код ревью, принимает их или отклоняет. В случае успеха, он объединяет эту ветку с основной.</li>
75
</ul><h2>Как начать работать с GitHub</h2>
75
</ul><h2>Как начать работать с GitHub</h2>
76
<p>Самый простой способ работы - загрузить на сайт платформы свой проект. Сделать это очень легко. Достаточно найти в правой панели знак "+", нажать на него и выбрать "New Repository".</p>
76
<p>Самый простой способ работы - загрузить на сайт платформы свой проект. Сделать это очень легко. Достаточно найти в правой панели знак "+", нажать на него и выбрать "New Repository".</p>
77
<p>Платформа предложит придумать название и описание. Лучше делать их осмысленными, если хотите работать с этими файлами совместно или демонстрировать их другим людям.</p>
77
<p>Платформа предложит придумать название и описание. Лучше делать их осмысленными, если хотите работать с этими файлами совместно или демонстрировать их другим людям.</p>
78
<p>После создания описания нужно нажать на "Create Repository". Ваш первый репозиторий готов. Для загрузки зайдите в нужное хранилище и нажмите на "Add file".</p>
78
<p>После создания описания нужно нажать на "Create Repository". Ваш первый репозиторий готов. Для загрузки зайдите в нужное хранилище и нажмите на "Add file".</p>
79
<h2>Как искать проекты</h2>
79
<h2>Как искать проекты</h2>
80
<p>Вторая по популярности функция GitHub - социальная. Пользователь может не только хранить свои проекты, но и просматривать чужие, которые находятся в свободном доступе.</p>
80
<p>Вторая по популярности функция GitHub - социальная. Пользователь может не только хранить свои проекты, но и просматривать чужие, которые находятся в свободном доступе.</p>
81
<p>Для этого на сайте есть система внутреннего поиска. Она ищет по ключевым словам, упомянутым в названии или коротком описании репозитория.</p>
81
<p>Для этого на сайте есть система внутреннего поиска. Она ищет по ключевым словам, упомянутым в названии или коротком описании репозитория.</p>
82
<p>Дополнительно в нем содержится тип лицензии и частота обновлений, то есть - дата последнего релиза.</p>
82
<p>Дополнительно в нем содержится тип лицензии и частота обновлений, то есть - дата последнего релиза.</p>
83
<p>У проекта есть форки (аналог репостов) и звездочки (аналог лайков) - это местный рейтинг, обозначающий популярность репозитория. Чем их больше, тем интереснее для пользователей выложенный код.</p>
83
<p>У проекта есть форки (аналог репостов) и звездочки (аналог лайков) - это местный рейтинг, обозначающий популярность репозитория. Чем их больше, тем интереснее для пользователей выложенный код.</p>
84
<p>Для лучшего использования поиска можно ставить звездочки подходящим репозиториям, тогда платформа будет самостоятельно рекомендовать то, что может вас заинтересовать.</p>
84
<p>Для лучшего использования поиска можно ставить звездочки подходящим репозиториям, тогда платформа будет самостоятельно рекомендовать то, что может вас заинтересовать.</p>
85
<h2>Как научиться пользоваться GitHub</h2>
85
<h2>Как научиться пользоваться GitHub</h2>
86
<p>Самый простой способ - разместить собственный репозиторий и поискать интересные opensource-проекты, в которые вы сможете внести свою лепту. Но не всегда это выглядит как простая задача.</p>
86
<p>Самый простой способ - разместить собственный репозиторий и поискать интересные opensource-проекты, в которые вы сможете внести свою лепту. Но не всегда это выглядит как простая задача.</p>
87
<p>В работе с платформой помогут учебные пособия. Они позволят пошагово выполнить нужные действия или найти функционал, который поможет в разработке.</p>
87
<p>В работе с платформой помогут учебные пособия. Они позволят пошагово выполнить нужные действия или найти функционал, который поможет в разработке.</p>
88
<p>У GitHub много дополнительных инструментов и неочевидных возможностей.</p>
88
<p>У GitHub много дополнительных инструментов и неочевидных возможностей.</p>
89
<p>Полезные пособия:</p>
89
<p>Полезные пособия:</p>
90
<ol><li>Книга "Pro Git" от Скотта Шакона. Автор сам принимал участие в разработке этой платформы, поэтому в курсе всех ее особенностей. Книга написана простым языком и подойдет новичкам. Есть<a>перевод на русский</a>.</li>
90
<ol><li>Книга "Pro Git" от Скотта Шакона. Автор сам принимал участие в разработке этой платформы, поэтому в курсе всех ее особенностей. Книга написана простым языком и подойдет новичкам. Есть<a>перевод на русский</a>.</li>
91
<li><a>Руководство по Git</a>. Интерактивный учебник, который познакомит с самой технологией и ее возможностями. Есть только англоязычная версия, адаптированная под разные платформы.</li>
91
<li><a>Руководство по Git</a>. Интерактивный учебник, который познакомит с самой технологией и ее возможностями. Есть только англоязычная версия, адаптированная под разные платформы.</li>
92
<li>Пользователь "Хабра" сделал подборку самых интересных репозиториев. Из них начинающий и даже опытный разработчик сможет почерпнуть много интересного. Если вы уже разобрались с проектами, но не знаете "куда пойти" - вот готовое решение.<a>Первый список</a>и<a>второй</a>.</li>
92
<li>Пользователь "Хабра" сделал подборку самых интересных репозиториев. Из них начинающий и даже опытный разработчик сможет почерпнуть много интересного. Если вы уже разобрались с проектами, но не знаете "куда пойти" - вот готовое решение.<a>Первый список</a>и<a>второй</a>.</li>
93
</ol>
93
</ol>