Чему могут научить пул реквесты в чужие проекты

Привет. Гоу на примере игр (Unity и C#) и ассетов к ним разберем на примерах почему тебе может быть полезно вносить вклад в сообщество программистов.

Речь пойдет про запросы на внесение изменений через форк проекта.

Гит система

Запросы на принятие изменений позволят поближе познакомиться с системой Гит, освоить незнакомый функционал. Запросы на принятие изменений не ограничиваются лишь целью внести вклад в общество: в крупных компаниях запросы — обязательная часть работы, одобрение работы программиста как сотрудника, работающего над проектом совместно с другими.

Подчерпнуть новое

Очевидно, вклад в чужой репозиторий требует прочтения чужого кода, что само по себе учит новому. Подход к написанию, объявление полей и свойств, применение атрибутов, событий, делегатов, пространств имен, assembly definition; шаблоны проектирования на на конкретном примере, вложенные методы, способы инициализации, приемчики старой школы программистов по типу использования адреса ячейки памяти в качестве индексации коллекции…

749b1b90cbb9f173a6dab637846e0bbf.png

Могу порекомендовать посмотреть ролик с фишками C# на эту тему.

Рефакторинг

Рас ты хочешь внести изменения в чужой код, значит это… Рефакторинг! Отличный способ попрактиковаться в этом направлении. Приятное с полезным.

  • Видишь повторяющиеся строки кода? Вынеси в отдельный метод.

  • Видишь смешение логики? Извлеки одну логику в отдельный класс.

  • Схожее поведение у разнотиных классов? Вынеси интерфейс.

  • Неразлучно передается много данных? Можно собрать в структуру.

  • Метод пренадлежит чужому классу, нелогичное расположение? Перенеси в более очевидное место.

Прежде чем менять чужой код, стоит почитать методы рефакторинга и запахи кода. Бесполезные или неграмотные запросы никому не нужны.

Большой класс

Большой класс

Совершенствование проекта

Конечно же при внесении изменений проект становится лучше.

  • получает новый функционал

  • становится оптимизированным

  • исправляются баги

  • исправляются ошибки нетехнического характера

В том числе благодаря тебе!

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

Стиль написания и уважение

Вклад в сообщество программистов учит уважать чужой стиль написания кода. Твой запрос не одобрят, если ты напишешь все по-своему, без учета уже написанного. Уважение чужого труда поможет не только одобрить запрос на вливание, но и позволит более эффективно работать в команде на постоянной работе (или при участии в джемах), будет легче наладить общение с коллегами по цеху.

55ecb832b66aa6d4d7a832390c1d444e.png

Коммуникация

В процессе изменения понадобится общаться с владельцем проекта. Даже самые полезные изменения не будут приняты в отсутствие должного обращения. Вежливость, конструктивность помогут тебе. Конечно это тоже софт-скиллы, которые помогут наладить общение с коллегами.

17ff6803430b6d459d20639fac350230.png

Понравилась статья на тему как правильно делать запросы на принятие изменений, советую. Стоит почитать как авторам запросов, так и ревьюерам.

Итог

Запросы на принятие изменений — мощный способ совершенствоваться, помогать в этом другим. Умение писать грамотный и понятный код, знать тонкости игрового движка и языка программирования, налаживать общение в процессе работы — вот чему можно научиться в процессе. Главное — получайте удовольствие от проделанной работы!

© Habrahabr.ru