BitTorrent Трекер RusTrek.ru
http://5.45.70.241/

Stefanov S. / Стефанов С. - JavaScript. Шаблоны / JavaScript Patterns [2011, DjVu, RUS]
http://5.45.70.241/viewtopic.php?f=290&t=25455
Страница 1 из 1

Автор:  Релизер [ 2011-11-23 21:41 ]
Заголовок сообщения:  Stefanov S. / Стефанов С. - JavaScript. Шаблоны / JavaScript Patterns [2011, DjVu, RUS]

JavaScript. Шаблоны / JavaScript Patterns
#777
Год: 2011
Автор: Stoyan Stefanov / Стоян Стефанов
Переводчик: А. Киселев
Жанр: Компьютерный (Веб-дизайн)
Издательство: O'REILLY, Символ-Плюс
ISBN: 978-5-93286-208-7
Серия: O'REILLY
Язык: Русский
Формат: DjVu
Качество: Отсканированные страницы + слой распознанного текста
Количество страниц: 265
Описание: Разработчики серверных, клиентских или настольных приложений на javascript нередко сталкиваются с проблемами, связанными с объектами, функциями, наследованием и другими особенностями этого языка. Какие же приемы разработки приложений на javascript являются наиболее удачными? Данная книга дает ответ на этот вопрос, предлагая большое количество различных шаблонов программирования на javascript, таких как "единственный объект" (singleton), "фабрика" (factory), "декоратор" (decorator) и другие. Можно сказать, что они являются не только методами решения наиболее типичных задач разработки ПО, но и заготовками решений для целых категорий таких задач.
Использование шаблонов при программировании на языке javascript имеет свои особенности. Некоторые из них, разработанные с позиций языков со строгим контролем типов, таких как C++ и Java, не могут непосредственно применяться в языках с динамической типизацией, таких как javascript. Для таких шаблонов в языке javascript имеются более простые альтернативы.
Написанная экспертом по языку javascript Стояном Стефановым - ведущим специалистом компании Yahoo! и создателем инструмента оптимизации производительности веб-страниц YSlow 2.0, - книга включает практические советы по реализации каждого из рассматриваемых шаблонов с примерами программного кода. Автор также приводит антишаблоны - приемы программирования, которых следует по возможности избегать.



Предисловие 13
Глава 1. Введение 19
Шаблоны 19
JavaScript концепции 21
- JavaScript - объектно-ориентированный язык 21
- В JavaScript отсутствуют классы 22
- Прототипы 23
- Среда выполнения 23
ECMAScript 5 24
JSLint 25
Консоль 26
Глава 2. Основы 28
Создание простого в сопровождении программного кода 28
Минимизация количества глобальных переменных 30
- Проблемы, связанные с глобальными переменными 30
- Побочные эффекты, возникающие в отсутствие объявления var 32
- Доступ к глобальному объекту 33
- Шаблон единственной инструкции var 33
- Подъем: проблемы с разбросанными переменными 34
Циклы for 36
Циклы for-in 38
Расширение встроенных прототипов (в том числе нежелательное) 41
Шаблон switch 42
Избегайте неявного приведения типов 42
- Не используйте eval() 43
Преобразование строки в число
с помощью parselnt() 45
Соглашения по оформлению программного кода 46
- Отступы 46
- Фигурные скобки 47
- Местоположение открывающей скобки 48
- Пробелы 49
Соглашения по именованию 51
- Заглавные символы в именах конструкторов 51
- Выделение слов 51
- Другие шаблоны именования 52
Комментарии 53
Документирование API 54
- Пример использования YUIDoc 55
Пишите так, чтобы можно было читать 59
Оценка коллегами 60
Сжатие... при подготовке к эксплуатации 60
Запуск JSLint 61
В заключение 62
Глава 3. Литералы и конструкторы 64
Литералы объектов 64
- Синтаксис литералов объектов 66
- Создание объектов с помощью конструкторов 66
- Недостатки конструктора Object 67
Собственные функции-конструкторы 68
- Значения, возвращаемые конструкторами 69
Шаблоны принудительного использования new 70
- Соглашения по именованию 71
- Использование ссылки that 71
- Конструкторы, вызывающие сами себя 72
Литералы массивов 73
- Синтаксис литералов массивов 73
- Странности конструктора Array 73
- Проверка массивов 74
JSON 75
- Обработка данных в формате JSON 76
Литералы регулярных выражений 77
- Синтаксис литералов регулярных выражений 77
Объекты-обертки значений простых типов 79
Объекты Error 80
В заключение 81
Глава 4. Функции 83
Основы 83
- Устранение неоднозначностей в терминологии 85
- Объявления и выражения: именаи подъем 86
- Свойство name функций 87
- Подъем функций 88
Функции обратного вызова 89
- Пример использования функции обратного вызова 90
- Функции обратного вызова и их области видимости 92
- Обработчики асинхронных событий 94
- Предельное время ожидания 94
- Функции обратного вызова в библиотеках 95
Возвращение функций 95
Самоопределяемые функции 96
Немедленно вызываемые функции 98
- Параметры немедленно вызываемых функций 99
- Значения, возвращаемые немедленно вызываемыми функциями 100
- Преимущества и особенности использования 101
Немедленная инициализация объектов 102
Выделение ветвей, выполняющихся на этапе инициализации ... 104
Свойства функций - шаблон мемоизации 106
Объекты с параметрами 108
Каррирование 109
- Применение функций 109
- Частичное применение 110
- Каррирование 112
- Когда использовать каррирование 115
В заключение 115
Глава 5. Шаблоны создания объектов 117
Пространство имен 117
- Универсальная функция для создания пространства имен 119
Объявление зависимостей 121
Частные свойства и методы 123
- Частные члены 123
- Привилегированные методы 124
- Нежелательный доступ к частным членам 124
- Частные члены и литералы объектов 126
- Частные члены и прототипы 126
- Объявление частных функций общедоступными методами 127
Шаблон «модуль» 129
- Шаблон открытия модуля 131
- Модули, создающие конструкторы 132
- Импортирование глобальных переменных в модули 133
Шаблон изолированного пространства имен 133
- Глобальный конструктор 134
- Добавление модулей 135
- Реализация конструктора 136
Статические члены 138
- Общедоступные статические члены 138
- Частные статические члены 140
Объекты-константы 142
Шаблон цепочек 144
- Достоинства и недостатки шаблона цепочек 145
Метод method() 145
В заключение 147
Глава 6. Шаблоны повторного использования программного кода 148
Классические и современные шаблоны наследования 149
Ожидаемый результат при использовании классического наследования 150
Классический шаблон №1: шаблон по умолчанию 150
- Обход цепочки прототипов 151
- Недостатки шаблона № 1 153
Классический шаблон №2: заимствование конструктора 154
- Цепочка прототипов 155
- Множественное наследование при заимствовании конструкторов 157
- Достоинства и недостатки шаблона заимствования конструктора 157
Классический шаблон №3: заимствование и установка прототипа 158
Классический шаблон №4: совместное использование прототипа 159
Классический шаблон №5: временный конструктор 160
- Сохранение суперкласса 162
- Установка указателя на конструктор 162
Функция klass() 163
Наследование через прототип 166
- Обсуждение 168
- Дополнения в стандарте ECMAScript 5 169
Наследование копированием свойств 169
Смешивание 171
Заимствование методов 173
- Пример: заимствование методов массива 173
- Заимствование и связывание 174
- Function.prototype.bind() 176
В заключение 176
Глава 7. Шаблоны проектирования 178
Единственный объект 178
- Использование оператора new 179
- Экземпляр в статическом свойстве 180
- Экземпляр в замыкании 181
Фабрика 184
- Встроенная фабрика объектов 186
Итератор 187
Декоратор 189
- Пример использования 189
- Реализация 190
- Реализация с использованием списка 193
Стратегия 194
- Пример проверки данных 195
Фасад 198
Прокси-объект 199
- Пример 200
- Прокси-объект как кэш 209
Посредник 209
- Пример использования шаблона посредника 210
Наблюдатель 213
- Пример 1: подписка на журнал 214
- Пример 2: игра на нажатие клавиш 217
В заключение 221
Глава 8. Шаблоны для работы с деревом DOM и броузерами 223
Разделение на составные части 223
Работа с деревом DOM 225
- Доступ к дереву DOM 225
- Манипулирование деревом DOM 227
События 228
- Обработка событий 229
- Делегирование событий 231
Сценарии, работающие продолжительное время 233
- setTimeout() 233
- Фоновые вычисления (web workers) 234
Удаленные взаимодействия 235
- XMLHttpRequest 235
- Формат JSONP 237
- Обмен данными с использованием фреймов и изображений 240
Развертывание сценариев JavaScript 241
- Объединение сценариев 241
- Сжатие и компрессия 242
- Заголовок Expires 243
- Использование CDN 243
Стратегии загрузки 244
- Местоположение элемента 244
- Фрагментирование средствами HTTP 246
- Динамические элементы для неблокирующей загрузки сценариев 247
- Отложенная загрузка 249
- Загрузка по требованию 250
Предварительная загрузка сценариев JavaScript 252
В заключение 254
Алфавитный указатель 256

Страница 1 из 1 Часовой пояс: UTC + 3 часа
Powered by phpBB® Forum Software © phpBB Group
https://www.phpbb.com/