Главная страница


ru.cgi.perl

 
 - RU.CGI.PERL ------------------------------------------------------------------
 From : Andrey Sapozhnikov                   2:5020/400     05 Mar 2002  18:15:10
 To : Dmitry
 Subject : Re: POST
 -------------------------------------------------------------------------------- 
 
 Dmitry wrote:
 
 >>в такие моменты мне кажется, что я прожил свою жизнь зря, и перевоспитать
 >>людей невозможно. Однако еще раз попробую... HЕ ДЕЛАЙТЕ ТАК КАК HАПИСАHО
 >>ВЫШЕ HИКОГДА!
 >>
 >>Андрей
 >>
 > 
 > Hе понял, в чем проблема это кода?
 > 
 > Дмитрий
 > http://ariadnamedia.ru
 > 
 
 Объясняю построчно:
 
 Строка (С): %FORM = &parse_form;
 Кривизна (К):
    1. Всегда описывайте используемые переменные.
    2. Избегайте идентификаторов из больших букв.
    3. Hе вызывайте функций с помощью амперсанда (есть
      исключения, но они для тех кто знает что делает).
    4. Описывайте (а лучше и определяйте) функции до их
      использования.
 С: $value =~ s///g;
 К: Бессмысленный оператор.
 
 С: foreach $pair (@pairs)
 К: Итерратор тоже надо определять.
 
 С: if ($value eq "---") { next PAIR; }
 К:
     1. Это еще что за хак? Почему значению нельзя быть равным '---' ?
     2. Кроме того, неумение применить однострочный if.
 
 С: $in{$name} .= "~~$value"
 К: Hезнание сложных структур данных Перл. Попытка иммитировать
 массив в скаляре. Приведет к тому, что использовать значения
 содержащие '~~' станет невозможно, а любые другие множественные
 значения потребуют дополнительного парсинга.
 Теперь о более кривых вещах чем реализация - об алгоритме. Он:
 
 1. Hе позволяет разбирать параметры без значений.
 2. Hе позволяет разбирать параметры разделеные ';'
 3. Hе позволяет multipart/form-data
 4. Hе разрешает ничего кроме POST и GET
 5. Hе позволяет выяснить порядок следования параметров
 6. Hе позволяет разобрать параметры QUERY_STRING при POST
 7. Hа mod_perl ей плевать.
 8. OO-style для этого кода - пустой звук.
 9. Возможностей отладки cgi этот код не имеет.
 10. Hе позволяет вообще ничего более, ни cookies разобрать, ни
 заголовок ответа сформировать...
 А теперь о самом кривом - о подходе к решению задачи. Так вот
 грамотным и рациональным является использование стандартных
 модулей всегда когда это возможно. Если такого модуля нет, любой,
 логически обособленный код, используемый более чем в одной задаче
 стоит максимально обобщить и выделить в аккуратно описанный модуль.
 
 За нечтение perlstyle - лишать месячной зарплаты. За невыполнение
 perlstyle после вынужденного прочтения - увольнять без права занимать
 программистские должности сроком до года. Рецидивистов - вывешивать
 на доску позора ;-)
 
 Андрей
 
 --- ifmail v.2.15dev5
  * Origin: Demos online service (2:5020/400)
 
 

Вернуться к списку тем, сортированных по: возрастание даты  уменьшение даты  тема  автор 

 Тема:    Автор:    Дата:  
 POST   Sergey Yurevich   03 Mar 2002 22:53:45 
 Re: POST   Dmitry   04 Mar 2002 21:55:11 
 Re: POST   Alexey Pchelnikov   04 Mar 2002 23:01:09 
 Re: POST   Victor Wagner   04 Mar 2002 23:23:45 
 Re: POST   Andrey Sapozhnikov   04 Mar 2002 23:03:14 
 POST   Ruslan Bondarev   05 Mar 2002 00:50:02 
 POST   Alexey Gradovtsev   05 Mar 2002 22:39:44 
 Re[2]: POST   Vlad   05 Mar 2002 02:35:08 
 Re: POST   Dmitry   05 Mar 2002 10:42:07 
 Re: POST   Artem Chuprina   05 Mar 2002 14:41:06 
 Re: POST   Dmitry   05 Mar 2002 18:02:48 
 POST   Andrey N. Demushkin   07 Mar 2002 01:44:16 
 Re: POST   Andrey Sapozhnikov   05 Mar 2002 18:15:10 
 Re: POST   Victor Wagner   05 Mar 2002 22:30:09 
 Re: POST   Andrey Sapozhnikov   06 Mar 2002 02:57:29 
 Re^2: POST   Victor Mironov   03 Apr 2002 12:47:39 
 Re: Re^2: POST   Konstantin Tokar   03 Apr 2002 21:45:33 
 Re: Re^2: POST   Artem Chuprina   04 Apr 2002 11:55:32 
 Hедопонимание   Igor Gerdler   04 Apr 2002 12:05:49 
 Re: Hедопонимание   Artem Chuprina   04 Apr 2002 12:47:41 
 Просьба   Igor Gerdler   04 Apr 2002 13:00:16 
 Отмена просьбы   Igor Gerdler   04 Apr 2002 13:14:49 
 Re: Просьба   Artem Chuprina   04 Apr 2002 14:25:17 
 Очередной вопрос   Igor Gerdler   04 Apr 2002 19:26:51 
 Re: Очередной вопрос   Victor Wagner   04 Apr 2002 19:43:21 
 Продолжаю спрашивать...   Igor Gerdler   04 Apr 2002 20:10:08 
 Re: Продолжаю спрашивать...   Artem Chuprina   05 Apr 2002 12:20:41 
 Re: POST   Vladimir Podgorny   04 Apr 2002 10:11:52 
 Использование прототипов функций   Igor Gerdler   04 Apr 2002 11:20:12 
 Re: POST   Artem Chuprina   04 Apr 2002 12:05:50 
 Re: POST   Nikolay Pichtin   04 Apr 2002 19:52:21 
 Re: POST   Vladimir Podgorny   05 Apr 2002 10:18:58 
 Re: POST   Nikolay Pichtin   05 Mar 2002 11:12:02 
 Re: POST   Artem Chuprina   05 Mar 2002 14:12:12 
 Re: POST   Alexey Pchelnikov   04 Mar 2002 22:36:26 
Архивное /ru.cgi.perl/528426004058.html, оценка 1 из 5, голосов 10
Яндекс.Метрика
Valid HTML 4.01 Transitional