TGViewer
Точка входа в программирование Точка входа в программирование @prog_point · 18K subscribers
Post #5042 937
«У меня работает, а на сервере падает» — про это написан свод из двенадцати правил

Первый рабочий проект почти всегда проходит через один и тот же сюжет: на ноутбуке всё запускается, на сервере ломается. Пароль от базы вписан прямо в код, у коллеги другая версия библиотеки, логи пишутся в файл, который никто не читает, а перезапуск сервиса теряет загруженные пользователем картинки.

Адам Уиггинс, сооснователь Heroku, где на глазах команды разворачивались сотни тысяч приложений, собрал причины таких поломок в The Twelve-Factor App — двенадцать правил для веб-приложений на любом языке. Документ в последний раз обновляли в 2017 году, и с тех пор он не устарел; есть перевод на русский.

Самые полезные для начинающего:

— Один репозиторий на приложение, много развёртываний из него. Прод и ваша локальная копия — это один и тот же код в разных окружениях.

— Зависимости объявляются явно. requirements.txt, package.json, go.mod — чтобы «у коллеги другая версия» перестало быть диагнозом.

— Конфигурация живёт в переменных окружения. Всё, что отличается между вашей машиной и сервером — адрес базы, ключи, пароли, — не должно лежать в коде. Проверка простая: можно ли выложить репозиторий в открытый доступ прямо сейчас.

— База, очередь, файловое хранилище — подключаемые ресурсы. Смена адреса базы должна сводиться к правке переменной окружения.

— Приложение не хранит состояние в себе. Всё, что должно пережить перезапуск, кладётся во внешнее хранилище.

— Логи пишутся в стандартный вывод потоком. Собирать и хранить их — задача окружения.

Документ читается за вечер и объясняет, почему привычные к этому моменту практики устроены именно так.

#основы
  • ❤ 4
  • ❤‍🔥 1
More from @prog_point
  1. Sep 20, 2026Как читать ввод с геймпада в JavaScript и не принять поломку за норму В Gamepad API нет со…
  2. Sep 20, 2026Как выбрать пагинацию для API Пагинация делит ответ API на части. Offset пропускает N стро…
  3. Sep 20, 2026Какие исключения ловить в Python и какие оставить видимыми Один except для ValueError, Typ…
  4. Sep 19, 2026Превращаем статичную HTML-страницу в редактор на JavaScript Резюме или меню можно отдать а…
  5. Sep 19, 2026Инструкция по применению: открыть анкету, ответить на вопросы из школьной тетрадки, по дор…
  6. Sep 19, 2026freeCodeCamp.org выпустил бесплатный курс по Python с тремя проектами Это четырёхчасовой в…
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 →