Каковы плюсы и минусы использования двух разных стилей программирования CGI.pm с Perl? - PullRequest
7 голосов
/ 16 января 2010

Я учусь в классе веб-сценариев в школе и работаю над своим первым заданием. Я склонен переусердствовать и углубляться в мой предмет, чем то, что требуется на моих уроках. Прямо сейчас я исследую CGI.pm, чтобы выполнить мои HTTP-запросы, и он говорит, что есть два стиля программирования для CGI.pm:

.
  • Объектно-ориентированный стиль
  • Функционально-ориентированный стиль

Если я не пропустил четкий ответ или не обладаю достаточными знаниями для того, чтобы разглядеть для себя ответ из документации, представленной по адресу: http://perldoc.perl.org/CGI.html Я просто не знаю, каковы плюсы и минусы использования этих двух разных стилей .

С учетом сказанного, каковы плюсы и минусы использования двух разных стилей? Какой из них чаще используется? Что касается использования объектно-ориентированного стиля, в нем говорится, что я могу использовать только один объект CGI одновременно. Почему это?

Спасибо за вашу помощь. Вы все сделали изучение информатики очень приятным, удовлетворяющим и полезным для меня. = D

Ответы [ 2 ]

17 голосов
/ 16 января 2010

За кулисами CGI.pm делает то же самое, несмотря на стили. Функциональный интерфейс фактически использует секретный объект, который вы не видите.

Для многих небольших CGI-проектов вам, вероятно, никогда не понадобится более одного объекта CGI за раз, поэтому функциональный интерфейс в порядке. Это может быть более распространенный стиль, но только потому, что большинство людей делают небольшие сценарии для очень специфических задач. Если у вас есть много чего другого, вам может не понравиться CGI.pm, импортирующий длинный (и длинный) список имен функций в ваш скрипт. Некоторые имена функций могут конфликтовать с теми другими модулями, которые нужно импортировать.

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

Некоторые люди могут жаловаться на дополнительный набор текста, но это никогда не было медленной частью программирования для меня. Я давно занимаюсь Perl, и я не против синтаксиса. Тем не менее, я использую только CGI, чтобы получить ввод и, возможно, отправить вывод. Я не связываюсь ни с одним из элементов HTML.

Когда он говорит об одном объекте CGI.pm за раз, он ссылается на доступ к входу. Например, после прочтения STDIN другой объект CGI.pm не сможет это прочитать. Вы можете иметь столько объектов, сколько захотите. Они просто не будут обмениваться данными, и первый получит все данные POST.

Хотя вы можете использовать смесь. Вы можете импортировать некоторые вещи, например :html, но по-прежнему использовать интерфейс OO для обработки ввода.

4 голосов
/ 17 января 2010

Я настоятельно рекомендую использовать интерфейс объекта.

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

Однако, если вы серьезно относитесь к тому, чтобы научиться использовать CGI.pm для более масштабных проектов, вам необходимо изучить метод объекта. Если вы достигнете точки необходимости двух объектов, вам придется использовать интерфейс объекта. Программирование, как и все остальное, становится лучше с практикой. Практика сейчас на относительно более простых задачах поможет вам быть готовым к более сложным.

На самом деле, я бы рекомендовал в качестве общего правила в программировании (хотя бывают и исключения), что при столкновении с двумя методами использования определенного инструмента возникает привычка использовать тот, который наиболее вероятно будет использоваться в рабочем коде, и или тот, который является правильным ответом для большей части проблемного пространства.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...