SlideShare una empresa de Scribd logo
1 de 29
Descargar para leer sin conexión
Готовим код 

в мир открытых исходников
Women Techmakers Novosibirsk

International Women’s Day 2017

09.04.2017
Елена Граховац
Елена Граховац
twitter.com/webdeva
github.com/rumyantseva
elena@grahovac.me
бэкенд-разработчик в Openprovider

соведущая подкаста GolangShow
Open Source
3
- Внести свой вклад в развитие технологий
- Получить опыт разработки
- Поучиться у гуру
- Найти новых друзей
- Прославиться 🤓
Свой или чужой?
4
Существующий проект
5
- Принести пользу
- Улучшить продукт, которым пользуешься
- Стать частью сообщества
- Поучиться на чужих примерах написания кода
- Получить кодревью от более опытных
товарищей
Свой проект
6
- Реализовать давнюю идею
- Попробовать себя в разработке “с нуля”
- Добавить примеры кода в портфолио
- Собрать команду единомышленников
GitHub.com
мир открытых исходников и социальная сеть
для разработчиков
7
education.github.com/pack
инструменты и сервисы для студентов
8
Присоединяемся к проекту
9
Чем помочь?
10
- Реализовать фичу или пофиксить баг
- Улучшить документацию
- Перевести документацию или сайт проекта на
иностранный язык
- Оставить баг-репорт или фича-реквест
README.md
11
- Описание проекта
- Инструкция по развертыванию
- Краткая информация о том, как можно
поучаствовать в проекте
CONTRIBUTING.md
12
Подробные правила участия в проекте
Пример для golang/go
Issues
13
- В первую очередь — “help wanted”
- В первую очередь — простые задачи
- Вознаграждение за “bounty”
- Сначала согласовать, потом начать
реализацию тикета
Issues
14
Пример для golang/go
Fork & Pull Request
15
- Какую ветку форкать?
- Стандарты кодирования
- Правила оформления кода и коммитов
- Тесты
- В какую ветку делать Pull Request?
- Правила оформления Pull Request’ов
Начинаем свой проект
16
README.md
18
- Описание проекта
- Инструкция по развертыванию
- Информация о том, как можно поучаствовать в
проекте (или файл CONTRIBUTING.md)
- Список контрибьюторов (или файл
CONTRIBUTORS)
Всё то же самое 🤓
LICENSE
19
choosealicense.com
Модель работы с Git
20
- Git flow (master, develop, feature, release, hotfix)
- Свой вариант
- Теги!
Семантическое версионирование
21
semver.org
- Мажорная.Минорная.Патч
- Обратная совместимость
- Начинать с нуля? 0.0.1 или 0.1.0?
- Суффиксы (alpha, beta, rc)
Стандарты кодирования
22
- Выбрать стандарт и следовать ему!
- Описать правила для контрибьютеров
- Хуки на коммит на стороне клиента (pre-
commit.com)
- Хуки на пуш на стороне сервера
Документация
23
- Минимальная — в README.md
- Автодокументация, сгенерированная по коду
- Документация для библиотеки
- Документация для REST API
Тесты
24
- Правильность кода
- Пример использования кода
- Помощь контрибьюторам
Автосборка
25
- Проверить код на соответствие стандартам
- Запустить тесты
- Запустить сборку (если требуется)
- Удобно: travis-ci.com для проектов с открытым
исходным кодом
Собираем бейджи
26
- Текущая версия
- Успешность сборки
- Документирование
- Покрытие тестами
- Соответствие стандартам кодирования
- Привлечение внимания
- …
badges/shields
Issues & Projects
27
- Теги для тикетов
- Планирование версий (“milestones”)
- Объединение крупных фич в проекты
- Общение с контрибьюторами
Что ещё?
28
- Создать чат для общения с пользователями и
контрибьюторами (gitter.im)
- Рассказать про свой проект в тематических
сообществах
- Подгтовить доклад о своем проекте на
ближайший митап
Елена Граховац
twitter.com/webdeva
github.com/rumyantseva
elena@grahovac.me
бэкенд-разработчик в Openprovider

