Математика | ||||
Философия программирования для Windows 95/NT-Гринзоу Л. СПб.:Символ-Плюс, 1997. - 640 с.: ил | ||||
Гринзоу Л.
Г85 Философия программирования для Windows 95/NT — Пер. с англ. — СПб.:Символ-Плюс, 1997. - 640 с.: ил ISBN 5-89051-005-3 Эта книга — не кратким обзор Windows 95 и не полным справочник по Windows 95 API. Это совершенно удивительное сочетание философского взгляда на программирование и практических советов по разработке Windows-ирнложепий и ведению крупных проектов. Программист любого уровня, пишущий иод Windows, прочтет эту книгу с наслаждением. С се помощью вы постигнете тайну «Великого Каньона», который пролег между Windows 3.1, Windows NT, Win32 и Windows 95, и увидите как па ладони подводные камни при переходе от 1С-разрядиой к 32-разрядной Windows. Изложенный здесь материал принадлежит перу Лу Грпилоу, одного из ведущих специалистов в области программирования для Windows. Профессиональный подход и способность проникнуть и суть дела часто делают его публикации центральной темой таких изданий, как PC WEEK, PC TECHNIQUES, Dr. Dobbs Journal, Software Development и Windows Tech Journal. Содержание Для кого предназначена эта книга?........................13 Что мне необходимо знать и иметь?........................13 Что ждет вас в WWW-библиотеке?........................13 Благодарность......................................14 Введение Что такое «программирование»?..........................17 Мой подход........................................20 Мои предположения относительно вас......................21 Что вы найдете в этой книге.............................23 Приложенный код....................................25 Чего вы не найдете в этой книге..........................25 Нахальная вставка...................................26 Не оставайтесь в стороне...............................26 Часть L Основы Глава 1. Добро пожаловать в реальный мир................31 Windows 95 крупным планом............................32 Публичные и приватные программы.......................33 Насколько публичное публично?.....................34 Этика и метафоры...............................35 Знакомьтесь: это ваши пользователи...................36 Игры, в которые играют люди.......................37 Любовь приходит и уходит, а программы остаются.........40 Как не следует относиться к пользователям-новичкам.......41 Как нужно относиться к пользователям — новичкам и гуру . . 43 Глава 2. Философия разработки программного обеспечения для Windows: макропроблемы................47 Стиль............................................47 Математики и ювелиры...............................49 Три источника и три составные части качества программы........51 Корректность .................................. 51 Разумность....................................53 Услужливость..................................55 Примеры с придирками: что такое «хорошо» и что такое «плохо»..............................57 Десять макроуровневых рекомендаций.....................63 0. Имейте широкий взгляд на мир и планируйте на будущее . . 64 1. Стремитесь к балансу во всех решениях..............72 2. Сделайте принцип KISS вашей религией..............77 3. You(Now) != You(Later).........................79 4. Уважайте ресурсы вашего пользователя..............85 5. Используйте DLL осторожно......................90 6. Придерживайтесь широкого взгляда на инструментарий ... 90 7. Не забывайте о производительности.................92 8. Не забывайте о тестировании......................97 9. Думайте о повторном использовании кода............100 Глава 3. Философия разработки программного обеспечения для Windows: микропроблемы...............105 Шесть микроуровневых рекомендаций....................106 10. Абстрагируйтесь, абстрагируйтесь и снова абстрагируйтесь (и не беспокойтесь о цене вызова функции, пока программа сама не заявит об этом)..............................108 11. Применяйте оборонительное программирование....... 109 Что такое «оборонительное программирование»?......... 109 Природа предположений......................... 110 «Доверяй, но проверяй».......................... 112 Оборонительное программирование и повторное использование кода....................117 Содержание 12. Выделяйте код, отвечающий за пользовательский интерфейс вашей программы.............................. 136 13. Используйте умные файлы данных................ 138 14. Элегантно реагируйте на сюрпризы со стороны........ 140 15. Остерегайтесь противоестественных действий..........142 Глава 4. Инструменты................................ 147 Что такое «инструмент программирования» и почему он так важен. 148 Рекомендации по выбору и использованию инструментов....... 150 0. Исследуйте и эксплуатируйте.................... 150 1. Добивайтесь симбиоза ваших инструментов........... 153 2. Не разбрасывайтесь и не переоценивайте свои силы..... 155 3. Не будьте слишком доверчивы к вашим поставщикам .... 156 4. Разумно эксплуатируйте публичные исходные коды..... 157 5. Не влюбляйтесь в ваш новый блестящий молоток....... 159 Типы инструментов................................. 160 Справочные материалы.......................... 161 Компиляторы и языки программирования.............. 164 C/C++: системный язык, используемый в качестве прикладного . . 166 Миф о переносимости........................... 169 C/C++ и определяемые пользователем типы............ 170 Аттестации, аттестации и еще раз аттестации............ 171 И чтобы не забыть............................... 173 Если Pascal так прекрасен.............................. 175 Как жить с C++?............................... 177 Каркасные библиотеки........................... 178 Добавления и аксессуары......................... 179 Третьесторонние библиотеки и компоненты............. 179 Третьесторонние отладчики ....................... 180 Системы управления версиями..................... 180 Инсталляционные программы...................... 181 Часть II. Itpakmuka Глава 5. Идиома локальной функции.................... 195 Локальные функции: Pascal реализует их так, как надо........ 196 Шаг 1: грубый перенос на С........................... 199 Шаг 2: C++ и идиома локальной функции.................. 201 Реальное применение идиомы.......................... 206 Альтернативы и надежды............................. 208 Глава 6. Как жить с DLL.............................. 209 Отчаянный поиск DLL............................... 210 Кто загружается первым?............................. 213 Спасет ли нас Win32?............................... 215 Этикет разумного применения динамических библиотек........ 217 Используйте DLL только при необходимости........... 218 Правильно располагайте DLL...................... 219 Старые времена................................ 220 Новые времена................................ 223 Загружайте все DLL явно......................... 227 Пример: Hello .................................... 230 Глава 7. Минимизированные Windows-программы: вселенная внутри значка.............................. 239 Разновидности минимизированных программ................ 240 Механика минимизированных программ................ 241 ...и как Windows 95 поменяла правила игры............ 247 DROP1 и DROP2.................................. 259 Не бойтесь и минимизируйте........................... 259 Глава 8. Защита программ от искажений................. 263 Добро пожаловать в наш кошмар........................ 263 Что вы сможете сделать, а чего не сможете............. 265 Спасение в CRC............................... 266 В поисках места для тайника...................... 267 SELFCHCK и PATCHER............................. 269 Реализация самопроверки в вашей программе............... 276 Вперед, вычисляйте CRC............................. 279 Глава 9. Умные файлы данных......................... 283 Для чего используются постоянные хранилища данных......... 284 Содержание_________________________________________" Системные данные.............................. 284 Настройки приложения.......................... 285 Документы приложения.......................... 286 Основные формы постоянного хранения данных............. 286 lNI-файлы................................... 288 Реестр Windows............................... 291 Специальные бинарные файлы..................... 293 Умные файлы данных............................... 295 Пример хранения конфигурационных данных............... 305 Глава 10. Абстрагирование в действии: создание своих виртуальных машин............................. 317 Зачем это надо?.................................... 317 «Доверят!), но проверять» пли «асфальтировать»?............ 322 Три степени абстрагирования........................... 326 Искусство Абстрагирования............................ 334 Win32 API: бинарный келышнбол?.................. 341 Е Pluribus Unum................................... 353 Глава 11. Сделайте вашу программу замкнутой............ 355 Зачем нужна минимальная защита?...................... 356 Защищать или не защищать?....................... 356 Базовая модель, дубль первый.......................... 357 Базовая модель, дубль второй...................... 359 Как сделать замкнутой существующую программу........ 365 Проблемы безопасности.............................. 367 Что бы еще замкнуть сегодня?.......................... 370 Часть Iff. BeAukuu перевал Глава 12. Из Winl6 в Win32........................... 373 Что такое Windows 95 с точки зрения прикладного программиста. . 374 Winl61ock................................... 379 Изменение типов данных......................... 381 Что значит изменение размеров типов для программистов . . . 385 Перенос 16-бптового кода на Windows 95.................. 387 Выбор стратегии переноса......................... 388 Великие неизвестные................................ 402 «Ужастики»...................................... 407 Проверка номера версии: не все так просто............. 408 GDI обрезает координаты до двух байт............... 409 Ограничения значений cbWndExtra и cbClsExtra......... 410 Формат результата GetOpenFileNameO............... 411 Где искать ассоциации?.......................... 413 Проблемы с перетаскиванием...................... 414 Арр Paths срабатывает для 16-разрядных программ лишь наполовину............................... 416 Функция GetFreeSystemResourcesO пропала в Win32...... 417 Ау, кто стянул мой значок?....................... 419 Диалоги масштабируются по-разному................. 419 Доступ к lNl-файлам............................ 420 Norton Navigator 1.0 и вы............................. 421 Глава 13. Не слишком краткая лекция о длинных именах файлов............................. 429 Обзор основных свойств длинных имей и псевдонимов......... 430 ...и что это означает............................. 432 Хранение длинных имен.......................... 433 «Длинные имена файлов как параметры командной строкп.ЕХЕ».......................... 435 Становится только хуже и хуже.................... 441 Что делать?.................................. 443 Крайние меры................................. 444 Хорошие новости................................... 446 Ради Бога, не забывайте о человеческом факторе!........ 446 Ждите ошибок, ждите ошибок....................... 447 Ну что ж, умники, и как же, uo-вашему, Microsoft должна была реализовать длинные имена файлов?........ 450 Глава 14. Разновидности Win32........................ 453 Почему Win32 != Win32 != Win32....................... 454 Документация, документация и снова документация....... 457 Цена: 300руб. |
||||