New & Blue Чтиво Как код проекта изучить

Как код проекта изучить


Что делать если разработчики передали код, хочется его понять и осознать. С чего мы начинаем работу по поддержке.
1 год назад
Заметка



Что мы у себя делаем, если приходит чужой проект:

  • Собираем все вводные данные: git, тз, ссылки, доступы
  • Готовим шаблон и документ для анализа
  • Читаем и пишем (никакой магии)

Вводные данные

Хорошо, если для проекта есть git-репозиторий и видна в нём история разработки. Это может быть доступ в gitlab / github / bitbucket. Но может быть архив, в котором есть папка .git.

Хуже, если истории. Один архив с файлами проекта - тревожный показатель. Может оказаться что в нём нет исходных кодов, а только собранный проект. Тогда не всё можно поправить в будущем.

Помимо кода, могут быть ещё важные вещи:

  • техническое задание;
  • бриф;
  • договор;
  • документация;
  • ссылка на дизайн или набор макетов.

Не всегда проект можно восстановить, если есть исходный код. Зачастую для него нужна и база данных и набор файлов-картинок (их в гите может не быть). Bitrix сайт, без копии базы данных - точно не запустить. Получить их самостоятельно можно, если проект где-то работает и есть доступ к серверу.

Документы на анализ

Двух видов документы готовим:

  • таблицы разные: анализ по файлам, назначение папок, перечень зависимостей;
  • текстовый документ для записей по проекту

Таблицы

Удобны для чтения кода и понимания “сколько ещё анализировать осталось”.

__2024-01-11_08-12-15.png

Собираем список файлов, скажем так:

find . -type f > files.txt

И список каталогов:

find . -type d > dirs.txt

Хорошо ещё сделать таблицу по зависимостям в проекте (package.json / composer.json). Каждую зависимость стоит проверить на лицензию: лицензия MIT - хорошо, AGPL / GPL - не всем подойдут в коммерческих проектах.

Перечень зависимостей поможет понять на чём проект написан, какие разработчики потребуются. Для разработки интерфейса - большая разница между react-/angular-/vue-разработчиками.

Документ с заметками

Не всё в таблицу удобно собирать. Скриншоты, большие комментарии - проще оформить как текстовый документ.

У нас обычно разделы в нём следующие:

  • предоставленные материалы - ссылки где найти всё по проекту, тестовые среды, макеты - ориентир по материалам;
  • связанные документы - ссылки на все таблицы, которые составили при анализе. И пояснение к каждой таблице - зачем она и что в ней;
  • объём кодовой базы - сколько файлов в проекте, сколько коммитов, сколько разработчиков участвовало. Здесь же можно сравнить с каким-либо opensource проектом похожим;
  • технологии на чём проект написан, от чего зависит;
  • ошибки и баги собранные при тестировании;
  • общее впечатление от кодовой базы.

И рутина…

Открываем каждый файл, просматриваем, отмечаем если что-то интересное.

Запускаем cloc (программа бесплатная, что посчитает строки кода) для разных папок:

__2024-01-11_08-12-52.png

Делаем заметки, пишем выводы.

Что для проектов интересно понять:

  • какие точки входа в проекте. routes/*.php для laravel, app.js, app.scss для вёрстки
  • На чём проект написан
  • Какие системные зависимости нужны: mysql/postgresql/ redis/ rabbit
  • Есть ли фоновые задачи
  • Какие версии языков программирования нужны
  • Сколько кода для model-view-controller
  • На чём написан интерфейс (vue / react / angular / jquery или просто html), sass/pug/less
  • Описан ли процесс сборки: .gitlab-ci.yml, bitbucket-pipelines.yml
  • Насколько проработана инфраструктура: docker, kubernetes
  • Как велась разработка - формальные сообщения у коммитов - хороший показатель. Ветки, номера задач в проекте - тоже.
  • Как запустить для режима разработки (npm start?)
  • Как подготовить релиз для боя (npm run build?)

Перечитываем, обсуждаем, дополняем.









Рассказываем о себе
и делимся знаниями:

Остались вопросы?

Оставьте номер телефона
и мы свяжемся с вами в ближайшее время

Ваше имя:
Телефон:
Email:
Заказать звонок
Заявку получили.

Изучим и напишем в ближайшее время.