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

    +73

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    public Show extractDefault(Extract request) {
            CriteriaBuilder criteriaBuilder = converter.convertToDO(request);
            List<EntityDO> list = dao.extract(criteriaBuilder, 0, Byte.MAX_VALUE);
            if (list.size() != 8) {
                if (list.size() != 0) {
                    throw new AssertionError(list.size());
                }
                criteriaBuilder = createCriteriaBuilder();
                list = dao.extract(criteriaBuilder, 0, 100);
            }
            if (list.size() != 8) {
                throw new IllegalStateException("Entity not found");
            }
            return converter.convertToSystem(list);
        }

    Решил запостить код, который дергает сущность из базы как явный говнокод, но после повторного просмотра уже и не кажется таким уж ужасным. Разве что в extract передаются разные значения pagesize(3-ий аргумент) и list.size() сравнивается не понятно. А что скажет общественность?

    Запостил: jericho, 13 Марта 2012

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

    • Кусок бреда. Что за восьмёрка? Почему после первого dao.extract размер должен быть 0, а после второго ровно 8?
      Ответить
      • Byte.MAX_VALUE, не? ай...
        Ответить
        • Box.NICK_VALUEV
          Ответить
        • Правильно, магические числа - зло.

          :)
          Ответить
          • Да, магические - это просто капец. Сонару жутко нравится ;)
            Ответить
        • Byte.MAX_VALUE - это вообще полный лол! ))) Когда я спросил автора почему, то последовал ответ, что он не хотел создавать еще одно поле)
          Ответить
      • 8 тут не спроста. Просто один объект хранится 8 строками в таблице. Другое дело, что она не объявлена как константа.
        Ответить
        • >Просто один объект хранится 8 строками в таблице.
          >Другое дело, что она не объявлена как константа.
          CriteriaBuilder напейсали, dao напейсали, а такую простую штуку как RowMapper не осилили?
          Зачем писать на жабе, пытаться делать сложные и модные нынче ооп-абсракции.
          Но при этом не создать объект там где он реально нужен?
          Ответить
    • показать все, что скрытоvanished
      Ответить

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