1. Си / Говнокод #4415

    +145

    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
    enum {
    	CONST_A,
    	CONST_B,
    	CONST_C,
    	/* ... и еще пяток в том же духе */
    };
    
    /* ... */
    
    char opType = ...;
    switch(opType) {
    case 'A':
    	/* строчек 10 кода использующие CONST_A */
    	break;
    case 'B':
    	/* капипасто тех же строчек 10 кода - но теперь с CONST_B */
    	break;
    case 'C':
    	/* капипасто тех же строчек 10 кода - но с CONST_C */
    	break;
    /* и т.д. и т.п. для других значений opType */
    }

    только что убил полчаса что бы понять что switch/case завален 100% копиями того же самого кода - только со смененной константой. просто замапить тот char в enum ... это наверное исключительно для слишком умных.

    Запостил: Dummy00001, 22 Октября 2010

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

    • А почему так много времени ушло на поиск копипасты?
      Оно что было написано разным почерком?
      Ответить
      • я это дело немножко здесь преукрасил. в коде константы имеют длинные имена в Жаба стиле (типа КрутаяОперацияДляБыстрогоУдаленияФайла). поэтому на первый взгляд все бранчи выгледят слегка по разному. но и одинаково.

        я как раз пол часа и потратил что бы достоверно установить что бранчи ничем не отличаются (VIM's :diffthis трюк помог неимоверно) и ни для одного из случаем никаких специальных действий не требуется. что собственно мне и нужно было узнать.
        Ответить
    • cудя по орфографии капипасто тоже копипаста
      Ответить

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