1. C# / Говнокод #4891

    +122

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    public ActionResult View(string id)
    {
    	// some stupid code
    	return View("Picture");
    }

    Потратил больше часа, пытаясь разобраться, почему глючат роуты.

    Запостил: andrewpey, 10 Декабря 2010

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

    • Вот если бы вы еще объяснили что тут к чему...
      для тех кто не знаком с ASP.NET MVC :)
      Ответить
      • мелкософт зафейлило этот акроним, т.к. до него существовала пропагантистская программа Most Valued Professionals, поголовно состоящая из индусов, по сравнению с которыми Капитан Очевидность похож на Лао Цзы
        Ответить
        • Боюсь прослыть КО, но вроде MVP != MVC?
          Ответить
          • MVP ~ MVC
            Ответить
          • !=
            Ответить
          • КО спешит на помошчь:
            в MVC вью пулит данные из модели (или получает их по событиям) а контроллер получает запросы от юзверя и правит модель. Тоесть вью знает о модели.

            В MVP вью пассивно, как неудачливый зэк. Им полностью управляет презентер: он получает запросы от пользователя, правит модель, считывает с нее данные и управляет вью.

            Презентер разжевывает вью все до такой степени: "покажи вот этот блок. а этот -- спрячь."

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

            так-то
            Ваш КО
            Ответить
            • Капитан, ты что-то сдавать стал. Не в тему ни разу.
              Ответить
            • а я думал, что все же в MVC первичен контроллер (получает события, правит модель, дает команду показать вью), а в MVP ход действий определяется вью.
              Ответить
      • Мне кажется, в данном клиническом случае совершенно не важно, какая технология используется )
        Ответить
      • Ну я и т... медленно соображаю ))))
        Нужно было ReSharper ставить.
        Он бы показал в чем проблема сразу.
        Ответить
    • Не вижу говнокода. Может в зависимости от чего-нибудь возвращаются разные View. А Picture - типа дефолтовая
      Ответить
      • Подумайте еще раз :) На всякий случай, вот подсказка http://ru.wikipedia.org/wiki/%D0%A0%D0%B5%D0%BA%D1%83%D1%80%D1%81%D0% B8%D1%8F
        Ответить
        • Подумайте еще раз :) На всякий случай, вот подсказка — http://ru.wikipedia.org/wiki/Рекурсия
          Ответить
        • Лучше сюда: http://absurdopedia.net/wiki/Рекурсия
          Или в Гугл. Там будет написано: «возможно вы имели в виду: Рекурсия»
          Ответить
        • В "some stupid code" ретурнов нет ?
          Ответить
          • Нет ) Приведенный здесь сниппет, на самом деле, является значительно упращенной версией реального кода, но говнокод в любом случае сводится к public ActionResult View() { return View() };
            Ответить
            • упращенной? казалось бы, причем здесь праща? там есть throw?
              Ответить
              • Очень смешно, уважаемый багменот ) Вы уже продемонстировали свою способность говорить по теме. И нет, там нет throw. Не стоит искать там какого-то сокровенного смысла, это обычная рекурсия, однако, не сразу отловленная из-за некоторой специфичности asp.net mvc.
                Ответить
                • искать?
                  /* здесь мог бы быть смысл , но я его грохнул и всем говорю, что это был просто тупой код */
                  Ответить
                  • Если я его грохнул, значит он не имеет никакого значения в контексте ГК.
                    Ответить
                    • тогда чем ты занимался больше часа? =)
                      Ответить
                      • Я грешил на роуты, по неопытности работы с ними :) И совершенно упустил из виду нелепую рекурсию из-за совпадения наименований user-defined и pre-defined методов.
                        Ответить
            • Так если ретурнов других нет - будет переполнение стека и все дела.
              Ответить
              • угу, OP чего-то не договаривает
                Ответить
                • Может быть метод так долго выполняется, что переполнения стека не дожидаются? ;)
                  Ответить
                  • Ага, автор чего-то не договаривает. В some stupid code просто обязан быть бесконечный цикл.
                    Ответить
              • Ура, тайна раскрыта.
                Ответить
    • Рекурсия еп*ыйть)))
      Ответить
      • Ну, блядь, охуеть, ты звездочки ставишь, пиздос.
        Ответить
        • Уберите детей от экрана !
          Ответить
          • Думаешь, дети, которые уже читают говнокод, так не разговаривают?))
            Ответить
            • Дети читающие говнокод... Оляля... Разве, что Компренда...
              Ответить

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