соведущая подкаста GolangShow

Más contenido relacionado

La actualidad más candente

Go в автобусе
Go в автобусеGo в автобусе
Go в автобусеArtem Kovardin
 
Как ВКонтакте использует Go
Как ВКонтакте использует GoКак ВКонтакте использует Go
Как ВКонтакте использует GoArtem Kovardin
 
Илья Биин: Организация совместной работы Go и Python-based сервисов в Ostrovo...
Илья Биин: Организация совместной работы Go и Python-based сервисов в Ostrovo...Илья Биин: Организация совместной работы Go и Python-based сервисов в Ostrovo...
Илья Биин: Организация совместной работы Go и Python-based сервисов в Ostrovo...Yandex
 
Работаем с API по-взрослому - Максим Кислов (Badoo)
Работаем с API по-взрослому - Максим Кислов (Badoo)Работаем с API по-взрослому - Максим Кислов (Badoo)
Работаем с API по-взрослому - Максим Кислов (Badoo)AvitoTech
 
BeeGo для веб приложений, API и демонов
BeeGo для веб приложений, API и демоновBeeGo для веб приложений, API и демонов
BeeGo для веб приложений, API и демоновAnton Piskunov
 
Михаил Коробов: Как перейти на Python 3
Михаил Коробов: Как перейти на Python 3Михаил Коробов: Как перейти на Python 3
Михаил Коробов: Как перейти на Python 3it-people
 
Rust - GDG DevFest 2016 Nizhny Novgorod
Rust - GDG DevFest 2016 Nizhny NovgorodRust - GDG DevFest 2016 Nizhny Novgorod
Rust - GDG DevFest 2016 Nizhny NovgorodNikita Baksalyar
 
что такое Git и как с ним бороться
что такое Git и как с ним боротьсячто такое Git и как с ним бороться
что такое Git и как с ним боротьсяВладимир Кожаев
 
Применение языка Go в инфраструктурных проектах
Применение языка Go в инфраструктурных проектахПрименение языка Go в инфраструктурных проектах
Применение языка Go в инфраструктурных проектахAlex Chistyakov
 
Владимир Варанкин — «БЭМ: практика»
Владимир Варанкин — «БЭМ: практика»Владимир Варанкин — «БЭМ: практика»
Владимир Варанкин — «БЭМ: практика»Yandex
 
Размещение проектов на drupal.org
Размещение проектов на drupal.orgРазмещение проектов на drupal.org
Размещение проектов на drupal.orgzabej
 
Rempl — крутая платформа для крутых инструментов - Роман Дворнов (Avito)
Rempl — крутая платформа для крутых инструментов - Роман Дворнов (Avito)Rempl — крутая платформа для крутых инструментов - Роман Дворнов (Avito)
Rempl — крутая платформа для крутых инструментов - Роман Дворнов (Avito)AvitoTech
 
Дизайн платформа в Avito - Александр Лобашев (Avito)
Дизайн платформа в Avito - Александр Лобашев (Avito)Дизайн платформа в Avito - Александр Лобашев (Avito)
Дизайн платформа в Avito - Александр Лобашев (Avito)AvitoTech
 
Данил Ильиных и Владимир Иванов, «Велогосипед»
Данил Ильиных и Владимир Иванов, «Велогосипед»Данил Ильиных и Владимир Иванов, «Велогосипед»
Данил Ильиных и Владимир Иванов, «Велогосипед»Platonov Sergey
 
Сравнение технологий aiopg & asyncpg, Алексей Фирсов. 22 июня, 2019
Сравнение технологий aiopg & asyncpg, Алексей Фирсов. 22 июня, 2019Сравнение технологий aiopg & asyncpg, Алексей Фирсов. 22 июня, 2019
Сравнение технологий aiopg & asyncpg, Алексей Фирсов. 22 июня, 2019Mail.ru Group
 
