CodeSOD: Статическое Состояние Заметка
The Daily WTF на русском

CodeSOD: Статическое Состояние

Рецензия C++ кода выявила тревожную закономерность, связанную с геттерами и сеттерами. Метод getField, ожидаемый как простой геттер, неожиданно вызывал функцию setGetField. Функция setGetField использовала логический флаг для определения, следует ли установить или получить значение. Хуже того, значение хранилось в статической переменной внутри setGetField. Эта статическая переменная означала, что значение было общим для всех экземпляров класса, фактически создавая синглтон. Первой реакцией рецензента было недоверие, возникло подозрение на шутку. Однако многократное столкновение с этой моделью привело к разочарованию и вопросам о компетентности разработчиков и практике найма. Повторное использование этой ошибочной модели подчеркнуло серьезные проблемы с качеством кодовой базы и пониманием разработчиками основных принципов программирования. Проблема заключается в неправильной инкапсуляции и непреднамеренных последствиях использования статических переменных внутри методов класса. Дизайн кода привел к общему состоянию для всех экземпляров, нарушая основные принципы ООП.