1. Python / Говнокод #10209

    −428

    1. 1
    2. 2
    3. 3
    4. 4
    url = request.get_full_path()
    if 'show_error' in url:
        show_param = url.split('?show_error=')
        error = show_param[1]

    Кусок кода из Django проекта
    Взяли индуса на работу. Вот так он достает GET параметры

    Запостил: larikov, 07 Мая 2012

    Комментарии (7) RSS

    • А что вообще делает этот show_error? Строка с сообщением об ошибке, передаваемая через GET-запрос? Код, конечно, абсолютно неправильный (?show_error=blahblah&a=b, или даже ?a=b&show_error=blahblah, и привет), но мне кажется, тут проблемы и с архитектурой.
      Ответить
      • Да вот это загадка, когда делали code review сразу же завернули этот pull request. Этот show_error был введен им же.

        Вообще, конечно, удивительно - как можно так делать? :) Данный товарищ на питоне не разрабатывал до этого, пришел из мира Java. Но вот мне интересно, неужели в Java нет легкого способа получить GET параметры? Или это все же врожденная индусская способность делать простые вещи через максимально непонятные и нелогичные конструкции.
        Ответить
        • > в Java нет легкого способа получить GET параметры
          > Или это все же врожденная индусская способность
          скорее второе
          http://docs.oracle.com/javaee/6/api/javax/servlet/ServletRequest.html
          request.getParameter("show_error")
          Ответить
          • > скорее второе
            И это печально. Печально осознавать, какие сюрпризы еще на подходе. Причем сам то он вроде толковый, рассуждает логично и грамотно. Но, теория теорией, а на практике получается вот такое говнокодерство :)
            Ответить
        • >нет легкого способа получить GET параметры
          Через HttpRequest это довольно просто. Современный Jax-rs еще более упростил сей процесс.
          >пришел из мира Java
          Просто не осилил.
          Ответить
          • Говорит - не знал, что можно сделать
            request.GET.get('show_error')
            :)
            Ответить
    • Отмечусь туто.
      Ответить

    Добавить комментарий