Чему могут научить пул реквесты в чужие проекты
Привет. Гоу на примере игр (Unity и C#) и ассетов к ним разберем на примерах почему тебе может быть полезно вносить вклад в сообщество программистов.
Речь пойдет про запросы на внесение изменений через форк проекта.
Гит система
Запросы на принятие изменений позволят поближе познакомиться с системой Гит, освоить незнакомый функционал. Запросы на принятие изменений не ограничиваются лишь целью внести вклад в общество: в крупных компаниях запросы — обязательная часть работы, одобрение работы программиста как сотрудника, работающего над проектом совместно с другими.
Подчерпнуть новое
Очевидно, вклад в чужой репозиторий требует прочтения чужого кода, что само по себе учит новому. Подход к написанию, объявление полей и свойств, применение атрибутов, событий, делегатов, пространств имен, assembly definition; шаблоны проектирования на на конкретном примере, вложенные методы, способы инициализации, приемчики старой школы программистов по типу использования адреса ячейки памяти в качестве индексации коллекции…
Могу порекомендовать посмотреть ролик с фишками C# на эту тему.
Рефакторинг
Рас ты хочешь внести изменения в чужой код, значит это… Рефакторинг! Отличный способ попрактиковаться в этом направлении. Приятное с полезным.
Видишь повторяющиеся строки кода? Вынеси в отдельный метод.
Видишь смешение логики? Извлеки одну логику в отдельный класс.
Схожее поведение у разнотиных классов? Вынеси интерфейс.
Неразлучно передается много данных? Можно собрать в структуру.
Метод пренадлежит чужому классу, нелогичное расположение? Перенеси в более очевидное место.
Прежде чем менять чужой код, стоит почитать методы рефакторинга и запахи кода. Бесполезные или неграмотные запросы никому не нужны.
Большой класс
Совершенствование проекта
Конечно же при внесении изменений проект становится лучше.
получает новый функционал
становится оптимизированным
исправляются баги
исправляются ошибки нетехнического характера
В том числе благодаря тебе!
Я не стал писать этот пункт первым в списке, т.к. хотел прежде всего подчеркнуть полезность запросов для самого автора этих реквестов.
Стиль написания и уважение
Вклад в сообщество программистов учит уважать чужой стиль написания кода. Твой запрос не одобрят, если ты напишешь все по-своему, без учета уже написанного. Уважение чужого труда поможет не только одобрить запрос на вливание, но и позволит более эффективно работать в команде на постоянной работе (или при участии в джемах), будет легче наладить общение с коллегами по цеху.
Коммуникация
В процессе изменения понадобится общаться с владельцем проекта. Даже самые полезные изменения не будут приняты в отсутствие должного обращения. Вежливость, конструктивность помогут тебе. Конечно это тоже софт-скиллы, которые помогут наладить общение с коллегами.
Понравилась статья на тему как правильно делать запросы на принятие изменений, советую. Стоит почитать как авторам запросов, так и ревьюерам.
Итог
Запросы на принятие изменений — мощный способ совершенствоваться, помогать в этом другим. Умение писать грамотный и понятный код, знать тонкости игрового движка и языка программирования, налаживать общение в процессе работы — вот чему можно научиться в процессе. Главное — получайте удовольствие от проделанной работы!