Skip to content

Latest commit

 

History

History
145 lines (96 loc) · 9.17 KB

CONTRIBUTING.md

File metadata and controls

145 lines (96 loc) · 9.17 KB

Welcome 🤖

Спасибо, что вкладываешь свое время в RedMadRobot Technology Radar!
На этой странице собраны инструкции как работать с изменениями в радаре.

В данном документе используются следующие термины:

  • технология - любая библиотека/инструмент/язык и т.д.
  • страничка - любая технология из радара.

Для начала, определи какой случай подходит больше всего:

  • Если хочется поменять или улучшить что-то не связанное с контентом или твой случай не укладывается в другие сценарии - стоит начать обсуждение
  • Если что-то не работает - создавай issue
  • Для добавления или изменения страничек - смело создавай pull request.

Добавление новой технологии

Каждая технология это отдельный [Markdown] файл. В начале каждого файла должна быть front-matter шапка:

---
title:      Лучшая библиотека в мире
ring:       trial
quadrant:   libraries
tags: 

---

Дальше markdown текст с подробным описанием.

Поддерживаемые аттрибуты:

Аттрибут Описание Возможные значения
title Отображаемое название странички Любая строка
quadrant Квадрант Один из: libraries utilities methods-and-patterns languages-and-frameworks
ring Кольцевая секция в радаре Одно из: adopt trial assess hold
tags (опционально) Тэг Любая строка
featured (опционально, по умолчанию true) Если установить в false - страничку не будет видно на радаре, а только в overview true или false

Так как страничка - это markdown файл - можно вставлять картинки, для этого положи ее в ./public/images/ и добавь ссылку:

![nice image](/images/nice-image.png)

При добавлении новой страницы в радар, стоит следовать шаблону:

[Docs](Подставь ссылку на документацию) | [Sources](Подставь ссылку на исходники)

Какую проблему/задачу решает и для каких целей выбрали технологию/библиотеку

## Почему именно X (опционально)

Почему выбрали именно эту технологию, а не, например, `Y`?

## Полезные ссылки

Сюда можно приложить ссылки на следующее:

- Статьи/песочницы
- Пример чего-то реализованного на этой технологии/языке/библиотеке

Пример страницы - camerax

Описание квадрантов

Всего есть 4 квадранта:

  • Libraries
    Сюда попадают библиотеки, полезные для реализации ПО.
  • Methods & Patterns
    Паттерны и подходы очень важны, т.к. многие из них оказывают большее и продолжительное влияние на проекты. В эту категорию попадает информация о методах и паттернах, касающихся разработки, сontinuous X, тестировании, организации, архитектуре и т.д.
  • Languages & Frameworks
    Языки и фреймворки которые используют роботы.
  • Utilities
    Здесь мы размещаем различные программные инструменты - от небольших утилит до более крупных программных проектов.

Описание кольцевых секций

Всего есть 4 секции:

  • Adopt
    Технологии которые активно используются в компании и доказали свою эффективность.
  • Trial
    Технологии которые прошли все этапы тестирования на стейджах или даже в продакшене и готовятся после пристального внимания на них перейти в активно используемые технологии.
  • Assess
    Технологии которые используются в тестовых проектах и не факт, что доберутся до стадии их масштабирования и адаптации, но почерпнуть что-то новое от их использования будет полезно.
  • Hold
    Технологии, которые рассматривали или использовали, но они уже устарели или появились более оптимальные технологии и для новых проектов стоит выбрать что-то другое.

Обновление существующей странички

❗ Название файла должно быть таким же, как и в предыдущих релизах.

При переводе технологии в Adopt - укажи, какие нашлись плюсы (это может быть что угодно).

При переводе в Hold стоит заполнить следующий шаблон:

Краткое описание, что используем вместо этой технологии/языка/библиотеки.

Нюансы переезда на новую технологию или ссылка на документацию по миграции, для примера можно посмотреть на accompanist insets.

Допущения.  
Для примера: отказываемся от AssertJ в пользу Kotest, но на java-проектах продолжаем использовать.

---
</br>

Любые другие подробности (могут отсутствовать).

Пример перевода библиотеки в статус Hold - assertj.

Создание релиза

С помощью механизма релизов генератор статики понимает, какие страницы изменились или добавились. Чтобы создать релиз, создай в директории radar папку с именем в формате YYYY-MM-DD (с датой изменения) или воспользуйся скриптом:

./script/create_new_release_folder.sh

Новый релиз необходимо создавать при добавлении странички или изменении статуса технологии.
Для исправления описания существующей страницы релиз создавать не нужно.