1. Objective C / Говнокод #13360

    −106

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    @implementation ESpeaker
    
    EParticipantQueryGettersGroupForTypeWithSuffix(Speaker,SESSION_COUNT_OFF,LIKES_ON FAV_ON,kEDBAccessorTypePoolEventAndPrivate,ZERO_SESSION_COUNT_ON,);
    EParticipantQueryGettersGroupForTypeWithSuffix(Speaker,SESSION_COUNT_ON_WITH_TYPE,LIKES_ON FAV_ON,kEDBAccessorTypePoolEventAndPrivate,ZERO_SESSION_COUNT_OFF,WithSessionCount);
    
    @end

    От авторов Objective-C говнокода месяца!
    Первый в истории программирования класс, полностью реализованный на дефайнах!

    Продолжение в комментариях!

    Запостил: Headless, 11 Июля 2013

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

    • А теперь - как выглядят сами дефайны. We need to go deeper!
      http://d.pr/i/aH8i

      Иии - вместе с классом!
      http://d.pr/i/2yI3
      Ответить
      • показать все, что скрыто~Обслуживаю парней из Кавказа!~

        Сделаю минет, орал, анал, дрочка, группах.

        * g o a t s e x * g o a t s e x * g o a t s e x *
        g                                               g  
        o /     \             \            /    \       o
        a|       |             \          |      |      a
        t|       `.             |         |       :     t
        s`        |             |        \|       |     s
        e \       | /       /  \\\   --__ \\       :    e
        x  \      \/   _--~~          ~--__| \     |    x  
        *   \      \_-~                    ~-_\    |    *
        g    \_     \        _.--------.______\|   |    g
        o      \     \______// _ ___ _ (_(__>  \   |    o
        a       \   .  C ___)  _________ (_(____>  |  /    a
        t       /\ |   C ____)/         \ (_____>  |_/     t
        s      / /\|   C_____)          |  (___>   /  \    s
        e     |   (   _C_____)\_________/  // _/ /     \   e
        x     |    \  |__   \\____________// (__/       |  x
        *    | \    \____)   `----   --'             |  *
        g    |  \_          ___\       /_          _/ | g
        o   |              /    |     |  \            | o
        a   |             |    /       \  \           | a
        t   |          / /    |         |  \           |t
        s   |         / /      \__/\___/    |          |s
        e  |           /        |    |       |         |e
        x  |          |         |    |       |         |x
        * g o a t s e x * g o a t s e x * g o a t s e x *


        [email protected]
        Ответить
    • Это ошибка копипаста или этот класс без родителя?
      Ответить
      • Не стал постить h-ку, там ничего интересного, выглядит вот так:

        @interface ESpeaker : EParticipant
        @end
        Ответить
    • Новое слово в ООП! Надо сообщить Страуструпу!
      Ответить
      • > Objective C
        > Страуструпу
        Наркоман штоле?

        > ООП
        > Страуструпу
        Поделил на ноль. Строустрап не умеет в ООП чуть более чем полностью. Если на то пошло, то Objective C с идеалогией передачи сообщений и то ближе к ООП.
        Ответить
        • > Строустрап не умеет в ООП чуть более чем полностью
          лолшто? иногда лучше жевать...

          П.С. разговаривай проще...
          Ответить
          • «Я придумал термин «объектно-ориентированный», и я уверяю вас, что не имел в виду C++». Alan Curtis Kay(c)
            Ответить
        • >>> Если на то пошло, то Objective C с идеалогией передачи сообщений и то ближе к ООП.
          Ну молодец - возьми с полки пирожок, теперь чтоб гетнуть состояние булевого флага в обькте надо отправлять сообщение обьекту, обьект проверит есть ли у него такой селектор и возвратит тебе всего лиш один байт, то что в С++ делается инлайновой функцией, то в Обжектив целая церемония - да круто, ложи на перформанс - у нас есть правильное ООП Аминь.
          Ответить
          • > надо отправлять сообщение обьекту
            > ложи на перформанс - у нас есть правильное ООП Аминь
            Парадокс, но общение объектов через передачу сообщений это есть настоящее ООП в его исконном смысле ;) По определению, так сказать. А то что вы используете в крестах/жабе/решетках это ересь, которую по случайности приписали к ООП.
            Ответить
            • Да ладно, ну что давайте все проекты на земле перепишем на смоллтолке с обжективСи - то-то весело будет. В программировании теория и практика часто ругаются по самое никуда - ну нет правильного ООП, давайте все умрем, Николаус Вирт, Бьярн Дохлостраус и Уолтер Брайт практики, и именно на созданных ими продуктах держится продакшен.
              Ответить
              • Ой лажанул - Вирт таки ученый.
                Ответить
              • Нужно переписать все на Руби. Там правильное ООП.
                Ответить
                • Пойду чтоли драйвер писать для своей звуковой.
                  Ответить
              • Вообще, ОО - это реализация objV calculus'а... Но в языках, в которых она присутствует, как правило, есть много других соображений не имеющих прямого отношения к ОО. Например, с точки зрения этого самого исчисления, нет ничего плохого в том, что можно сменить тип this прямо в методе объекта, при чем никаких требований к вменяемости системы типов не предъявляется. Аналогично нет никаких требований к тому, чтобы нельзя было получить доступ к реализации объектов (т.е. ни инкапсуляция, ни наследование, ни полиморфизм не являются требованиями ОО...)
                Передача сигналов? - тоже нет, это деталь реализации...
                Кроме того, нет ничего плохого в том, если компилятор создаст из кода опирающегося на ОО принципы не ОО структуру, коль скоро она делает то же самое. Да я так думаю (но не знаю наверняка), что и Обж-Ц может заинлайнить вызов метода, если обнаружит такую возможность.
                Есть другие соображения в плане использования: всякие случаи когда объекты используются не по назначению, ну и С++ располагает, наверное к тому, чтобы это происходило. Поэтому и цитата выше.

                Это очень наивно думать что теория не соответствует практикe: это как если бы в теории гравитация существовала, а на практике - как повезет... Просто мы не всегда умеем правильно объяснить / найти соответствия.
                Ответить
                • Здравый комментарий, от здравого человека
                  Ответить
                • <<Это очень наивно думать что теория не соответствует практикe: это как если бы в теории гравитация существовала, а на практике - как повезет... Просто мы не всегда умеем правильно объяснить / найти соответствия.>>
                  Да так то оно так, но темнемение - есть факт что вся эта тягомотия с сообщениями жрет кучу тактов, усложняет простые вещи, про сами особенности реализации обжиСи я молчу - я об них уже говорил, есть теоритическаое ООП (конь в вакууме), а есть С++ один из самых применяемых языков в продакшене который не имеет сообщений, а только обьект, аргументы и адрес функции адрес которой вставляет линкер, таблица виртуальных функций не в счет.
                  Ответить
    • @dynamic не для пацанов
      Ответить
    • четоржу =))))
      Ответить

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