Последнее время нейронные сети очень тесно вошли в нашу жизнь, и в жизнь веб-разработчиков в том числе. Т.к. мир IT-разработки постоянно развивается с огромной скоростью, то угнаться за ним нет возможности...
Я в своей деятельности передаю разработку фронтенда на обработку искусственному интеллекту, а уже после него занимаюсь отшлифовкой.
Кому интересно, для себя выбрал 2 варианта нейронны сетей, работающих отлично на территории РФ: бесплатная версия китайского DeepSeek и доступ к платным нейроннымм сетям через BotHub. Эти два варианта позволяют легко работать с большими объемами текста, поэтому были выбраны именно они.
При работе с искусственным интеллектом возникает необходимость передавать боту то, что уже есть в структуре проекта, для того, чтобы он помог найти ошибку, оптимизировать код или принять то или иное решение. И вот для этих целей был создан sh-скрипт, собирающий текущую структуру проекта (на основании данных, отправляемых в гит-репозиторий, чтобы не грузить лишнее).
Автоматизация документирования проектов: Git-скрипт для анализа структуры
Веб-мастера и разработчики часто сталкиваются с необходимостью быстро задокументировать структуру проекта. Сегодня я хочу поделиться мощным, но простым инструментом - bash-скриптом, который автоматически анализирует git-репозиторий и создает подробную текстовую документацию.
Для чего нужен этот скрипт?
Скрипт git_project_tree.sh
решает несколько важных задач:
- Быстрый обзор структуры проекта - визуализация каталогов и файлов
- Документирование кода - создание "карты" проекта для новых разработчиков
- Передача информации - компактное представление проекта для коллег
- Анализ зависимостей - просмотр ключевых конфигурационных файлов
Особенность скрипта - он учитывает только файлы, находящиеся под контролем версий (git), что гарантирует актуальность информации и исключает временные/служебные файлы.
Как использовать скрипт?
1. Установка
Создайте файл git_project_tree.sh
в корне вашего проекта:
#!/bin/bash
OUTPUT_FILE="git_project_structure.txt"
# Проверка git
if ! git rev-parse --is-inside-work-tree >/dev/null 2>&1; then
echo "Ошибка: это не git-репозиторий!" >&2
exit 1
fi
# Очистка файла
> "$OUTPUT_FILE"
# Заголовок
{
echo "Структура git-проекта (сгенерировано $(date))"
echo "=========================================="
echo ""
echo "Ветка: $(git branch --show-current)"
echo "Последний коммит: $(git log -1 --pretty=format:'%h - %s (%ad)' --date=short)"
echo ""
} >> "$OUTPUT_FILE"
# Дерево файлов
echo "Дерево файлов:" >> "$OUTPUT_FILE"
echo "-------------" >> "$OUTPUT_FILE"
git ls-files | sed -e 's|[^/]*/| |g' >> "$OUTPUT_FILE"
# Содержимое файлов
echo "" >> "$OUTPUT_FILE"
echo "Содержимое ключевых файлов:" >> "$OUTPUT_FILE"
echo "--------------------------" >> "$OUTPUT_FILE"
# Получаем все отслеживаемые файлы
git ls-files | while read -r file; do
# Проверяем расширение файла
case "$file" in
*.py|*.sh|Dockerfile|docker-compose.yml|*.html|*.yml|*.yaml|requirements.txt)
# Пропускаем бинарные файлы
if file "$file" | grep -q "text"; then
echo "" >> "$OUTPUT_FILE"
echo "=== Файл: $file ===" >> "$OUTPUT_FILE"
echo "" >> "$OUTPUT_FILE"
head -n 200 "$file" | sed 's/^/ /' >> "$OUTPUT_FILE"
[ $(wc -l < "$file") -gt 200 ] && echo " ... (файл сокращен)" >> "$OUTPUT_FILE"
fi
;;
esac
done
echo "" >> "$OUTPUT_FILE"
echo "Готово! Размер файла: $(du -h $OUTPUT_FILE | cut -f1)" >> "$OUTPUT_FILE"
echo "Структура сохранена в $OUTPUT_FILE"
2. Запуск
Дайте права на выполнение и запустите скрипт:
chmod +x git_project_tree.sh
./git_project_tree.sh
3. Результат
Скрипт создаст файл git_project_structure.txt
с:
- Информацией о ветке и последнем коммите
- Древовидной структурой файлов
- Содержимым ключевых файлов (первые 200 строк)
Особенности и настройка
Кроссплатформенность
Скрипт работает как на Linux, так и на MacOS. Для Windows рекомендуется использовать WSL или Git Bash.
Фильтрация файлов
По умолчанию скрипт обрабатывает:
*.py|*.sh|Dockerfile|docker-compose.yml|*.html|*.yml|*.yaml|requirements.txt
Чтобы добавить свои расширения, измените case
-блок в скрипте.
Важно: Скрипт автоматически пропускает бинарные и слишком большие файлы, чтобы избежать проблем с производительностью.
Пример использования
Представьте, что вам нужно:
- Передать проект новому разработчику
- Сохранить снимок состояния кода
- Проанализировать структуру legacy-проекта
Вместо ручного документирования просто запустите скрипт и отправьте полученный текстовый файл!
Заключение
Этот простой, но мощный инструмент значительно экономит время при работе с проектами. Он особенно полезен для:
- Веб-мастеров, работающих с множеством проектов
- Команд разработчиков
- Фрилансеров, передающих проекты заказчикам
Попробуйте скрипт в своем проекте и адаптируйте под свои нужды!
Разработка сайта
Подайте заявку на разработку сайта на базе готового решения от компании 1С-Битрикс или одного из партнеров компании. Максимально подробно опишите, чему будет посвящен сайт, если это интернет-магазин - что он будет продавать, нужна ли мультиязычность, будут ли разные типы цен (розница, опт, крупный опт), будет ли интеграция с 1С, будет ли выгрузка товаров на различные торговые площадки...
Сопровождение сайта
Вы можете подать заявку на сопровождение вашего сайта на базе 1С-Битрикс. Сопровождение включает в себя: проверка актуальности обновлений сайта, проверка актуальности резервной копии, консультации по сайту. Опишите в заявке, какие еще объемы планируются на сопровождении и на какой срок вы планируете заключить договор на сопровождение - мы подберем подходящий вам бюджет на сопровождение
Работы по сайту
Вы можете подать заявку на выполнение определенного объема работ по сайту. Опишите в заявке объем работ. Это может быть разработка какого-то нового функционала, доработки по имеющемуся функционалу, доработки под требования сео-специалистов. На основании заявки вам будет сформирован бюджет работ, а также названы сроки на выполнение тех или иных работ.