Git для новичков
Git для новичковGit для новичков
Git для новичковSoftline
 
Юлия Писаревская - В поисках эффективности: Slack и BitBucket
Юлия Писаревская - В поисках эффективности: Slack и BitBucketЮлия Писаревская - В поисках эффективности: Slack и BitBucket
Юлия Писаревская - В поисках эффективности: Slack и BitBucketTatyana Bragina
 
Михаил Корепанов "Инкрементальные обновления на клиенте. Ловкость рук и никак...
Михаил Корепанов "Инкрементальные обновления на клиенте. Ловкость рук и никак...Михаил Корепанов "Инкрементальные обновления на клиенте. Ловкость рук и никак...
Михаил Корепанов "Инкрементальные обновления на клиенте. Ловкость рук и никак...Yandex
 
#PostgreSQLRussia 2015.09.15 - Николай Самохвалов - 5 главных особенностей Po...
#PostgreSQLRussia 2015.09.15 - Николай Самохвалов - 5 главных особенностей Po...#PostgreSQLRussia 2015.09.15 - Николай Самохвалов - 5 главных особенностей Po...
#PostgreSQLRussia 2015.09.15 - Николай Самохвалов - 5 главных особенностей Po...Nikolay Samokhvalov
 

La actualidad más candente (20)

Go в автобусе
Go в автобусеGo в автобусе
Go в автобусе
 
Как ВКонтакте использует Go
Как ВКонтакте использует GoКак ВКонтакте использует Go
Как ВКонтакте использует Go
 
Илья Биин: Организация совместной работы Go и Python-based сервисов в Ostrovo...
Илья Биин: Организация совместной работы Go и Python-based сервисов в Ostrovo...Илья Биин: Организация совместной работы Go и Python-based сервисов в Ostrovo...
Илья Биин: Организация совместной работы Go и Python-based сервисов в Ostrovo...
 
Use Grunt Luke
Use Grunt LukeUse Grunt Luke
Use Grunt Luke
 
Работаем с API по-взрослому - Максим Кислов (Badoo)
Работаем с API по-взрослому - Максим Кислов (Badoo)Работаем с API по-взрослому - Максим Кислов (Badoo)
Работаем с API по-взрослому - Максим Кислов (Badoo)
 
BeeGo для веб приложений, API и демонов
BeeGo для веб приложений, API и демоновBeeGo для веб приложений, API и демонов
BeeGo для веб приложений, API и демонов
 
Михаил Коробов: Как перейти на Python 3
Михаил Коробов: Как перейти на Python 3Михаил Коробов: Как перейти на Python 3
Михаил Коробов: Как перейти на Python 3
 
Rust - GDG DevFest 2016 Nizhny Novgorod
Rust - GDG DevFest 2016 Nizhny NovgorodRust - GDG DevFest 2016 Nizhny Novgorod
Rust - GDG DevFest 2016 Nizhny Novgorod
 
что такое Git и как с ним бороться
что такое Git и как с ним боротьсячто такое Git и как с ним бороться
что такое Git и как с ним бороться
 
Применение языка Go в инфраструктурных проектах
Применение языка Go в инфраструктурных проектахПрименение языка Go в инфраструктурных проектах
Применение языка Go в инфраструктурных проектах
 
Владимир Варанкин — «БЭМ: практика»
Владимир Варанкин — «БЭМ: практика»Владимир Варанкин — «БЭМ: практика»
Владимир Варанкин — «БЭМ: практика»
 
Размещение проектов на drupal.org
Размещение проектов на drupal.orgРазмещение проектов на drupal.org
Размещение проектов на drupal.org
 
Rempl — крутая платформа для крутых инструментов - Роман Дворнов (Avito)
Rempl — крутая платформа для крутых инструментов - Роман Дворнов (Avito)Rempl — крутая платформа для крутых инструментов - Роман Дворнов (Avito)
Rempl — крутая платформа для крутых инструментов - Роман Дворнов (Avito)
 
