Л. Гримзоу
Философия программирования для Windows 95/NT
1997, 640 с., c ил.
Петербургское издательство "Символ" выпустило в серии "Профессионально" перевод капитального труда Лу Гримзоу "Философия программирования для Windows 95/NT".
В России автор известен благодаря публикациям в популярном еженедельнике PC Week RE.
Книга знакомит не столько с процессом создания текстов программ из длинных 32-разрядных слов, сколько с его философией. Будучи профессионалом, уделяющим время и преподаванию, Л. Гримзоу настаивает на необходимости использования в работе как личного опыта в программировании, так и взгляда на него "с высоты 30 000 футов", т. е. с мировоззренческой позиции. Кого же видит автор читателями книги? Прежде всего программистов среднего и более высокого профессионального уровня, желающих перейти с платформы Win16 на Win32, точнее с программирования в среде Windows 3.1 на работу в среде Windows 95/NT. Предполагается, что для этого необходимы навыки программирования на Си/Си++ в среде Windows, а для проверки усвоения материала - умение провести компиляцию и редактирование текстов программ в среде Windows 95 на языке Microsoft Visual C++. При знакомстве с книгой и в дальнейшем при программировании за помощью можно обращаться на сервер http://www.symbol.ru/russian/library/prof_prog, где имеются примеры программ и другие ресурсы.
Структура книги включает введение, четыре части и приложение. Определяя программирование как "ремесло использования разнообразного инструментария (аппаратного обеспечения, программ, исследовательских материалов, вашего собственного опыта и т. д.) в создании уровней абстракции и применении их для решения логических задач", автор во введении представляет собственный подход к программированию, а также призывает, что несколько необычно, к конструктивной критике прочитанного и даже к личным контактам.
Естественно, разговор с читателем о философии программирования начинается с широкого знакомства с Windows 95, причем в основном речь идет идет о макро- и микропроблемах разработки программного обеспечения. В качестве макропроблем рассматриваются стиль программирования, типы программистов ("математики и ювелиры"), "три источника и три составные части качества программы" ("корректность, разумность и услужливость"), и в итоге даются десять макроуровневых рекомендаций, позволяющих достичь успеха. Для разрешения микропроблем предлагаются шесть микроуровневых рекомендаций в отношении степени абстрагирования ("не беспокойтесь о цене вызова функции, пока программа сама не заявит об этом"), повторного использования кода, выделения кода, отвечающего за пользовательский интерфейс собственной программы, и т. п. Завершает первую часть книги глава об инструментах программирования, об их выборе и использовании.
Вторая часть включает главы, в которых рассматриваются проблемы программирования в среде Windows 95/NT, а конкретнее - вопросы создания идиом и использования локальной функции для языка Си/Си++, поиска и размещения динамических библиотек ("разумный этикет применения"), работы с минимизированными Windows-программами, защиты программ от искажений с помощью CRC-кодов ("циклической проверки по избыточности"). Автор не обходит молчанием трудности, возникающие при организации постоянных хранилищ данных, и для их преодоления вводит понятие "умных", т. е. автоматически распознаваемых файлов данных. Для создания "полезных, надежных и переносимых программ" предлагается взять на вооружение инструмент абстрагирования, применения которого весьма разнообразны - от удобных и эффективных локальных программ до специально спроектированных библиотек. Ну и конечно, практика современного программирования не может обойти молчанием вопросы защиты программ - их предлагается писать замкнутыми (доступен только значок), что обеспечивает хотя бы минимальную защиту.
В завершающих частях книги содержатся материалы, дающие представление о переходе от платформы Win16 к Win32, в том числе о проблемах переноса прикладных программ, о длинных именах файлов и разновидностях Win32, а также о программистском инструментарии. В духе времени автор для своих читателей устраивает своеобразный "хит-парад" таких средств.
В приложении автор приводит пример программы (почти на 40 страницах!), включающей большинство из описанных приемов.
Книга информативна, написана с уважением к читателю, с достаточно критическим отношением автора к собственному опыту и уже поэтому должна иметь успех.