1. Куча / Говнокод #4508

    +144

    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
    Хочу провести маленький опрос.
    
    Внимание вопрос:
    Считать ли код говнокодом, если:
    
    а) он выполняет свою работу хорошо.
    б) его легко поддерживать.
    в) не используются хаки (т.е. код переносим, не зависит от браузера и т.д.)
    
    ?
    
    ЧЁТКО выполняются эти 3 условия, и не важно, что в коде, например, используется даже оператор goto.
    
    Моё мнение - нет, если эти 3 условия выполняются.

    Запостил: Oleg_quadro, 01 Ноября 2010

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

    • Xtn cj 2 b 3 eckjdbtv yt dct gjyznyj/ Hfpmzcyb gjgjlhj,ytq!
      Ответить
    • вообще-то это говнокод, а не сайт опросов.
      можно и даже НУЖНО было прикрепить к сему какой-нить пруфкод для последующего холивара.

      также хочу спросить (у ОПа в первую очередь) вот мной для проекта был написан метод
      /**
      	 * Проверяет переданный объект на null или isEmpty()
      	 * ВАЖНО: объект должен иметь метод isEmpty()
      	 * @param obj
      	 *            
      	 * @return true если obj==null или её obj.isEmpty==true 			
      	 */
      	public static boolean isEmpty(Object obj) {
      		if (obj == null) return true;
      		/*	запарило меня писать кучу одинаковых методов для , map, lists etc 
      			посему решил заюзать рефлексию.... 
      			вообще девы явы могли бы сделать имплементацию интерфейса, не
      			потому что он наследуется, а потому что реализованы его методы
      			чтоб я тут не занимался проктологией
      		 */	
      		try {			
      			return 	(obj.getClass().getMethod("isEmpty").
      					invoke(obj, (Object[]) null)).equals(true);			
      		} catch (Exception _) {
      			// return false;
      			throw new RuntimeException();
      		}
      		
      	}


      говно ли?
      Ответить
      • То, что Вы пытались изобразить -- называется утиная типизация.
        В джаве так не делают. Рефлексия делает Ваш код говном на 50%, а кидание рантайм эксепшена -- говном на остальные 50.

        1) читайте про интерфейсы
        2) читайте про instanceof
        3) читайте про кастинг
        4) читайте Блоха "effective java"
        Ответить
    • >>его легко поддерживать.
      >>даже оператор goto.
      взаимоисключающе
      Ответить
    • ГК #4507 от браузера определенно не зависит :-)
      Ответить

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