Полезные мелочи для новичков - profcomff/.github GitHub Wiki
В этой подглаве описано, как мы именуем сущности при работе с приложением "Твой ФФ!".
- Само приложение имеет название aggregator-app. Тут находятся всякие низкоуровневые штуки.
- Все микрофконтэнды (маленькие подприложения) к нему имеют название
*-webapp
(например timetable-webapp) - Все бэкэнды имеют название
*-api
(например timetable-api) - Боты ВК и телеги имеют суффикс
*-vkbot
,*-tgbot
(например print-vkbot) - Библиотеки для бэкэнда и фронтенда имеют названия
*-lib
и*-weblib
соответственно (например auth-lib)
Git - это консольная утилита для отслеживания и ведения истории изменения файлов, в вашем проекте. Github – это онлайн хранилище для совместной работы над этим кодом и кучей клевых фич. Далее представлена краткая инструкция как работать с гитом.
Установить git можно отсюда: https://git-scm.com/downloads
Большинство людей пользуются графическими интерфейсами от Github или Bitbukket, многие пользуются расширениями в средах разработки. Это все, конечно, хорошо, но консолька плюс-минус всегда пригождается для решения каких-нибудь мелких проблем. А еще она у всех одинаковая :)
- Создайте папку, в которой будете хранить код проектов. Я использую папку на рабочем столе с названием
profcomff
- Откройте командную строку (в Windows) или терминал (в Mac/Linux). Перейдите в нужную папку командой
cd
- Переход в папку
profcomff
на рабочем столе будет выглядеть так:cd Desktop/profcomff
- Чтобы забрать себе код на компьютер, пользуются командой
git clone <url>
- url можно взять на страничке проекта под кнопкой Code
- Переход в папку
- Примем за аксиому, что мы никогда не пушим (
git push
) и, особенно, не форс пушим (git push --force
) в веткиmain
. Это позволяет нам комфортно работать как самим, так и остальным пользователям кода. По идее, на всех репозиториях стоит блок, но все равно опишем это как правило.- Изменения в приложение лучше всего проводить с последних версий кода, чтобы получить последнюю версию выполняем
git pull
- Чтобы делать изменения мы переходим в новую ветку, для этого делаем
git checkout -b <название-новой-ветки>
- Чтобы вернуться к коду, который сейчас работает у пользователей, используется команда
git checkout main
. После нее всегда следует командаgit pull
.
- Изменения в приложение лучше всего проводить с последних версий кода, чтобы получить последнюю версию выполняем
- После внесения изменений в код, нужно эти изменения сохранить и отправить на github
- Добавление всех сделанных изменений в ветке
git add .
. Можно добавлять файлы по одному черезgit add <путь-к-файлу>
. - Создание новой версии кода
git commit -m "Описание изменений"
. Лучше всего эту команду выполнять тогда, когда добились каких-то результатов и ваш код работает с вашими изменениями. В описании изменений кратко и емко изложите суть этих изменений. Например, "добавил кнопку старт" или "новая апи-ручка /route". - После одного или нескольких коммитов нужно закинуть код на github командой
git push
. Если делаете пуш из новой ветке, то гит выдаст ошибку, в тексте которой написана правильная команда. - Когда закончили пилить фичу, опубликуйте ветку в виде Pull request в интерфейсе github. Просто откройте нужный репозиторий и у вас появится кнопка. Там изменения откомментируют опытные ребята, после чего, скорее всего, придется еще внести изменений в код.
- Когда pull request приняли и пора начинать новую фичу, всегда выполняем команды
git checkout main
иgit pull
- Добавление всех сделанных изменений в ветке
- Выполни
git checkout -b <название-новой-ветки>
-
git push
. Гит выдаст ошибку, в тексте которой написана команда с правильными аргументами.
- Возможно, поможет кнопка Rebase в интерфейсе гитхаба
- В консоли можно выполнить
-
git rebase origin/main
, чтоб забрать последние изменения в ветке main на гитабе - Появится список файлов, которые нужно посмотреть и отредактировать, чтобы продолжить работу.
- После исправления ошибок выполнить команду
git rebase --continue
- Сделать коммит в ветку с заменой
git push -f
. Так делать можно только в те ветки, где работаете только вы :)
-
- Удали папку проекта. Удалит все изменения!
- Склонируй репозиторий заново командой
git clone <url>
Для того, чтобы знать кто чем занимается в приложении Твой ФФ! мы ведем доску с задачами. На этой доске есть все таски из всех репозиториев, относящихся к приложению. В целом, у нас тут упрощённый канбан!
На доске есть 5 колонок:
- Backlog – задачи "на будущее". Мы не уверены, что хотим это делать и будем когда-либо, но идейно записали. Все задачи создаются с этим статусом и потом переносятся в другие столбцы.
- Todo – запланировали делать. Обычно в этом столбце хранятся задачи на ближайшие несколько недель, у которых уже есть исполнитель, но к которым еще не приступили. Если исполнитель не назначен – можно забрать задачку себе :)
- In progress – задачи в работе. Точно имеют исполнителя, по задаче идет движение.
- Done – выполненные задачи. Сюда можно перетаскивать задачки после мержа пулл реквестов и выкатки на прод. А еще эти задачки стоит закрывать.
- LTS – отдельный столбец для длительных проектов (эпиков, читай ниже). Это проекты, за которые есть ответственный менеджер и он занимается развитием этого сервиса в целом: ставит задачи по фронту, бэку, контенту и т.д.
У нас есть 5 основных тегов для задач, из них 3 по которым мы определяем их тип задачи:
- Bug – в коде сервиса есть ошибка.
- New feature / Enhancement – необходима разработка нового функционала или доработка старого.
- Epic – крупная высокоуровневая задача, в которую входят и разработка фронта, и бэкэнда, и сбор контента и т.д. Например, бесплатный принтер профкома – это установка принтера, разработка интерфейса отправки заданий на печать, интерфейс управления пользователями принтера, интерфейс терминала печати, бот отправки на печать и бэкэнд.
И еще 2 для удобства сортировки
- Good first issue – задача подходит для новичков.
- Wontfix – описанные изменения невозможно воспроизвести/исправить.