Dart в действии
Покупка
Тематика:
Программирование и алгоритмизация
Издательство:
ДМК Пресс
Автор:
Бакетт Крис
Год издания: 2023
Кол-во страниц: 530
Дополнительно
Вид издания:
Практическое пособие
Уровень образования:
Профессиональное образование
ISBN: 978-5-89818-314-1
Артикул: 816351.01.99
Dart — язык программирования для разработки веб-приложений, созданный компанией Google. Он обладает современными объектно-ориентированными средствами, как Java или C#, не отказываясь при этом от свойственных JavaScript динамичности и ориентированности на функциональное программирование. Написанные на Dart приложения транслируются в JavaScript, но могут исполняться и непосредственно в браузерах, поддерживающих Dart. В комплекте с Dart поставляются библиотеки и инструментальные средства промышленного качества. На Dart могут быть написаны как клиентская, так и серверная часть приложения, что упрощает процесс разработки.
В этой книге вы познакомитесь с языком Dart и научитесь использовать его для создания приложений, работающих в браузере, — в настольной или мобильной ОС. Это не просто учебное пособие по языку, довольно быстро автор переходит к техническим аспектам работы с Dart. На большинство вопросов, возникающих при чтении, тут же даются ответы! Издание предназначено веб-программистам разной квалификации, в том числе малознакомым с объектно-ориентированным программированием.
- Полная коллекция по информатике и вычислительной технике
- Веб-разработка
- ДМК Пресс. Информационные системы и технологии
- ДМК Пресс. ИТ-технологии для профессионалов
- Интермедиатор. Информационные системы и технологии (сводная)
- Интермедиатор. ИТ-технологии для профессионалов (сводная)
- Мобильная разработка
- Программирование
- Программирование и алгоритмизация
Тематика:
ББК:
УДК:
ОКСО:
- ВО - Бакалавриат
- 02.03.02: Фундаментальная информатика и информационные технологии
- 09.03.01: Информатика и вычислительная техника
- 09.03.02: Информационные системы и технологии
- 09.03.04: Программная инженерия
- 10.03.01: Информационная безопасность
ГРНТИ:
Скопировать запись
Фрагмент текстового слоя документа размещен для индексирующих роботов
Dart в действии Крис Баккет
Dart in Action CHRIS BUCKETT M A N N I N G Shelter Island
Dart в действии Москва, 2023 Крис Баккет С предисловием Сета Лэдда 2-е издание, электронное
УДК 004Dart ББК 32.973-018.2 Б19 Б19 Бакетт, Крис. Dart в действии / К. Бакетт ; пер. с англ. — 2-е изд., эл. — 1 файл pdf : 530 с. — Москва : ДМК Пресс, 2023. — Систем. требования: Adobe Reader XI либо Adobe Digital Editions 4.5 ; экран 10". — Текст : электронный. ISBN 978-5-89818-314-1 Dart — язык программирования для разработки веб-приложений, созданный компанией Google. Он обладает современными объектно-ориентированными средствами, как Java или C#, не отказываясь при этом от свойственных JavaScript динамичности и ориентированности на функциональное программирование. Написанные на Dart приложения транслируются в JavaScript, но могут исполняться и непосредственно в браузерах, поддерживающих Dart. В комплекте с Dart поставляются библиотеки и инструментальные средства промышленного качества. На Dart могут быть написаны как клиентская, так и серверная часть приложения, что упрощает процесс разработки. В этой книге вы познакомитесь с языком Dart и научитесь использовать его для создания приложений, работающих в браузере, — в настольной или мобильной ОС. Это не просто учебное пособие по языку, довольно быстро автор переходит к техническим аспектам работы с Dart. На большинство вопросов, возникающих при чтении, тут же даются ответы! Издание предназначено веб-программистам разной квалификации, в том числе малознакомым с объектно-ориентированным программированием. УДК 004Dart ББК 32.973-018.2 Электронное издание на основе печатного издания: Dart в действии / К. Бакетт ; пер. с англ. — Москва : ДМК Пресс, 2013. — 528 с. — ISBN 978-5-94074-918-9. — Текст : непосредственный. Все права защищены. Любая часть этой книги не может быть воспроизведена в какой бы то ни было форме и какими бы то ни было средствами без письменного разрешения владельцев авторских прав. Материал, изложенный в данной книге, многократно проверен. Но поскольку вероятность технических ошибок все равно существует, издательство не может гарантировать абсолютную точность и правильность приводимых сведений. В связи с этим издательство не несет ответственности за возможные ошибки, связанные с использованием книги. В соответствии со ст. 1299 и 1301 ГК РФ при устранении ограничений, установленных техническими средствами защиты авторских прав, правообладатель вправе требовать от нарушителя возмещения убытков или выплаты компенсации. ISBN 978-5-89818-314-1 © 2013 by Manning Publications Co. © Оформление, перевод ДМК Пресс, 2013
Содержание Предисловие ....................................................................... 14 Вступление .......................................................................... 16 Благодарности ................................................................... 18 Об этой книге ...................................................................... 20 Об иллюстрации на обложке ........................................... 25 ЧАСТЬ I. ВВЕДЕНИЕ В DART ............................................. 26 Глава 1. Здравствуй, Dart ................................................ 27 1.1. Что такое Dart? ................................................................. 27 1.1.1. Знакомый синтаксис помогает в освоении языка ...... 29 1.1.2. Архитектура одностраничного приложения ............... 30 1.2. Первый взгляд на язык Dart ............................................... 32 1.2.1. Строковая интерполяция ........................................... 32 1.2.2. Факультативные типы в действии .............................. 34 1.2.3. Традиционная структура на основе классов............... 36 1.2.4. Определение подразумеваемого интерфейса ........... 38 1.2.5. Фабричные конструкторы для предоставления реализации по умолчанию .................................................. 39 1.2.6. Библиотеки и область видимости .............................. 40 1.2.7. Функции как полноценные объекты ........................... 43 1.2.8. Параллелизм с помощью изоляторов ........................ 45 1.3. Веб-программирование на языке Dart .............................. 46 1.3.1. dart:html: удобная библиотека для работы с моделью DOM браузера ................................................... 47 1.3.2. Dart и HTML5 ............................................................. 48 1.4. Инструментальная экосистема Dart .................................. 50 1.4.1. Редактор Dart ............................................................ 50 1.4.2. Виртуальная машина Dart .......................................... 51 1.4.3. Dartium ...................................................................... 51 1.4.4. dart2js: конвертер Dart в JavaScript ............................ 51
Содержание 1.4.5. Управление пакетами с помощью pub ....................... 52 1.5. Резюме ............................................................................. 53 Глава 2. Программа «Здравствуй, мир» на Dart .......... 54 2.1. ВМ Dart для командных приложений ................................. 55 2.2. Программа «Здравствуй, мир» в редакторе Dart ............... 57 2.2.1. Знакомство с инструментами, встроенными в Редактор Dart Editor ......................................................... 58 2.2.2. Dart-скрипты и HTML-файлы ..................................... 61 2.2.3. Запуск приложения «Здравствуй, мир» в Dartium ....... 62 2.2.4. Использование dart2js для конвертации в JavaScript ......................................................................... 63 2.2.5. Генерация документации с помощью dartdoc ............ 66 2.2.6. Отладка Dart-кода с помощью точек останова ........... 66 2.3. Импорт библиотек для работы с пользовательским интерфейсом в браузере ......................................................... 68 2.3.1. Импорт библиотек Dart .............................................. 69 2.3.2. Доступ к элементам DOM с помощью dart:html .......... 70 2.3.3. Динамическое добавление новых элементов на страницу ........................................................................ 71 2.4. Резюме ............................................................................. 72 Глава 3. Создание и тестирование Dart-приложения ............................................................... 74 3.1. Конструирование пользовательского интерфейса с помощью dart:html ................................................................ 75 3.1.1. Начальный HTML-файл .............................................. 76 3.1.2. Создание элементов с помощью dart:html ................. 77 3.1.3. Создание экземпляра Element из фрагмента HTML ... 78 3.1.4. Создание элементов по имени тега ........................... 80 3.1.5. Добавление элементов в HTML-документ .................. 82 3.2. Добавление интерактивности с помощью событий браузера ................................................................................. 86 3.2.1. Добавление предмета в список по нажатии кнопки ... 86 3.2.2. Применение гибкого синтаксиса функций в Dart для обработки событий ....................................................... 87 3.2.3. Реагирование на события браузера........................... 90 3.2.4. Рефакторинг прослушивателя событий для повторного использования ........................................... 91
Содержание 3.2.5. Запрос HTML-элементов в dart:html .......................... 92 3.3. Инкапсуляция структуры и функциональности с помощью классов .................................................................... 95 3.3.1. Классы в Dart не таят неожиданностей ...................... 96 3.3.2. Конструирование класса PackItem ............................. 97 3.3.3. Инкапсуляция функциональности с помощью методов чтения и установки ................................................ 99 3.4. Автономное тестирование программы ............................ 103 3.4.1. Создание автономных тестов .................................. 105 3.4.2. Определение ожидаемых результатов теста ........... 106 3.4.3. Создание пользовательского сравнивателя ............ 107 3.5. Резюме ........................................................................... 109 ЧАСТЬ II. ЯЗЫК DART ....................................................... 111 Глава 4. Функции и замыкания ..................................... 112 4.1. Функции в Dart ................................................................ 113 4.1.1. Тип возвращаемого функцией значения и ключевое слово return .................................................... 116 4.1.2. Передача функции данных с помощью параметров ...................................................................... 119 4.2. Функции как полноценные объекты ................................. 126 4.2.1. Объявления локальных функций .............................. 128 4.2.2. Определение строгого типа функции ...................... 134 4.3. Замыкания ...................................................................... 137 4.4. Резюме ........................................................................... 140 Глава 5. Библиотеки и ограничение доступа ............. 142 5.1. Определение и импорт библиотеки ................................ 143 5.1.1. Определение библиотеки с помощью ключевого слова library ...................................................................... 145 5.1.2. Импорт библиотек ................................................... 147 5.2. Сокрытие функциональности путем ограничения доступа к частям библиотеки ................................................ 155 5.2.1. Ограничение доступа в классах ............................... 157 5.2.2. Использование закрытых функций в библиотеках.... 162 5.3. Организация исходного кода библиотеки ....................... 163 5.3.1. Ключевые слова part и part of ................................... 164 5.4. Упаковка библиотек ........................................................ 168
Содержание 5.5. Скрипты – это исполняемые библиотеки ........................ 171 5.6. Резюме ........................................................................... 173 Глава 6. Классы и интерфейсы ..................................... 175 6.1. Определение простого класса ........................................ 176 6.1.1. Программирование относительно интерфейса класса............................................................................... 177 6.1.2. Формализация интерфейса путем явного его определения ............................................................... 180 6.1.3. Реализация нескольких интерфейсов ...................... 181 6.1.4. Объявление акцессоров свойств ............................. 182 6.2. Конструирование классов и интерфейсов ....................... 184 6.2.1. Конструирование экземпляров класса .................... 185 6.2.2. Проектирование и использование классов с несколькими конструкторами ......................................... 187 6.2.3. Использование фабричных конструкторов для создания экземпляров абстрактных классов .............. 187 6.2.4. Применение фабричных конструкторов для повторного использования объектов .......................... 190 6.2.5. Использование статических методов и свойств совместно с фабричными конструкторами ....................... 191 6.3. Создание константных классов с неизменяемыми полями .................................................................................. 194 6.3.1. Финальные значения и свойства ............................. 195 6.3.2. Блок инициализации конструктора .......................... 195 6.3.3. Использование ключевого слова const для создания константного конструктора ......................... 196 6.4. Резюме ........................................................................... 197 Глава 7. Расширение классов и интерфейсов .......... 199 7.1. Расширение классов с помощью наследования .............. 200 7.1.1. Наследование класса .............................................. 201 7.1.2. Наследование конструкторов .................................. 203 7.1.3. Переопределение методов и свойств ...................... 205 7.1.4. Включение абстрактных классов в иерархию наследования ................................................................... 206 7.2. Все является объектом ................................................... 210 7.2.1. Проверка отношения «является» Object ................... 210 7.2.2. Использование отношения «является» применительно к Object .................................................... 212
Содержание 7.2.3. Использование метода toString(), унаследованного от класса Object .................................... 213 7.2.4. Перехват обращений к методу noSuchMethod() ....... 215 7.2.5. Прочая функциональность класса Object ................. 218 7.3. Знакомство с типом dynamic ........................................... 219 7.3.1. Использование аннотации типа dynamic .................. 220 7.4. Резюме ........................................................................... 221 Глава 8. Классы коллекций ............................................ 223 8.1. Работа с коллекциями данных ......................................... 224 8.1.1. Коллекции объектов ................................................ 226 8.1.2. Использование конкретных реализаций интерфейса Collection ....................................................... 230 8.1.3. Создание специализированных коллекций с помощью обобщенных типов .......................................... 233 8.1.4. Хранение списков пар ключ–значение в обобщенных словарях .................................................... 237 8.2. Создание обобщенных классов ...................................... 242 8.2.1. Определение обобщенного класса .......................... 242 8.2.2. Использование своего обобщенного класса............ 244 8.2.3. Ограничения на параметрические типы ................... 245 8.3. Перегрузка операторов .................................................. 246 8.3.1. Перегрузка операторов сравнения .......................... 247 8.3.2. Неожиданное применение перегрузки операторов ....................................................................... 249 8.3.3. Перегрузка операторов доступа по индексу ............ 249 8.4. Резюме ........................................................................... 252 Глава 9. Асинхронное программирование с применением обратных вызовов и будущих значений ............................................................................ 254 9.1. Почему веб-приложение должно быть асинхронным ....... 256 9.1.1. Преобразование приложения в асинхронное .......... 259 9.2. Использование обратных вызовов в асинхронном программировании ............................................................... 263 9.2.1. Добавление асинхронных обратных вызовов в Лотерею Dart .................................................................. 265 9.2.2. Ожидание завершения всех асинхронных обратных вызовов перед продолжением .......................... 266
Содержание 9.2.3. Вложенные обратные вызовы как средство управления порядком асинхронного выполнения ............. 269 9.3. Знакомство с типами Future и Completer ......................... 271 9.3.1. Передача будущих значений из одного места программы в другое ......................................................... 274 9.3.2. Упорядочение асинхронных вызовов путем сцепления будущих значений ........................................... 275 9.3.3. Ожидание завершения всех запущенных операций получения будущих значений ............................ 276 9.3.4. Преобразование обычных значений в будущие ....... 278 9.4. Автономное тестирование асинхронных API .................... 280 9.4.1. Тестирование асинхронных функций обратного вызова .............................................................................. 282 9.4.2. Тестирование будущих значений ............................. 283 9.5. Резюме ........................................................................... 285 ЧАСТЬ III. КЛИЕНТСКИЕ DART-ПРИЛОЖЕНИЯ ........... 287 Глава 10. Создание веб-приложения на Dart ............ 288 10.1. Структура одностраничного веб-приложения ............... 289 10.1.1. Приложение DartExpense – постановка задачи ...... 290 10.1.2. Структура Dart-приложения ................................... 293 10.1.3. Поток выполнения в Dart-приложении ................... 296 10.2. Конструирование пользовательского интерфейса с помощью dart:html .............................................................. 299 10.2.1. Интерфейс Element ............................................... 299 10.2.2. Конструкторы элементов в действии ..................... 303 10.2.3. Организация взаимодействия с представлениями и элементами .................................... 305 10.2.4. Построение простой обобщенной сетки ................ 309 10.3. Обработка браузерных событий с помощью dart:html ... 313 10.3.1. Управление порядком прохождения события в браузере ........................................................................ 315 10.3.2. Наиболее распространенные типы событий .......... 317 10.4. Резюме ......................................................................... 319 Глава 11. Навигация и локальное хранение данных ................................................................................ 321 11.1. Интеграция навигации с браузером .............................. 323