1. Java / Говнокод #8904

    +78

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    while (entityIterator.hasNext()) {
        Object[] results = entityIterator.next();
        Long policyId = ((PolicyEntity) results[0]).getId();
        PolicyEntity policy = (PolicyEntity) policyDao.findById(policyId);
        processPolicy(policy);
    }

    Спецально не рефакторил этот шедевр, ждал, пока ГК поднимется.

    Запостил: roman-kashitsyn, 05 Января 2012

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

    • не могу сказать однозначно, что это ГК. Мало контекста. Такой подход может быть оправдан в некоторых случаях.
      Ответить
      • entityIterator тянет полисы из базы.
        Получить полис, взять его идентификатор, потом получить полис по идентификатору? Чем это может быть оправдано?
        Ответить
        • вооот, небольшое уточнение пришло: entityIterator тянет полисы из базы.

          Оправдано может быть в следующих случаях. Например, используется hibernate, и entity была подчитана в другой hibernate сессии. Тогда, если у entity есть ссылка, которая не отрезолвилась (т. е. гиберовский проксик), то стоит только ее дернуть и получится замечательный LazyInitializationException. Или вообще, в этом месте нет hibernate сессии, тогда стоит только дернуть проксик и получим "no session" в виде эксепшена.
          Ответить
          • О да, хибернейт и иже с ним - прекрасный пример набора кривых костылей.
            Ответить
            • что использовать вместо гибера?
              Ответить
              • Насколько велика необходимость использования данной библиотеки?
                Ответить
                • не понял вопроса. поясните пж
                  Ответить
                  • Может быть можно без Hibernate и подобных обойтись?
                    Ответить
                    • 250 сущностей. Есть ли альтернатива?
                      Ответить
                      • В церковь изгонять.

                        Подожду ответа Романа. Пока ничего на ум не приходит.
                        Ответить
                        • Ага, десяток монахов. Но гораздо лучше проапргейдить их до фанатиков.
                          Ответить
                        • показать все, что скрытоА что в твою пустую голову прийти может? Кроме хуя - ничего :)
                          Ответить
                          • Очень рад, что сайт не по психологии. Ваша фраза в подобном месте скопления психологов/психиатров способна вызвать цунами говна в вашу же сторону.

                            Олеж, ты все еще любишь нас?
                            Ответить
                            • А я думал, sergilens уже оседлал эту цунами и типа сёрфит на ней
                              посасывая хуи между делом
                              Ответить
                              • Человек, который не может управлять собой, не может управлять другими. Так что, херовый из него сёрфер.
                                А все эти тонны говна, которые на него льются, никак не от обратного.
                                Это иллюзия власти. Он нагадил - в него кинули тапок. Свобода воли кинувших тапок никуда не делась. Никакой власти нет, одна иллюзия.
                                Ответить
                              • >sergilens
                                Есть мнение, что это другой анально контуженный мудачок начитался старых тредов и пытается копировать неповторимый стиль оного поциента.
                                Ответить
                                • В виду наличия схожего уровня долбоебизма у обоих пациентов, считаю необходимым сделать одно из имен нарицательным.
                                  Ответить
                                  • В целом - да.
                                    Но погодите. Что это за звук? Едва слышное кукаренье из под шконки...
                                    Там внизу, слышите?
                                    Ответить
                          • показать все, что скрытоУ it-илиты интернетов педиков с этого гавносайта правда всегда вызывает волну негодования :)
                            Ответить
                            • Слушай, пидор, а почему ты именно на меня больше всего кукарекаешь в никах?
                              Ответить
                              • Осмелюсь предположить: это тот же вафел, что делал правки о тебе на лурке, некоторое время назад.
                                Ответить
                                • Да, это тот же пидор. Орлежка возвращается.
                                  Ответить
                            • То-то ты пидор тут один такой вечно недовольный тем, что тебе же про тебя же и про твои посты правду говорят xDDD Как стрелки переводил так и переводит. Давай уже новенького, олерожиг
                              Ответить
              • Алтернативы есть, их не может не быть. У каждой есть свои достоинства и недостатки.
                1. Более легковесные фрэймворки типа iBatis.
                2. Использовать православный SQL. В сбере около полутора тысяч таблиц, они преспокойно всё фигачат хранимыми процедурами и смотрят на hibernate как на говно.
                3. Использовать NoSQL. Гораздо быстрее и интереснее.
                Ответить
                • 1. где-то читал, что iBatis хорош для небольшого числа сущностей, а когда их становится много не так уж он и хорош. так ли это?
                  2. в сбере видать важна скорость выполнения =) я пока еще психологически не готов перейти на sql =)
                  3. какие для java есть nosql решения находящиеся не в пробирочном состоянии?
                  Ответить
                  • 1. iBatis используют в том же сбере. Да, с увеличнием числа таблиц мэнеджить сущности становится трудно, но тут я не вижу особых преимуществ у тяжёлых ORM. У нас в проекте огромное число native запросов, и всеми полями, в т.ч. необходимыми только hibernate (типа dtype) приходится управлять ручками и честно писать всё это в liquibase-скриптах.
                    2. я не вижу в использовании sql ничего плохого/сложного. Основная проблема - сложность миграции на другую БД, но она решается тулами легковесных генераторов запросов либо отказом от миграции.
                    3. Тут я пока не осведомлён, java, наверное, слишком статичный инструмент. В play framework вроде бы есть что-то из коробки, но я могу ошибаться. Groovy бы тут засиял бы во всей красе, это точно.
                    Ответить
                • >Использовать православный SQL.
                  >хранимые процедуры и смотрят на hibernate как на говно.

                  истину глаголишь, ибо даже юзая ОРМ от скула не уйдешь.
                  ведь узкие места появляются тут и там.
                  и потом приходится их устранять все теми же хранимками.
                  Ответить
        • >entityIterator тянет полисы из базы.
          тянет часть результатов, потому что если бы брать все одним запросом получилось бы слишком много записей? тогда разве нормально, что обрабатывается только первая запись из каждой порции?
          Ответить
          • Там запрос тянет две ентити разных типов, причём реально используется только первая из них. Что-то типа
            select p, o from PolicyEntity p, OtherEntity o
            where p.id = o.policyId and ...
            Ответить
    • Ждать почти месяц — это круто
      Ответить
    • Ром, - RenewalClaimReportServiceImpl? Или MVR ? ;-))
      Ответить
    • Всем, привет!
      Ответить

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