Дизайн платформа в Avito - Александр Лобашев (Avito)
Дизайн платформа в Avito - Александр Лобашев (Avito)Дизайн платформа в Avito - Александр Лобашев (Avito)
Дизайн платформа в Avito - Александр Лобашев (Avito)
 
Данил Ильиных и Владимир Иванов, «Велогосипед»
Данил Ильиных и Владимир Иванов, «Велогосипед»Данил Ильиных и Владимир Иванов, «Велогосипед»
Данил Ильиных и Владимир Иванов, «Велогосипед»
 
Сравнение технологий aiopg & asyncpg, Алексей Фирсов. 22 июня, 2019
Сравнение технологий aiopg & asyncpg, Алексей Фирсов. 22 июня, 2019Сравнение технологий aiopg & asyncpg, Алексей Фирсов. 22 июня, 2019
Сравнение технологий aiopg & asyncpg, Алексей Фирсов. 22 июня, 2019
 
Git для новичков
Git для новичковGit для новичков
Git для новичков
 
Юлия Писаревская - В поисках эффективности: Slack и BitBucket
Юлия Писаревская - В поисках эффективности: Slack и BitBucketЮлия Писаревская - В поисках эффективности: Slack и BitBucket
Юлия Писаревская - В поисках эффективности: Slack и BitBucket
 
Михаил Корепанов "Инкрементальные обновления на клиенте. Ловкость рук и никак...
Михаил Корепанов "Инкрементальные обновления на клиенте. Ловкость рук и никак...Михаил Корепанов "Инкрементальные обновления на клиенте. Ловкость рук и никак...
Михаил Корепанов "Инкрементальные обновления на клиенте. Ловкость рук и никак...
 
#PostgreSQLRussia 2015.09.15 - Николай Самохвалов - 5 главных особенностей Po...
#PostgreSQLRussia 2015.09.15 - Николай Самохвалов - 5 главных особенностей Po...#PostgreSQLRussia 2015.09.15 - Николай Самохвалов - 5 главных особенностей Po...
#PostgreSQLRussia 2015.09.15 - Николай Самохвалов - 5 главных особенностей Po...
 

Similar a Готовим код 
в мир открытых исходников

Игорь Новак — Редакторы
Игорь Новак — РедакторыИгорь Новак — Редакторы
Игорь Новак — РедакторыYandex
 
Контроль за качеством кода
Контроль за качеством кодаКонтроль за качеством кода
Контроль за качеством кодаКирилл Борисов
 
Anton Tsitou "Designing hybrid Go/PHP applications using RoadRunner"
Anton Tsitou "Designing hybrid Go/PHP applications using RoadRunner"Anton Tsitou "Designing hybrid Go/PHP applications using RoadRunner"
Anton Tsitou "Designing hybrid Go/PHP applications using RoadRunner"Fwdays
 
Komelin drupalconf report_komelin_v2
Komelin drupalconf report_komelin_v2Komelin drupalconf report_komelin_v2
Komelin drupalconf report_komelin_v2drupalconf
 
GitHub - зеркало разработчика
GitHub - зеркало разработчикаGitHub - зеркало разработчика
GitHub - зеркало разработчикаAlexander Granin
 
Процессы разработки в Яндексе
Процессы разработки в ЯндексеПроцессы разработки в Яндексе
Процессы разработки в ЯндексеAndrey Kazarinov
 
Python Development process in Yandex
Python Development process in YandexPython Development process in Yandex
Python Development process in Yandexaviatakz
 
Ігор Карпиленко — PHPStorm for drupal developer
Ігор Карпиленко — PHPStorm for drupal developerІгор Карпиленко — PHPStorm for drupal developer
Ігор Карпиленко — PHPStorm for drupal developerLEDC 2016
 
Развитие сообщества Open DevOps Community
Развитие сообщества Open DevOps CommunityРазвитие сообщества Open DevOps Community
Развитие сообщества Open DevOps CommunityPositive Hack Days
 
