OpenSource. Что? Зачем? Как?

Александр Макаров / Yii core team

https://slides.rmcreative.ru/2019/hacktoberfest-vrn/

Обо мне

  • ВГУ, ФКН
  • 10+ лет в IT: Java, PHP, JavaScript etc.
  • Пишу, докладываю.
  • Занимаюсь OpenSource.
  • Член команды Yii и PHP-FIG.
  • Siemens, Wrike, CleverTech, Stay.com, Skyeng.
  • Делаю PHP Russia.

Что?

Восприятие менялось…

Халява!

Как меня затянуло

  • 2005 — Siemens.
  • 2007 — Аутсорс, Java.
  • Личные проекты на Java разворачивать было не очень…
  • Использовал PHP… CodeIgniter.

Yii

  • Разочаровался в CodeIgniter.
  • Попробовал ZF, Symfony, CakePHP и всякое…
  • Случайно попал на сайт Yii.

Yii

  • Сделал yiiframework.ru (2009).
  • Начал активно слать патчи.
  • Приглашён в core team (2010).

Yii сейчас

  • Почти 11 лет.
  • 13100 звёздочек на Github у Yii 2.
  • 7,800,000 установок у Yii 2.
  • Под 1000 контрибьютеров за всё время.
  • Один активный член core team (я).
  • 50 issue в месяц.
  • 30 PR в месяц.
  • Релизы раз в 2 недели.

OpenSource — не халява…

  • Коллективный вклад на благо всех участников.
  • Бесплатен, но создаётся не бесплатно.

Зачем?

  • Зачем он самому проекту?
  • Зачем он компании?
  • Зачем он участнику?

Проект

  • Вместо можно сделать больше и лучше.
  • Очень много тестирования.
  • Так безопаснее для продукта.

Компания

  • Имидж
  • Найм
  • Иногда это выгодно

Участник

  • Научиться.
  • Для портфолио.
  • Хобби. Работы мало.
  • Скучно. Хочется хардкора.

Как?

Свой проект или существующий?

  • Цель. Чего вы хотите достичь?
  • Лидер. Кто решает? Сообщество само не решит.

Не всегда приятно

Немного советов

  • Краткое описание: что это и зачем.
  • Английский!
  • Документация.
  • phpdoc (jsdoc, javadoc).
  • Тесты и CI.
  • Особое внимание readme.
  • Скриншоты, лого.
  • Использовать стандарт кодирования (PSR или другой).
  • Действительно отвечать на issue.
  • Выбрать нормальную лицензию (не GPL!).
  • Выбрать версионирование и следовать ему (SemVer?).
  • packagist (npm, maven, ...).
  • Сайт «поддержки».
  • Ссылка на сайт из репозитория и обратно.
  • Отключить wiki и projects, если не используются.
  • Теги GitHub.
  • CONTRIBUTING.md.
  • Анонсировать релизы.
  • Рассказывать о планах. Обещать и выполнять обещания.

И ещё ;)

  • Если о проекте никто не знает, популярность он будет набирать не быстро... или вообще не будет.
  • Анонсировать везде: форумы, reddit, хабр, чаты, конференции, митапы, …

Внезапный конец.

Задавайте вопросы