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

    +70

    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
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    25. 25
    26. 26
    protected void writeCaptionForDoubleColumns(HSSFWorkbook wb,
    		HSSFSheet sheet, HSSFRow row, HSSFCellStyle fulBorderCalignFont14,
    		Type1 obj1, Type2 obj2,
    		Type3 obj3, Type4 obj4, Type5 obj5,
    		Type6 obj6, Type7 obj7,
    		boolean writeObj6, boolean writeObj5,
    		boolean isHorizontal, String formName, String formNameCode) {
    	writeCaptionForDoubleColumns(wb, sheet, row, fulBorderCalignFont14,
    			obj1, obj2, obj3, obj4, obj5, obj6,
    			obj7, writeObj6, writeObj5, isHorizontal, formName,
    			formNameCode, true, null);
    }
    
    protected void writeCaptionForDoubleColumns(HSSFWorkbook wb,
    		HSSFSheet sheet, HSSFRow row, HSSFCellStyle fulBorderCalignFont14,
    		Type1 obj1, Type2 obj2,
    		Type3 obj3, Type4 obj4, Type5 obj5,
    		Type6 obj6, Type7 obj7,
    		boolean writeObj6, boolean writeObj5,
    		boolean isHorizontal, String formName, String formNameCode,
    		boolean nameFormCaption) {
    	writeCaptionForDoubleColumns(wb, sheet, row, fulBorderCalignFont14,
    			obj1, obj2, obj3, obj4, obj5, obj6,
    			obj7, writeObj6, writeObj5, isHorizontal, formName,
    			formNameCode, nameFormCaption, null);
    }

    описание может быть только матерным

    Запостил: evg_ever, 29 Января 2014

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

    • все имена изменены и все совпадения случайны, или так и есть в коде?

      не вижу тут говна, кроме излишне длинных сигнатур
      Ответить
      • изменены имена классов, определённых внутри проекта, и объектов этих классов

        по-моему, 17 аргументов - это уже всё-таки говно
        Ответить
        • длинные сигнатуры - классика говна.
          Ответить
        • Type3 obj3 - так и есть в коде?
          Ответить
          • нет, я же написал выше "изменены имена классов, определённых внутри проекта, и объектов этих классов"
            Ответить
    • В жаве нету именованных параметров - жаваебы соснули.
      Ответить
      • сам-то понял, что сказал?
        Ответить
      • и как они помогли бы сократить сигнатуры?
        Ответить
        • С ними пришлось бы писать одну сигнатуру на все случаи жизни, а не 18 штук с убывающим количеством аргументов, да еще и покрывающими далеко не все юзкейсы...
          Ответить
          • или я не понимаю, или речь о необязательных параметрах?
            Ответить
            • имелись ввиду параметры по умолчанию, видимо
              Ответить
              • в питонах к примеру можно не только указывать значения параметров по умолчанию, но и при вызове изменять умолчальные значения конкретного аргумента.
                def f(x, y=1, z=2):
                    pass
                
                f(3, z=17)
                Ответить
                • необязательные параметры ведут к неоднозначности... чаще лучше передать структуру, там и параметры именованы, и умолчания есть
                  Ответить
                  • об этом писали тыщу раз, но аноним не унимается
                    Ответить
                    • def f(x, y=1, z=2):
                          y = 42
                      
                      f(3, z=17)
                      f(3, z=18)
                      так интереснее
                      Ответить
                      • В f печать y забыл перед присвоением. Так понятнее будет
                        Ответить
                    • кстати, идея - совместить объявление структуры и передачу ее именно через определение сигнатуры, с упрощенным синтаксисом..... хотя все равно не прокатит.
                      Ответить
                    • Со структурой хуже читается. И снова багет.
                      Ответить
                  • А необязательные параметры не именованы?
                    Ответить
                    • а зачем?
                      Ответить
                      • для большей гибкости, мой друг
                        Ответить
                        • это не нужно. либо уж порядок, либо имена. иначе будет ад.
                          Ответить
                          • ну а если у тебя например вводятся координаты точек в н- мерном пространстве, причем остальные не введенные точки довычисляются как ты будешь это описывать?

                            public Vector3D GetVector3D(Plane guidePlane = Plane.Unknown,
                                        Coord x = Coord.Unknown, 
                                        Coord y = Coord.Unknown,
                                        Coord z = Coord.Unknown)
                                    {...}
                            Ответить
                          • Перлопитонистододиезники твое мнение не разделяют.
                            Ответить
            • Как в ля шарпе.
              private Orgasm Sex(Man man= vibrator, Women women = hand){...}

              Sex(women = Masha)
              Sex(man = anonimb84a2f6fd141)
              Ответить
      • А анонимы анонимно аннотировали абстракцию ануса.
        Ответить
    • Отчёты, XSL. Старый добрый apache.poi.
      А параметры нельзя в коллекции передавать и универсально обрабатывать? Или их нужно в хитрые места в шаблоне втыкать?
      Ответить
      • Увы, в хитрые места.
        Ответить
        • Я сталкивался с чем-то подобным. Тогда я сделал enum с типами полей, а метод рендеринга принимал Map<FieldType, ?> и выковыривал из неё поля.
          Причём портянки ифов не было, т.к. расположение полей в документе было забито в статических структурах данных.
          Ответить
          • Спасибо за идею, если будет время, попробую как-то так отрефакторить. А то вчера одну мелочь в отчёте надо было исправить, два часа потратил, пока нашёл, где она в коде. %)
            Ответить

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