Відгуки про книгу досконалий код

Правильно буде почати не з книжки, а з себе. Я не гуру. За плечима маю довгий айтішной досвід, але власне розробкою ПЗ - вимушено на різних мовах - займаюся близько півтора років. Кажу це для того, щоб було зрозуміло: я - з таргет-групи, книга написана для мене.

Мало хто мене дратує, як Арістотель. А Макконнелл його дуже любить і нав'язливо цитує: поганий знак - від таких інтелектуалів треба бігти. Цей грек - дурний і злий - придумав рушійну силу для фізиків, флогистон для хіміків і навіть програмістам напаскудив через товщу століть. Розмірковуючи не так давно про ООП я зрозумів, що саме через Аристотеля воно працює зі скрипом. Світ є сукупність фактів, а не речей. Якщо почитати Віттгенштейна, все встає на місця, і срібна куля - ось вона. Чи не річ треба ставити на вершину ієрархії, а операцію-дію. Це тема для іншого тексту: треба його все-таки написати, може, для Хабра.

От саме цитата з Макконнелла на філософську тему:

Прекрасний приклад абстрактного об'єкта, який не існує в реальному світі, - Shape (фігура). Об'єкти Circle (коло) і Square (прямокутник) існують насправді, тоді як клас Shape - це абстракція конкретних фігур.

Рекомендації з конструювання діляться на самоочевидні і спірні:

Насторожено ставитеся до класів, що містить більше семи елементів даних-членів.

Якщо клас має тільки дані, але не форми поведінки, запитайте себе, чи дійсно це клас. Можливо, цей клас слід розжалувати, зробивши його дані-члени атрибутами одного або декількох інших класів.

(Позбавляємося від дата-класів?)

Уникайте слів, при написанні яких люди часто припускаються помилок.

(Програміст повинен бути ще і лінгвістом-психологом? Або мова про те, що краще придумати синонім, якщо є сумніви? Мовляв, пиши флюкончік і лягай спати?)

Розділ про оператори, навпаки, так само безперечний і непотрібний. Макконннелл радить: якщо ви пишете if-then. то, можливо, вам варто написати ще і else. тому що британські вчені встановили, що в 68.5% відсотках випадків, він теж вам знадобиться.

Дуже хороший приклад Макконнелл призводить з цим же оператором в розділі про циклах:

goto Start:
while (exptession) // Робимо щось
Start:
// Робимо щось ще
>

Цікава глава про форматування коду. Одні люди переносять фігурну дужку:

Інші не переносять:

Як краще? Макконнелл вважає, що ніякої різниці немає. Але 40 сторінок доведеться прочитати.