Требуется обновление браузера.

"Искусство программирования на C++" Герберт Шилдт


Просмотров: 1321
18 июля 2013 года
Книги  
 
Книга – отличный пример маркетинга: обложка изобилует завлекаловками – «искусство», «эффективное программирование», «управление потоком», «подсистема сбора мусора», «гуру», даже абстрактный фон и эффекты в стиле WordArt - мы читаем обратную сторону книги и проникаемся ещё большим уважением к автору – «ведущему специалисту по языкам C, C++, Java и C#». Книга обладает приятной полнотой и создаёт впечатление фолианта мудрых знаний.

На деле же, если бы меня не предупредили, что код от гуру, я бы вынес вердикт: студент-теоретик старших курсов. Код поблёскивает хитрыми и мало практичными академическими ходами и тут же светит дырами и говнокодом, с позиции практики. Да и теми же неверными, с точки зрения академического подхода, реализациями. Ряд ошибок (порицаемых в предшествующей книге) тут встречаются часто, и даже рекомендуются. Кода много (такое обычно встретишь в слабеньком дипломе, где под предлогом посвящения читателя в ненужные ему аспекты реализации, выдаётся тонна исходников, включая код обработки GUI) – вы и ахнуть не успеете как дочитаете первую сотню страниц. Код излишне прокомментирован, некоторые места аж по два раза. При этом сразу за кодом идут главы разбора исходника, в которых код приводится ещё раз. Затем код примеров – ещё несколько страниц, код вывода результатов прогона – ещё. Автор приводит даже код ресурсных файлов (
*.rc
). В коде конечной программы появилось сразу несколько модификаций? – ещё раз привести весь код целиком. Офигенно «нужный» график факториала (для демонстрации комбинаторного взрыва) занимает 2/3 страницы. Вот тебе и солидная полнота книги.

Что у автора получается действительно хорошо, так это нахваливать язык (серьёзно – можете растащить на цитаты и кидаться в оппонентов), отдельно, или сравнивая его с Java и C# (в которых он тоже специалист). Некоторые действительно проблемные аспекты автор опускает. Так что, можете ссылаться для придания веса своим утверждениям (кто писал более-менее серьёзные статьи - знаком с проблемой). А ещё автор чудовищно дотошно разжёвывает весь код, не уставая повторяться. Это, наверное, хорошо.

Каждую главу книги можно рассматривать как решение определённой задачи, что, в совокупности со способом изложения, формирует ощущение, будто читаешь подборку курсовых работ.

Четвёртая глава вызвала в памяти цитату

Цитата
Основной труд в этой работе был посвящён прикручиванию колоссально сложных функций рисования графиков функций от одного параметра к другим подсистемам. Складывается впечатление, что все эти системы были лишены такой прекрасной возможности, не займись этим Масин.

Кроме того, в ней автор допустил концептуальную ошибку, оборачивающуюся костылём в коде и ограничением на использование. Всё бы ничего, но исправление – буквально пара символов… А ответ прост – предыдущая книга написана не на пустом месте.

Рассматриваемые задачи столь разрознены, многогранны и поднимают столько нюансов (как со стороны алгоритмов, так и кода), что создаётся ощущение поверхностности изложения. В начале главы автор перечисляет предшествующие вкусности – у вас уже текут слюнки, а потом бац: автор либо упрощает задачу, либо просто использует высокоуровневые API-функции, рассматривая только актуальные для задачи аргументы. «Это образец самого захватывающего кода, который Вы когда-либо видели!» - вот уж действительно!

Но, не буду вредничать – две последние главы недурственны: автор даже не дал себя поймать на ограничении стековой памяти в старых компиляторах Visual C++.
Шилдт Г. Искусство программирования на C++. - СПб.: БХВ-Петербург, 2005. - 496 с.: ил.

Запись опубликована в категориях:

Книги  
 

Комментарии

Инкогнито
  Загружаем captcha