arisu писал(а):
просматривая давеча некоторые свои сишные исходники, заметил интересное.
1. код насквозь больной premature optimisation. получается так почти рефлекторно, а если этого не делать — то ощущается дискомфорт: у нас же (с придыханием) системный язык! надо «оптимизировать» сразу!
2. циклы забиты break'ами, потому что п.1. а чего, если метка явно не объявлена — то неструктурный переход не считается!
3. и забавное: очень часто после циклов стоят assert-ы, которые проверяют постусловие. некоторое время я считал это признаком хорошего и надёжного кода. простите, если вы пили чай/кофе и только что поперхнулись.
и про стадность явней: когда я пишу на обероне (компонентном паскале, но неважно), давление пункта 1 про «настоящие программисты сразу оптимизируют» почти исчезает. вместе с ним исчезает множество (но, каюсь, далеко не все) assert-ов из пункта 3 — в силу ненадобности.
печальное: полностью излечиться никак не удаётся, и эмуляторы break через булы всё равно подло пробираются в код.
мечтательное: подавляющее большинство современных программистов (включая меня) надо запирать в отдельные камеры, и выдавать им еду исключительно за правильно написаные циклы.
Break - плохо. Логические переменные уже гораздо лучше.
Насчет assert, в них нет ничего плохого. Они, как неустаревающие комментарии, должны проверять код, что ничего не поломалось.