TGViewer
Make. Build. Break. Reflect. Make. Build. Break. Reflect. @makebreakreflect · 1.37K subscribers
Post #121 1.1K
#devops

Дотфайлы в репозитории: что, сколько?

В 2025 репо без дотфайлов - как микросервис без контейнера: не взлетает.
Они решают всё: от фильтра мусора до CI/CD и AI IDE.
Сколько их сейчас нужно для стандартного проекта?
5-10 - стандарт для микросервисов.
Меньше - тухло, больше 15 - безусловно перегиб.
Пробежимся по категориям.

1. Игнорирование: убираем мусор
.gitignore - Очевидно, без вопросов. Чистит node_modules, логи, .env. Все знают, что тут.
.dockerignore - Почти все проекты - контейнеры. Фильтрует контекст Docker, чтобы не тащить лишнего. Писал тут https://t.me/makebreakreflect/84
.helmignore - Как .dockerignore, но для Helm-чартов. Нужен для репо с чартами или гетерогенных пайплайнов.
.npmignore - Чистит лишнее при публикации npm-пакетов. Только для пакетов.
2. Окружение: переменные
.env - Хранит DATABASE_URL, порты. В .gitignore, без вариантов.
.env.example/development/production - Шаблон(ы) .env для разных окружений.
3. Инструменты: линтеры, форматтеры, хуки
.eslintrc - Линтинг JS/TS. Без него в JS/TS никуда.
.yamllint - Линтинг YAML - K8s, CI/CD. Если YAML много, надо.
.tflint - Линтинг Terraform. Для Terraform-проектов.
.prettierrc - Форматирует код. Почти везде.
.nvmrc - Фиксирует версию Node.js. Для Node.
.huskyrc - Преккоммит-хуки. Автопроверки перед коммитом.
.lintstagedrc - Линтинг только изменённых файлов. Работает с Husky.
.pre-commit-config.yaml - Конфиг для pre-commit. Например запускает линтеры (tflint, ESLint, chehov) перед коммитом. Для автопроверок. Must have как по мне для всех.
5. CI/CD: автоматизация
.github/workflows/*.yml - Пайплайны GitHub Actions. Для GitHub CI/CD.
.gitlab-ci.yml - Пайплайны GitLab. Для GitLab.
6. Тесты и сборка
.jest.config.js - Конфиг Jest для тестов JS/TS.
.tsconfig.json - Конфиг TypeScript. Для TS.
.vite.config.js - Сборка фронта/бэка. Для сложных сборок.
7. IDE/AI IDE: редакторы
.editorconfig - Единые настройки редакторов. Для команд.
.cursorignore - Исключает файлы для AI в Cursor. Для Cursor. Например с локальным .env и паролями.
.cursorrules - правила Cursor IDE
.cursor/rules/*.mdc - Правила для AI Cursor - стиль кода, ограничения. Для Cursor.
.windsurfrules - Правила Windsurf, стиль, ограничения.
.idea/ - Конфиги IntelliJ. Для JetBrains

Так сколько же? Для бизнес аппликейшн среднее значение 6-8:
.gitignore, .dockerignore, .CICD.yaml, .editorconfig, .pre-commit-config.yaml, .IDE.yaml + для стека
Для helm chart 3+:
.gitignore, .helmignore, .pre-commit-config.yaml, .yamllint.yaml
Для terra*/инфры 5+:
.gitignore, .editorconfig, .pre-commit-config.yaml, .IDE.yaml, .tflint, yamllint.yaml

Бежать и пилить все недостающие файлы? Не, конечно не стоит.
Каждый сам должен для себя решить когда и что ему нужно в проектах и постепенно добавлять то, чего не хватает команде и бизнесу. Взросление не происходит мгновенно.
Если не знаете с чего начать, то спросите любую нейронку какие дотфайлы нужны вам для вашего проекта и какой пример содержимого.
В конце концов есть даже генераторы и готовые сборки, например:
https://github.com/PatrickJS/awesome-cursorrules
https://github.com/sanjeed5/awesome-cursor-rules-mdc/
https://github.com/github/gitignore
https://github.com/toptal/gitignore
(искать через "awesome .DOTFILENAME")

У нас уже почти стандарт 7 файлов по минималке везде, кроме хелм чарта.
В монолит монорепе аж 14 дотфайлов. Все в работе.

* Безусловно я мог пропустить часть дотфайлов, либо забыл, либо не работал с ними.
** .CICD.yaml = ямл для того CICD, который на проекте, от трависа до гитхаба/гитлаба.

Update: конечно я забыл про один из главных файлов .tool-versions - просто мастхэв.
Подробно писал про asdf тут https://t.me/makebreakreflect/69
  • 👍 10
  • ❤ 1
  • 😢 1
  • 🤡 1
More from @makebreakreflect
  1. Sep 25, 2026#пятница Ждём, чо. А вообще да, заебали эти охринительно полезные новости с невероятными д…
  2. Sep 25, 2026#kubernetes - https://laravel-news.com/laravel-health-kubernetes-prometheus Жаль, что тако…
  3. Sep 24, 2026Но стоит взять задачу из смежной области, где общее понимание есть, а глубокой экспертизы…
  4. Sep 23, 2026В удивительнейшее время живём. - https://typesafe.ai/blog/introducing-system-one-models-an…
  5. Sep 22, 2026#aws #elasticache #redis #kubernetes #troubleshooting #devops #sre #longread Ничего не пре…
  6. Sep 18, 2026Вся эта неделя была очень странной. Опус отупел до уровня 3 модели. Фейбл сжигает токены б…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →