Является ли плохой практикой писать цельное приложение Flask в одном файле?

В настоящее время я пишу веб-приложение на Python, используя флеш-фреймворк. Я действительно привык просто помещать все в один файл, в отличие от многих других проектов, я вижу, где у них разные каталоги для классов, просмотров и т.д. Тем не менее, пример Flask просто вставляет все в один файл, с которым я, похоже, собираюсь.

Есть ли какие-либо риски или проблемы при написании всего веб-приложения в одном файле или лучше распространять мои функции и классы в отдельных файлах?

Ответ 1

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

Я не хочу изобретать колесо, поэтому здесь ссылки на проектные структуры проб, скелеты и другую информацию по теме:

И, или конечно, прочитайте удивительную флягу mega-tutorial - вы увидите, как ваше приложение будет расти и разбиваться на логические части шаг за шагом.

Ответ 2

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

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

  • У вас есть большая команда, возможно, с различным набором обязанностей и обязанностей. Например, у вас может быть дизайнер, который только заботится о дизайне/интерфейсе (HTML, CSS и т.д.). Если у вас есть весь код в одном файле, они подвергаются другим вещам, о которых им не нужно беспокоиться. Кроме того, они могут самостоятельно работать на своей части, не беспокоясь ни о чем другом. Вы минимизируете риск ошибок, имея здесь несколько исходных файлов.

  • Легче управлять, поскольку кодовая база становится больше. Можете ли вы представить, что просматриваете 100 000 строк кода в одном файле и пытаетесь отладить проблему?

Ответ 3

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

Пока вы сохраняете свой проект небольшим (несколько форм, несколько таблиц и в основном статическое содержимое), вы будете в порядке. Но если вы хотите иметь более крупное приложение, вы можете "выпустить программу" возможности структуры с точки зрения модульности и повторного использования кода. В этом случае вы можете перейти к полномасштабной структуре, где все разделено в собственном модуле.