# рефракторинг

« картинки и свежие анекдоты | чат

# рефракторинг

Вот тут встретил забавный пример рефракторинга. Исходная программа выглядела так:


    int i;
    for(i = 1; i <= 1000000; i += 1)
        if(i % 15 == 0)
            printf("BizzBuzz\n");
        else if(i % 3 == 0)
            printf("Bizz\n");
        else if(i % 5 == 0)
            printf("Buzz\n");
        else
            printf("%d\n", i);


ужос конечно, но по крайней мере понятно как она работает и что она делает. После доработки напильником получилось:


    char *c[]={"BizzBuzz\n","Bizz\n","Buzz\n","%d\n"};
    for (int i=1;i<=100;i++)
        printf(c[((i%3>0)<<1)+(i%5>0)],i);


я долго смеялся, потому как сам имею слабость к подобному "рефракторингу". И когда программа состоит из подобных головоломок больше чем наполовину, то по прошествии некоторого времени ее приходится рефракторить обратно, переписывая в стиле readwrite, а не writeonly

Комментарий:

Ваше имя:

Ещё интересное на этом сайте:

Подборка июньских фейлов!
Канобувости, 46 выпуск
Подберите рифму
whatever...
Мышки помогут с Божьей помощью?
Мотоциклисту повезло, что он отъехал
Дождик
Кот-молния (youtube)
#3532: Не сметь стрелять по Багдаду
Futurama vs. eyePhone
Властелин мира
Грудь Ким Кардашиан увековечили в воске
Ангелы и порно
Еслиб они только понимали что мы с ними делаем...
Роковые женщины
ГШ-23
Кое-что о питерцах
Ржачно
Топ 10: Сказочно больные персонажи
А вот и повод!
« все анекдоты и картинки
Рейтинг@Mail.ru