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

    +69

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    public void openPopupWindow( com.sap.tc.webdynpro.services.session.api.IWDWindow window )
      {
    	IWindowStackElement newWindow = wdContext.nodeWindowStack().createWindowStackElement();
    	newWindow.setWindow(window);
    	wdContext.nodeWindowStack().addElement(newWindow);
      }

    Вот так вот вроде называешь всё своими именами, а потом на выходе получаешь вот такую тавтологию как в 4ой строке.

    Запостил: foGa, 23 Сентября 2011

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

    • IWindowStackElement... когда я переходил с C# на Java, мне объяснили что в Java незя называть интерфейсы с префикса "I". Сначала я боролся, потом смирился. Теперь вот смотрю на код и уже кажется диким).

      А вот если пользоваться хоткеями для написания кода в IDE, то newWindow назывался бы windowStackElement. И код был бы более читаемый.
      Ответить
      • > в Java незя называть интерфейсы с префикса "I"
        можно. но вообще принято добавлять суффикс "able"
        Ответить
        • угу, WDWindowable
          Ответить
        • У нас в конторе вроде не принято добавлять able. Да в JRE примеров куча java.util.List например по мне уже лучше чем IList или Listable. Вообще, я для себя не смог сформулировать зачем нужны эти префиксы и вообще зачем программеру по имени определять класс это или интерфейс? Почему в таком случае еще и абстрактным классам не давать префиксы? Код лучше читается, когда нет их.
          Ответить
          • Назначение исходное, отличать классы, объекты которых можно создавать и использовать, от интерфейсов и абстрактных. Если это понятно, не залезая в код класса, то именование - лишь дело привычки.
            Ответить
            • >>Назначение исходное, отличать классы, объекты которых можно создавать
              >>и использовать, от интерфейсов и абстрактных
              Главный вопрос зачем нужно отличать такие объекты по имени? Что это дает? То, что программист определил, что объект нельзя создать, не даст ему ответа на вопрос, какой тебе класс нужен. По мне так отличать и подсказывать это дело IDE. Когда я пишу new List(), IDE мне подскажет, что это интерфейс и даст возможность выбрать из списка не абстрактных классов нужный, либо сгенерить его inline имплементацию.

              А вот когда цель понять, что делает код (прочесть код), все эти IList только мешают, так как понижают его читаемость. Конечно всё дело привычки и это вопрос религиозный, но он религиозный именно потому, что нет весомых ни за, ни против.
              Ответить
              • > и это вопрос религиозный, но он религиозный именно потому, что нет весомых ни за, ни против.
                как и другие вопросы именования, форматирования, организации кода.

                лично я (не знаю, хорошо ли это, или плохо) разношу классы различного назначения в разные пакеты - в частности, интерфейсы пихаю в подпакет
                Ответить

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