непрерывная интеграция шаг к непрерывному деплою родионов игорь
непрерывная интеграция   шаг к непрерывному деплою родионов игорьнепрерывная интеграция   шаг к непрерывному деплою родионов игорь
непрерывная интеграция шаг к непрерывному деплою родионов игорьdrupalconf
 
InterSystems Community and Projects in CIS November 2015
InterSystems Community and Projects in CIS November 2015InterSystems Community and Projects in CIS November 2015
InterSystems Community and Projects in CIS November 2015InterSystems
 
Масштабируемая архитектура фронтенда
Масштабируемая архитектура фронтендаМасштабируемая архитектура фронтенда
Масштабируемая архитектура фронтендаRoman Dvornov
 
Денис Паясь
Денис ПаясьДенис Паясь
Денис ПаясьCodeFest
 
Непрерывная интеграция шаг к непрерывному деплою. Родионов Игорь
Непрерывная интеграция шаг к непрерывному деплою. Родионов ИгорьНепрерывная интеграция шаг к непрерывному деплою. Родионов Игорь
Непрерывная интеграция шаг к непрерывному деплою. Родионов ИгорьPVasili
 
Юрий Василевский "Автоматизация в XCode"
Юрий Василевский "Автоматизация в XCode"Юрий Василевский "Автоматизация в XCode"
Юрий Василевский "Автоматизация в XCode"Yandex
 
Юрий Василевский «Автоматизация в XCode»
Юрий Василевский «Автоматизация в XCode»Юрий Василевский «Автоматизация в XCode»
Юрий Василевский «Автоматизация в XCode»Yandex
 
Мой маленький уютный PaaS / Илья Беда (bro.agency)
Мой маленький уютный PaaS / Илья Беда (bro.agency)Мой маленький уютный PaaS / Илья Беда (bro.agency)
Мой маленький уютный PaaS / Илья Беда (bro.agency)Ontico
 

Similar a Готовим код 
в мир открытых исходников (20)

Игорь Новак — Редакторы
Игорь Новак — РедакторыИгорь Новак — Редакторы
Игорь Новак — Редакторы
 
Контроль за качеством кода
Контроль за качеством кодаКонтроль за качеством кода
Контроль за качеством кода
 
Teatro
TeatroTeatro
Teatro
 
Anton Tsitou "Designing hybrid Go/PHP applications using RoadRunner"
Anton Tsitou "Designing hybrid Go/PHP applications using RoadRunner"Anton Tsitou "Designing hybrid Go/PHP applications using RoadRunner"
Anton Tsitou "Designing hybrid Go/PHP applications using RoadRunner"
 
Open your source
Open your sourceOpen your source
Open your source
 
Komelin drupalconf report_komelin_v2
Komelin drupalconf report_komelin_v2Komelin drupalconf report_komelin_v2
Komelin drupalconf report_komelin_v2
 
GitHub - зеркало разработчика
GitHub - зеркало разработчикаGitHub - зеркало разработчика
GitHub - зеркало разработчика
 
Процессы разработки в Яндексе
Процессы разработки в ЯндексеПроцессы разработки в Яндексе
Процессы разработки в Яндексе
 
Python Development process in Yandex
Python Development process in YandexPython Development process in Yandex
Python Development process in Yandex
 
Little Service in 2h
Little Service in 2hLittle Service in 2h
Little Service in 2h
 
Ігор Карпиленко — PHPStorm for drupal developer
Ігор Карпиленко — PHPStorm for drupal developerІгор Карпиленко — PHPStorm for drupal developer
Ігор Карпиленко — PHPStorm for drupal developer
 
Развитие сообщества Open DevOps Community
Развитие сообщества Open DevOps CommunityРазвитие сообщества Open DevOps Community
Развитие сообщества Open DevOps Community
 
