Подтвердить что ты не робот

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

Лучше ли все это делать сразу? Я очень новичок в wxPython, и я думаю, что было бы лучше написать программу знакомым мне способом, а затем применить wiPython gui к нему после того, как я удовлетворен общим дизайном приложения. Любые советы?

4b9b3361

Ответ 1

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

  • Модульный код без GUI затем может быть связан с различными графическими интерфейсами, а не только с одной библиотекой
  • Он также может использоваться для приложения командной строки (или пакетного интерфейса для одного GUI)
  • Он может быть повторно использован для веб-приложения
  • И самое главное: он может упростить модульное тестирование кода.

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

Ответ 2

Это зависит от проблемной области. Инструмент обработки изображений будет довольно сложно реализовать без ссылки на графический интерфейс. Однако для большинства приложений я бы решительно высказался в пользу разделения этих двух частей. Гораздо проще разрабатывать, тестировать и развивать интерфейс без интерфейса. Прибыль значительно перевешивает стоимость определения чистого API между передним и задним концом. Фактически, процесс определения API даст лучший дизайн в целом.

Ответ 3

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

Сказав это, такой подход имеет тенденцию умалять ценность создания действительно полезного опыта пользовательского интерфейса. Очень сложно и редко для внутренней модели программы соответствовать модели пользователя, когда вы сначала разрабатываете свою функциональность программы, а затем - интерфейс пользователя. В результате вам необходимо провести полное согласование двух сторон после их создания независимо. Это приводит либо к созданию компромисса в удобстве использования (ваш ui становится не чем иным, как интерфейсом командной строки, который переключает вашу программу), либо большим слоем клея между пользовательским интерфейсом и основной программой, которая имеет тенденцию быть беспорядочной и ошибочной.

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

Итак:

было бы лучше написать программу знакомым мне способом, а затем применить к ней wxPython gui после того, как я доволен общим дизайном приложения

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

Ответ 4

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

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

Ответ 5

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

Возможно, лучший подход заключается в том, чтобы сначала разработать интерфейс, поскольку это самая важная часть. После этого вы можете создать back-end, который может поддерживать этот пользовательский интерфейс. Этот подход по-прежнему приводит к отдельным фронтам и обратным контурам, но делает акцент на потребностях пользователя, где он должен быть.

Ответ 6

Какой уровень интерактивности вам нужен? Если вам нужна богатая обратная связь и взаимодействие, вам нужна модель программы OO, тогда вы можете объявить графический интерфейс поверх объектов.

Если у вас есть только фильтры и функции (никакой реальной обратной связи или просто окна результатов), чем библиотека или модель компонента будет лучше.

В любом случае вам лучше кодировать свою логику отдельно от графического интерфейса, чтобы вы могли легче протестировать ее.

Ответ 7

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

Если вы просто говорите о различии между wxPython и другим графическим интерфейсом, не беспокойтесь об этом.