Я тоже читал Чистый код, и ценность чтения книги действительно огромна. Однако есть крайние случаи, с которыми я не согласен. Метод понижающей функции, описанный г-ном Мартином, является одним из них.
В идеале, класс должен иметь только от 1 до 3 открытых методов, в противном случае он, скорее всего, делает слишком много. Я предпочитаю, чтобы мои публичные методы были сгруппированы вместе. Когда у вас есть очень маленькие классы, то, что предлагает мистер Мартин, может хорошо работать, но в реалистическом мире программного обеспечения у вас будут классы с более чем одним или двумя открытыми методами.
Для себя, когда я смотрю на класс, публичные методы сообщают мне о функциональности, если я хочу их использовать. Справедливо, что хорошая IDE все еще скажет вам, когда потребляет, но если я действительно захочу заглянуть в класс, его будет легче читать и собирать. Хорошая IDE позволит вам достаточно легко перемещаться по частным функциям нижнего уровня.
Еще одно несогласие с чистым кодом - префикс «I» для интерфейсов. Я предпочитаю, чтобы мои интерфейсы имели префикс «я». Это, однако, отдельная дискуссия.
Самый важный вывод должен быть последовательным. Стратегия, которую вы выбираете, имеет гораздо меньшее значение, чем согласованность. Если вы используете разные стратегии для своей команды, всем будет трудно понять. В команде выбирайте стратегию и придерживайтесь ее.