Чему учиться в эпоху ИИ?
Заметка по книге Букреева и ДеУолта “Эверест. Смертельное восхождение”
В исходных кодах Quagga применяется интересное решение отладочного логирования. Помимо привычного уже уровня логирования debugging, пользователь может включить дополнительный отладочный вывод отдельных сущностей. Например, очереди событий. Делается это добавлением строки вида debug <сущность> в файле конфигурации.
В коде этот подход реализуется простыми условными конструкциями вроде такой:
if (IS_DEBUG_OSPF_EVENT)
zlog_debug ("setting options on %s accordingly", IF_NAME (oi));
Занимательно, что Quagga по умолчанию включает именно отладочный (читай “многословный”) уровень логирования. Хотя количество записей в логах сильно не вырастает. Большая часть вывода спрятана под условиями.
И что же получается… Код нашпигован условными конструкциями, которые не решают прикладную задачу, но выполняются при этом всегда. Я бы к такому решению никогда не пришел - зачем нам лишние if-ы? В то же время мы видим сетевое приложение Quagga, управляющее трафиком в реалтайме и совершенно не колеблющееся из-за каких-то там if-ов.
Имеет место быть.
Заметка по книге Букреева и ДеУолта “Эверест. Смертельное восхождение”
Заметка по книге Нассима Талеба “Одураченные случайностью”
Включаем поддержку UML-диаграмм в Doxygen и размышляем о последствиях
Разбираемся, как не превратить репозиторий Git в Google-диск
Выясняем, когда и для чего разработчики используют UML