Представительная строка: Не то, что они имели в виду, смотря «ИлиИли»
В тексте рассматривается проблемная функция из исследовательского инструмента C++ трехдесятилетней давности. Этот инструмент, над которым в основном работали кандидаты наук в области информатики, демонстрирует плохую практику программирования. В качестве конкретного примера приводится функция с именем isFooOrBar, которая на самом деле выполняет операцию AND между isFoo() и isBar(). Это несоответствие между названием функции и ее поведением является серьезной проблемой. Более того, автор утверждает, что даже если бы название было правильным, явное выражение isFoo() && isBar() понятнее, чем специальная функция. Функция, о которой идет речь, была зафиксирована как новый код в 2010 году, что говорит скорее об осознанном выборе, чем о простой ошибке. Вероятно, первоначальный автор изменил логику с OR на AND, не обновляя название. Такое решение было принято, чтобы избежать обновления всех сайтов вызова, несмотря на то, что функция использовалась только в одном месте. Автор предполагает, что истинным намерением было инкапсулировать поведение, что в данном случае не было достигнуто.
isFooOrBar, которая на самом деле выполняет операцию AND междуisFoo()иisBar(). Это несоответствие между названием функции и ее поведением является серьезной проблемой. Более того, автор утверждает, что даже если бы название было правильным, явное выражениеisFoo() && isBar()понятнее, чем специальная функция. Функция, о которой идет речь, была зафиксирована как новый код в 2010 году, что говорит скорее об осознанном выборе, чем о простой ошибке. Вероятно, первоначальный автор изменил логику с OR на AND, не обновляя название. Такое решение было принято, чтобы избежать обновления всех сайтов вызова, несмотря на то, что функция использовалась только в одном месте. Автор предполагает, что истинным намерением было инкапсулировать поведение, что в данном случае не было достигнуто.