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

    +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
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    Credential credential = (Credential) getCurrentObject();
    if(isNew(credential)) {
    	CredentialDetails details=credential.getCurrentDetails();
    	if(details == null)
    		throw new NullPointerException("Credential details object is null");
    
    	CredentialDetails updatedDetails = credential.getCurrentDetails();
    	updatedDetails.setStartDate(getCurrentDate());
    	updatedDetails.setExternalID(credential.getExternalID());
    }
    if(isNew(credential)==false) {
    		
    	CredentialDetails details=credential.getCurrentDetails();
    	if(details == null)
    		throw new NullPointerException("Credential details object is null");
    	CredentialDetails updatedDetails = credential.getCurrentDetails();
    	updatedDetails.setStartDate(getCurrentDate());
    	updatedDetails.setExternalID(credential.getExternalID());
    	m_existingDetailsClone.setEndDate(updatedDetails.getStartDate());
    	updatedDetails.setPreviousDetails(m_existingDetailsClone);
    			
    	getModCol().addModified( m_existingDetailsClone );
    }

    Такое впечатление что автор кода клинический идиот. Зачем так насиловать несчастные POJO Credential и CredentialDetailsю

    Запостил: askell, 11 Ноября 2011

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

    • кредентин накрединтил кредентеля.
      Ответить
    • Вот что значит "имена переменных, которые позволяют понять, для чего они"... >_>

      P.S.: Я тута.
      Ответить
    • Не люблю Java за то, что почти весь код на ней стремятся превратить вот в такую вот стеночку практически равномерно заполненную символами.
      Ответить
      • горизонтальный код - плохо
        узкий вертикальный мне тоже не нравится

        зы, напомнило:
        a=5;
        b=10;
        c=0;
        d=a+b;
        x=d-c;
        ужос
        Ответить
        • только код лесенкой может доставить вам истинное наслаждение?
          Ответить
          • Мне код лесенкой наслаждение доставляет.
            Хотя подспудно понимаю что это уже мания.

            private var _menu: A_Menu;
            private var _title: A_Title;
            private var _border: A_Border;
            private var _imageBg: A_Image;
            private var _packman: A_Packman;
            private var _activeBg: A_ActiveBg;
            private var _imageVideo: A_Image;
            private var _fullSkrinBg: A_FullscrnBg;
            private var _message_embed_code_clip: A_Text;
            private var _bgimageAndVideoLayoit: SkinBaseLayoit = new SkinBaseLayoit();
            private var _menuLayoit: SkinBaseLayoit = new SkinBaseLayoit();

            private var _bg_x: int;
            private var _bg_y: int;
            private var _width: int;
            private var _height: int;
            private var _bg_width: int;
            private var _bg_height: int;

            private var _isPlay: Boolean;
            private var _isVidio: Boolean;
            private var _inited: Boolean;
            private var _isInited: Boolean;
            private var _videoInit: Boolean;
            private var _errMessage: A_Text;
            private var _updateMessger: A_UpdateMessage;

            мм, шрифт немного другой, не так красиво как в идее(
            Ответить
            • я имел в виду немного другие лесенки ;) типа таких:
              (defmethod version-satisfies ((cver string) version)
                (let ((x (parse-version cver 'warn))
                      (y (parse-version version 'warn)))
                  (labels ((bigger (x y)
                             (cond ((not y) t)
                                   ((not x) nil)
                                   ((> (car x) (car y)) t)
                                   ((= (car x) (car y))
                                    (bigger (cdr x) (cdr y))))))
                    (and x y (= (car x) (car y))
                         (or (not (cdr y)) (bigger (cdr x) (cdr y)))))))
              (car x) (car y) - раскаркались тут
              Ответить
      • показать все, что скрыто
        Ответить
        • Да, да, тихий ужос
          Ответить
          • Мм я жаву почти не знаю, но чисто логически код выглядит неплохо.
            В чем подвох?
            Ответить
            • 1. Два if вместо if/else
              2. Ветки содержат практически одинаковый код. Одна только проверка на null чего стоит.
              3. После того, как объект details получен и проверен, происходит повторное получение того же объекта.
              Ответить
              • Ога, сейчас синтаксис всплыл в моем мозге и я поняла что происходит.
                Копипаста рулит)
                Надо спросони пока чай не попила глупых вопросов не задавать).
                Ответить
              • Еще эпичное "== false" забыли
                Ответить
      • только у очень плохих программистов, не умеющих пользоваться ООП и не читавших про рефакторинг. Обычно такие программисты пишут на PHP, но случается что их заносит и в джаву.

        Если человек не полный нуб, то размер его метода не превышает 10-15 строчек. Но на одного хорошего программиста, к сожалению, приходится 20 ПХПшников. Даже в джаве.
        Ответить
    • показать все, что скрытоvanished
      Ответить

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