Russian version
English version
ОБ АЛЬЯНСЕ | НАШИ УСЛУГИ | КАТАЛОГ РЕШЕНИЙ | ИНФОРМАЦИОННЫЙ ЦЕНТР | СТАНЬТЕ СПОНСОРАМИ SILICON TAIGA | ISDEF | КНИГИ И CD | ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ | УПРАВЛЕНИЕ КАЧЕСТВОМ | РОССИЙСКИЕ ТЕХНОЛОГИИ | НАНОТЕХНОЛОГИИ | ЮРИДИЧЕСКАЯ ПОДДЕРЖКА | АНАЛИТИКА | КАРТА САЙТА | КОНТАКТЫ
 
Программное обеспечение
 
Для зарегистрированных пользователей
 
РАССЫЛКИ НОВОСТЕЙ
IT-Новости
Новости компаний
Российские технологии
Новости ВПК
Нанотехнологии
 
Поиск по статьям
 
RSS-лента
Подписаться
Обзоры и рецензии

Мир глазами хакера

Анна Дегтярева

За последний год на прилавках книжных магазинов появилась серия книг "глазами хакера": "Linux глазами хакера", "Компьютер глазами хакера", "PHP глазами хакера" наряду с вышедшими ранее "Программирование на Delphi глазами хакера" и "Программирование на С++ глазами хакера" под авторством Михаила Фленова, автора ряда статей журнала "Хакер". Из всех вышеперечисленных книг меня особенно заинтересовала последняя, про нее и напишу.

Михаил Фленов. Программирование на C++ глазами хакера. BHV, 2004. - 336 с.

Ощущение, оставшееся от книги - очень непрофессионально написано. Дело даже не в языке изложения - им как раз разрешительно пожертвовать в угоду понятности наименее искушенным читателям. Как говорится в официальном отзыве, в книге "рассмотрены нестандартные приемы программирования, а также примеры использования недокументированных функций и возможностей языка C++ при разработке шуточных программ и сетевых приложений." Шуточные программы - единственный ее плюс. Теперь обо всем по порядку.

Первое: неформальность изложения. Помимо собственно описания примеров программ и функций, используемых при программировании, автор вводит множество лирических отступлений. В отличие от зарубежных авторов, приводящих исторические примеры программных катаклизмов, повлекших за собой глобальные последствия, в этой книге отступы на редкость однобоки и сводятся в основном к порицанию политики Microsoft (что само по себе некорректно для книги, описывающей приемы программирования под операционную среду семейства Windows на компиляторе производства Microsoft). На подозрения наводит также то, что в своих размышлениях на разные темы автор ссылается только на себя и свои произведения. Что еще касается этого пункта - автору явно не хватает информированности в теоретических вопросах. Так, напрмер, автор утверждает что стек протоколов TCP/IP - разработка Microsoft, да еще и ругает программистов оной конторы за отступление от стандарта ISO/OSI. Автору явно невдомек что ISO/OSI разрабатывалась не для практического применения, она слишком обща и академична, а TCP/IP является стандартом не только на PC, но и на UNIX-серверах и шлюзах...

Второе: примеры и программы. В этом и самая сильная, и самая слабая сторона книги. Сильная сторона - в оригинальности примеров. Как программно потушить монитор? Как сделать "подпрыгивающую" кнопку "Пуск"? Как сделать окно программы в форме мультипликационного персонажа Шрека? Как программно выдвинуть лоток сидирома? Как программно управлять курсором мыши? Как программно менять обои на рабочем столе? Множество оригинальнейших и захватывающих примеров и приемов программирования! Одно удовольствие читать, если бы не... Если бы не тот факт что программировать автор не умеет. Он не профессиональный программист (об этом написано во вступлении и автор этим гордится), и примеры кода у него откровенно безграмотные. Например, для того чтобы снять один из флажков стиля окна автор делает следующее:

style = style // WS_CAPTION;

Этот код встречается не в одном месте и во всех местах работает так как того хотел автор, но это не более чем чистая случайность. Символ // - ЛОГИЧЕСКОЕ ИЛИ, оно не снимает или устанавливает биты, как было бы правильно, а возвращает логическую правду или ложь. В данном случае WS_CAPTION != 0, поэтому style // WS_CAPTION всегда будет логической правдой. С точки зрения С++ логическая правда - это любое целое число, отличное от нуля. То есть какие биты переменной style после такой операции будут установлены, а какие сняты - остается загадкой. Правильное решение проблемы снятия флага должно быть таким:

style = style & ~WS_CAPTION;

Во многих местах комментарии расходятся с текстом программы. Во многих местах автор после устанавливки перехватчика событий (хука), например, слежения за клавиатурой, забывает снять этот перехватчик. Форматирование кода отвратительное, ибо отсутствует, оставляет после себя нехорошее впечатление. Сразу видно что автор никогда не писал больших программ и мало представляет как форматирование влияет на читателя. Довершением всему служит еще и то что нигде в книге не указано для какого компилятора написаны его программы. Еще раз сразу видно что автор никогда не сталкивался со случаем, когда написанные для одной версии компилятора программы не компилируются в другой версии (выше или ниже - не важно). Вместо автора скажу - для написания примеров использовалась Microsoft Visual Studio 7.0. Все примеры даны на CD, прилагаемом к книге.

Третье: атмосфера. Время от времени (на мой взгляд, чересчур часто), автор вставляет фирменное "мы, хакеры - в первую очередь профессионалы!" Это настолько идет в разрез с тем как написана книга, что режет слух. Да, хакеры. Но не профессионалы, к сожалению. Не дави автор так сильно, можно было бы просто сослаться на недоработанность, нехватку времени и средств на доведение книги до блеска, а так остается весьма печальное впечатление.

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


  Рекомендовать страницу   Обсудить материал Написать редактору  
  Распечатать страницу
 
  Дата публикации: 01.08.2006  

ОБ АЛЬЯНСЕ | НАШИ УСЛУГИ | КАТАЛОГ РЕШЕНИЙ | ИНФОРМАЦИОННЫЙ ЦЕНТР | СТАНЬТЕ СПОНСОРАМИ SILICON TAIGA | ISDEF | КНИГИ И CD | ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ | УПРАВЛЕНИЕ КАЧЕСТВОМ | РОССИЙСКИЕ ТЕХНОЛОГИИ | НАНОТЕХНОЛОГИИ | ЮРИДИЧЕСКАЯ ПОДДЕРЖКА | АНАЛИТИКА | КАРТА САЙТА | КОНТАКТЫ

Дизайн и поддержка: Silicon Taiga   Обратиться по техническим вопросам  
Rambler's Top100 Rambler's Top100