Dart в действии

ПредисловиеВступлениеБлагодарностиОб этой книгеОб иллюстрации на обложкеВВЕДЕНИЕ В DARTЗдравствуй, DartЧто такое Dart?Знакомый синтаксис помогает в освоении языкаАрхитектура одностраничного приложенияПервый взгляд на язык DartСтроковая интерполяцияФакультативные типы в действииТрадиционная структура на основе классовОпределение подразумеваемого интерфейсаФабричные конструкторы для предоставления реализации по умолчаниюБиблиотеки и область видимостиФункции как полноценные объектыПараллелизм с помощью изоляторовВеб-программирование на языке Dartdartihtml: удобная библиотека для работы с моделью DOM браузераDart и HTML5Инструментальная экосистема DartРедактор DartВиртуальная машина DartDartiumdart2js: конвертер Dart в JavaScriptУправление пакетами с помощью pubРезюмеПрограмма «Здравствуй, мир» на DartВМ Dart для командных приложенийПрограмма «Здравствуй, мир» в редакторе DartЗнакомство с инструментами, встроенными в Редактор Dart EditorDart-скрипты и HTML-файлыЗапуск приложения «Здравствуй, мир» в DartiumИспользование dart2js для конвертации в JavaScriptГенерация документации с помощью dartdocОтладка Dart-кода с помощью точек остановаИмпорт библиотек для работы с пользовательским интерфейсом в браузереИмпорт библиотек DartДоступ к элементам DOM с помощью dart:htmlДинамическое добавление новых элементов на страницуРезюмеСоздание и тестирование Dart-приложенияКонструирование пользовательского интерфейса с помощью dart:htmlСоздание экземпляра Element из фрагмента HTMi____78 3.1.4. Создание элементов по имени тегаДобавление элементов в HTML-документДобавление интерактивности с помощью событий браузераДобавление предмета в список по нажатии кнопкиПрименение гибкого синтаксиса функций в Dart для обработки событийРеагирование на события браузераРефакторинг прослушивателя событий для повторного использованияЗапрос HTML-элементов в dart:htmlИнкапсуляция структуры и функциональности с помощью классовКлассы в Dart не таят неожиданностейКонструирование класса PackltemИнкапсуляция функциональности с помощью методов чтения и установкиАвтономное тестирование программыСоздание автономных тестовОпределение ожидаемых результатов тестаСоздание пользовательского сравнивателяРезюмеЯЗЫК DARTФункции и замыканияФункции в DartТип возвращаемого функцией значения и ключевое слово returnПередача функции данных с помощью параметровФункции как полноценные объектыОбъявления локальных функцийОпределение строгого типа функцииЗамыканияРезюмеБиблиотеки и ограничение доступаОпределение и импорт библиотекиОпределение библиотеки с помощью ключевого слова libraryИмпорт библиотекСокрытие функциональности путем ограничения доступа к частям библиотекиОграничение доступа в классахИспользование закрытых функций в библиотекахОрганизация исходного кода библиотекиКлючевые слова part и part ofУпаковка библиотекСкрипты - это исполняемые библиотекиРезюмеКлассы и интерфейсыОпределение простого классаПрограммирование относительно интерфейса классаФормализация интерфейса путем явного его определенияРеализация нескольких интерфейсовОбъявление акцессоров свойствКонструирование классов и интерфейсовКонструирование экземпляров классаПроектирование и использование классов с несколькими конструкторамиИспользование фабричных конструкторов для создания экземпляров абстрактных классовПрименение фабричных конструкторов для повторного использования объектовИспользование статических методов и свойств совместно с фабричными конструкторамиСоздание константных классов с неизменяемыми полямиФинальные значения и свойстваБлок инициализации конструктораИспользование ключевого слова const для создания константного конструктораРезюмеРасширение классов и интерфейсовРасширение классов с помощью наследованияНаследование классаНаследование конструкторовПереопределение методов и свойствВключение абстрактных классов в иерархию наследованияВсе является объектомИспользование отношения «является» применительно к ObjectИспользование метода toStringO, унаследованного от класса ObjectПерехват обращений к методу noSuchMethod()Прочая функциональность класса ObjectЗнакомство с типом dynamicИспользование аннотации типа dynamicРезюмеКлассы коллекцийРабота с коллекциями данныхКоллекции объектовИспользование конкретных реализаций интерфейса CollectionСоздание специализированных коллекций с помощью обобщенных типовХранение списков пар ключ-значение в обобщенных словаряхСоздание обобщенных классовОпределение обобщенного классаИспользование своего обобщенного классаОграничения на параметрические типыПерегрузка операторовПерегрузка операторов сравненияНеожиданное применение перегрузки операторовПерегрузка операторов доступа по индексуРезюмеАсинхронное программирование с применением обратных вызовов и будущих значенийПочему веб-приложение должно быть асинхроннымПреобразование приложения в асинхронноеИспользование обратных вызовов в асинхронном программированииДобавление асинхронных обратных вызовов в Лотерею DartОжидание завершения всех асинхронных обратных вызовов перед продолжениемВложенные обратные вызовы как средство управления порядком асинхронного выполненияЗнакомство с типами Future и CompleterПередача будущих значений из одного места программы в другоеУпорядочение асинхронных вызовов путем сцепления будущих значенийОжидание завершения всех запущенных операций получения будущих значенийПреобразование обычных значений в будущиеАвтономное тестирование асинхронных APIТестирование асинхронных функций обратного вызоваТестирование будущих значенийРезюмеКЛИЕНТСКИЕ DART-ПРИЛОЖЕНИЯСоздание веб-приложения на DartСтруктура одностраничного веб-приложенияПриложение DartExpense - постановка задачиСтруктура Dart-приложенияПоток выполнения в Dart-приложенииКонструирование пользовательского интерфейса с помощью dart:htmlИнтерфейс ElementКонструкторы элементов в действииОрганизация взаимодействия с представлениями и элементамиПостроение простой обобщенной сеткиОбработка браузерных событий с помощью dartihtmlУправление порядком прохождения события в браузереНаиболее распространенные типы событийРезюмеНавигация и локальное хранение данныхИнтеграция навигации с браузеромПрименение функции pushState() для добавления элементов в браузерную историю навигацииПодписка на событие popStateИспользование куков браузера для повышения удобства работыСохранение данных в кукеЧтение данных из кукаЛокальное хранение данных с помощью Web Storage APIПреобразование объектов Dart в формат JSONПреобразование JSON-строк в Dart-объектыСохранение данных в браузереРезюмеВзаимодействие с другими системами и языкамиВзаимодействие с JavaScriptОтправка данных из Dart в JavaScriptПолучение в JavaScript данных, посланных из DartОтправка данных из JavaScript в DartВзаимодействие с внешними серверамиПравило одного доменаПостроение допускающих установку браузерных приложений, не требующих сервераПрименение технологии AppCache для запуска приложений в автономном режимеСоздание пакета приложения, допускающего установку в ChromeРезюмеDART НА СТОРОНЕ СЕРВЕРАРабота с файлами и протоколом HTTP на сервереЗапуск серверного Dart-скриптаДоступ к аргументам командной строкиДоступ к файлам и папкам с помощью dart:ioОбслуживание HTTP-запросов от браузераКласс HttpServerПередача статических файлов по HTTPREST API для клиентовОтправка содержимого каталога в формате JSONОтправка содержимого файла в формате JSONДобавление пользовательского интерфейса на стороне клиентаРезюмеОтправка, синхронизация и сохранение данныхПередача приложения DartExpense с сервераИспользование веб-сокетов для организации двусторонней связиСоединение через веб-сокет на стороне клиентаОбработка подключения через веб-сокет на сервереИспользование веб-сокетов для межбраузерной синхронизацииСохранение данных в базе CouchDB с помощью класса HttpCIientКраткое введение в CouchDBСовместное использование модельного класса Expense в коде клиента и сервераДобавление поддержки сохранения данных на сервереРезюмеОрганизация параллелизма с помощью изоляторовИспользование изоляторов как единиц работыСоздание изолятораОдносторонняя связь с изоляторомДвусторонняя связь с изоляторомДинамическая загрузка кодаСоздание изолятора для загружаемого файлаОпределение динамически загружаемого исходного файлаЗапуск нескольких исполнителейРезюмеА. Справочное руководство по языкуА.1. Объявления переменныхА. 1.1. Объявление переменных с ключевым словом var или именем типаА. 1.2. Объявление финальных (доступных только для чтения) переменныхА. 1.3. Синтаксис литераловА. 1.4. Обобщенные списки и словариА.2. ФункцииА.2.1. Длинная синтаксическая формаА.2.2. Короткая синтаксическая формаА.2.3. Параметры функцииА.2.4. Функции как полноценные объектыЗ. Управление потоком выполнения и итерированиеА.3.1. Ветвление потока выполненияЗ.2. Циклы и итерированиеВ. Определение классов и библиотек1. Классы и интерфейсы1.1. Определение классовВ. 1.2. Наследование классовВ. 1.3. Абстрактные классыВ.1.4. Неявные интерфейсыВ.1.5. Статические свойства и методыВ.2. Библиотеки и ограничение доступаВ.2.1. Определение библиотекВ.2.2. Ограничение доступа к элементам библиотекиПредметный указатель
 
РЕЗЮМЕ След >