непрерывная интеграция шаг к непрерывному деплою родионов игорь
непрерывная интеграция   шаг к непрерывному деплою родионов игорьнепрерывная интеграция   шаг к непрерывному деплою родионов игорь
непрерывная интеграция шаг к непрерывному деплою родионов игорь
 
InterSystems Community and Projects in CIS November 2015
InterSystems Community and Projects in CIS November 2015InterSystems Community and Projects in CIS November 2015
InterSystems Community and Projects in CIS November 2015
 
Масштабируемая архитектура фронтенда
Масштабируемая архитектура фронтендаМасштабируемая архитектура фронтенда
Масштабируемая архитектура фронтенда
 
Денис Паясь
Денис ПаясьДенис Паясь
Денис Паясь
 
Непрерывная интеграция шаг к непрерывному деплою. Родионов Игорь
Непрерывная интеграция шаг к непрерывному деплою. Родионов ИгорьНепрерывная интеграция шаг к непрерывному деплою. Родионов Игорь
Непрерывная интеграция шаг к непрерывному деплою. Родионов Игорь
 
Юрий Василевский "Автоматизация в XCode"
Юрий Василевский "Автоматизация в XCode"Юрий Василевский "Автоматизация в XCode"
Юрий Василевский "Автоматизация в XCode"
 
Юрий Василевский «Автоматизация в XCode»
Юрий Василевский «Автоматизация в XCode»Юрий Василевский «Автоматизация в XCode»
Юрий Василевский «Автоматизация в XCode»
 
Мой маленький уютный PaaS / Илья Беда (bro.agency)
Мой маленький уютный PaaS / Илья Беда (bro.agency)Мой маленький уютный PaaS / Илья Беда (bro.agency)
Мой маленький уютный PaaS / Илья Беда (bro.agency)
 

Más de Elena Grahovac

Пословицы дядюшки Пайка
Пословицы дядюшки ПайкаПословицы дядюшки Пайка
Пословицы дядюшки ПайкаElena Grahovac
 
Пользовательские истории
Пользовательские историиПользовательские истории
Пользовательские историиElena Grahovac
 
Микросервисные архитектуры и немного жизненного опыта
Микросервисные архитектуры и немного жизненного опытаМикросервисные архитектуры и немного жизненного опыта
Микросервисные архитектуры и немного жизненного опытаElena Grahovac
 
Взаимодействие сервисов через Advanced Message
 Queuing Protocol
Взаимодействие сервисов через Advanced Message
 Queuing ProtocolВзаимодействие сервисов через Advanced Message
 Queuing Protocol
Взаимодействие сервисов через Advanced Message
 Queuing ProtocolElena Grahovac
 
Введение в сервис-ориентированную архитектуру
Введение в сервис-ориентированную архитектуруВведение в сервис-ориентированную архитектуру
Введение в сервис-ориентированную архитектуруElena Grahovac
 

Más de Elena Grahovac (7)

Go at Openprovider
Go at OpenproviderGo at Openprovider
Go at Openprovider
 
Пословицы дядюшки Пайка
Пословицы дядюшки ПайкаПословицы дядюшки Пайка
Пословицы дядюшки Пайка
 
Пользовательские истории
Пользовательские историиПользовательские истории
Пользовательские истории
 
Про Git
Про GitПро Git
Про Git
 
Микросервисные архитектуры и немного жизненного опыта
Микросервисные архитектуры и немного жизненного опытаМикросервисные архитектуры и немного жизненного опыта
Микросервисные архитектуры и немного жизненного опыта
 
Взаимодействие сервисов через Advanced Message
 Queuing Protocol
Взаимодействие сервисов через Advanced Message
 Queuing ProtocolВзаимодействие сервисов через Advanced Message
 Queuing Protocol
Взаимодействие сервисов через Advanced Message
 Queuing Protocol
 
Введение в сервис-ориентированную архитектуру
Введение в сервис-ориентированную архитектуруВведение в сервис-ориентированную архитектуру
Введение в сервис-ориентированную архитектуру
 

Готовим код 
в мир открытых исходников