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

А что если поделиться этой годнотой с сообществом и выложить этот файлик на гитхаб? Тогда ваши труды могут быть полезны еще кому-нибудь, а поддерживать актуальность можно совместно, принимая обновления от желающих через старые добрые PR’ы. Именно для этого предназначен проект Awesome lists. Он входит в ТОП-10 репозиториев гитхаба, обладает 138К звезд, и ссылка на ваши труды может оказаться прямо в его корневом README, что привлечет огромную аудиторию к вашему творчеству. Правда, для этого придется немного постараться. О моем опыте таких стараний хочу поделиться с вами.

Меня зовут Максим Грамин. В КРОК занимаюсь Java-разработкой и исследованиями в области БД. В этом посте я расскажу, что такое Awesome Lists и как сделать свой настоящий официальный awesome-репо.

Что такое Awesome Lists

Когда мне предстоит разобраться с какой-нибудь новой технологией или языком программирования, то я первым делом иду именно сюда — нахожу нужный раздел, а в нем подходящие листы. И судя по количеству звезд и их постоянному росту, так делаю не только я.

На самом деле — это обычный плоский readme.md, который живет в отдельном репозитории, занимает при этом 8-е место среди всех репозиториев GitHub’а и включает ссылки на другие листы, посвященные какой-либо тематике. Например в разделе Programming Languages можно найти листы Awesome Python и Awesome Go, а в Front-End Development есть огромное количество ресурсов по WEB-разработке. Ну и, конечно же, — раздел Databases (к нему мы еще вернемся чуть позже). И да, все это не ограничивается только техническими темами. Например, в разделах Entertainment и Gaming тоже можно найти много чего интересного (меня лично порадовал awesome-fantasy).
Главная особенность состоит в том, что все эти листы ведутся не лично автором, а сообществом и составлены в соответствии со специальным и очень строгим awesome manifesto. Каждый такой лист является самостоятельным сообществом специалистов, живет своей жизнью и открыт для ваших pull request’ов, которые сделают его еще лучше. А также любой желающий может сделать свой собственный лист, если какая-то тема еще не была освещена.

Автор идеи и координатор всего этого хозяйства — легендарный Синдре Сорхус, первый человек на GitHub’е, автор более 1000 npm-модулей, и именно он будет принимать ваши PR-ы.

Как попасть в awesome-list

Если вдруг вы не нашли подходящего листа на интересующую вас тему, то это первый признак того, что его нужно сделать самому!

Расскажу на примере своего детища Awesome Database Tools — Из проекта в проект мне приходится работать с самыми разными базами данных, и поэтому у меня завелся такой файлик, в котором я собирал полезные тулзы для работы с ними, всякие БД-миграторы, IDE-шки, админ-панели, средства мониторинга и всякое разное. Инструменты, которые я уже использовал, или только планировал начать применять. Делился я этим файликом с коллегами в КРОК и за его пределами. Это много кому помогало и было интересно. В итоге я захотел славы большего, когда однажды заметил, что в разделе Databases как раз нет листа на эту тему. И я решил добавить туда свой.

Что для этого нужно?

  1. Регистрируем обычный GitHub-репо с именем вида awesome-что-то-там. В моем случае это был awesome-database-tools
  2. Приводим свой лист к формату awesome, в этом нам поможет generator-awesome-list, который сгенерирует все нужные файлы в нужном формате
  3. Настраиваем самый настоящий CI. awesome-lint и travis ci помогут нам контролировать валидность нашего листа
  4. Ждем 30 дней
  5. Делаем ревью как минимум на 2 чужих PR’а
  6. И наконец делаем PR в главный репо, куда добавляем ссылку на свой репо. Тут нужно внимательно все прочесть и тщательно выполнить все многочисленные требования к новому листу и самому PR.

Мой первый блин оказался комом

Но прошло немного времени, я собрал еще больше материала, поработал над ошибками и отважился на вторую попытку.

Но я забыл об очень важной вещи, о чем мне мягко намекнули:

Я был не очень внимателен и не добавил единорога в знак подтверждения того, что все условия выполнены

Затем прошло еще немного времени, еще немного правок по замечаниям, и появился долгожданный твит, что мой PR был принят.

Так я стал автором своего первого листа, и мне стали приходить PR’ы из сообщества на добавление новых тулзов. И многие из них уже включены в Awesome Database Tools.

Есть находки для БД — делитесь. Также буду рад получить обратную связь — PR’ы и звездочки. Остались вопросы по созданию своих листов — тоже пишите.

C оригиналом статьи можно ознакомиться на Хабре