"Основы Dart" (2-е издание) в открытом доступе
Всем привет!
Закончил перерабатывать книгу 2021 года "Основы Dart". Этот язык программирования лежит в основе мульти-платформенного фреймворка Flutter, посредством которого можно писать приложения под Android, iOS, Desktop и даже Web.
Что изменилось?
На глобальном уровне:
Второе издание представляет собой полноценный учебник;
Актуальная версия Dart - 3.2;
В книге 6 глав вместо 10 (521 страница vs 216);
шрифт кода изменен на JetBrains Mono (спасибо Владимиру Орлову за рекомендацию!);
шрифт текста с Times New Roman на PT Serif.
Каждая глава завершается лабораторной работой с кучей заданий (всего на книгу ~ 280 заданий), что позволяет использовать учебник в образовательных процессах ВУЗов, СУЗов или школах, а также дет возможность в большем объеме прокачать свои навыки тем людям, кто самостоятельно обучается по нему.
На уровне глав:
Глава 1. Краткая история и встроенные типы данных.
Добавил пару новых разделов (Записи (Record), Тип данных dynamic vs Object и т.д.) и значительно расширил существующие, рассмотрев различные варианты работы со встроенными типами данных.
Глава 2. Операторы, pattern matching и управляющие конструкции
Появился раздел посвященный Pattern Matching и Destructuring. Больше внимания было уделено управлению потоком выполнения кода.
Глава 3. Функции, библиотеки, пакеты и их тестирование
Мягко сказать, третья глава была перехерачена таким образом, что включает в себя сейчас третью, четвертую и десятую главы первого издания + много разных изменений. Зачем это было сделано?) А чтобы студенты страдали хДДД Немного поменял подход и дал тестирование, начиная с функций, чтобы все лабы далее были покрыты тестами. А без разбора библиотек и пакетов, перескакивать на тесты не было смысла.
Глава 4. Объектно-ориентированное программирование
Эта глава объединила в себе переработанную по ООП и исключениям из первого издания. Добавил раздел по новой фишке, которая появится в Dart 3.2 - Private field promotion, а также по модификаторам классов, с демонстрацией способов, как можно выстрелить себе в ногу ^_^
Глава 5. Сборка приложения. Работа с файлами и директориями
Добавил разделы по тому, какие существуют флаги сборки и как с ними компилировать и запускать приложение. Также добавил раздел по конфигурации приложения через терминал в момент запуска.Что касается части работы с файлами, то она была значительно расширена. Добавились примеры по работе с директориями и раздел, посвященный реализации простенькой БД на основе односвязного списка и текстового файла. Раздел посвященный JSON также претерпел изменения и обзавелся примером разработки хранилища типа "ключ:значение".
Глава 6. Асинхронное и сетевое программирование. Isolate
Переработана и расширена часть, связанная с асинхронным программированием (Future, async/await и Stream) и раздел, посвященный работе с изолятами. Добавил с примеры, как организовать взаимодействие между изолятами в рамках одной изоляционной группы, а так же, как с этим обстоят дела, когда создается новая изоляционная группа. Рассмотрен такой механизм, как зоны (Zones) и реализация серверной и клиентской части приложения на TCP, UDP и HTTP, без использования сторонних пакетов.
Благодарности
Всем тем, кто денежно поддержал второе переиздание учебника (чьи имена и никнеймы удалось выявить при переводах и не пожелали оставаться анонимами) - Огромное Спасибо!
a.alistrat, Starletovod, PackRuble, ReinRaus, Олег О., Александр Остапенко, Павел М., Дмитрий М., Ruslan Vafin
Все новые донаты пойдут в благодарность 3-го издания. Огромная просьба, при переводе указывать в комментариях, как вас добавлять в этот раздел (ФИО, Имя Фамилия или никнейм).
Где скачать книгу?
Почему год издания 2024?) Это традиция, что книга, выходящая под конец года, датируется следующим ^_^
Курс на Stepik
Дополнительно к книге, сделал курс на Stepik по Dart, в основу которого легло второе издание учебника. Вас ожидает более 100 тестов и 140 интерактивных задач, с повышающимся уровнем сложности. Это позволит учащемуся не гадать над книгой: "Правильно ли я понял, что от меня требуют реализовать или нет?", а, закатав рукава, сразу приступить к оттачиванию полученных знаний на практике. Более подробную информацию (акции и т.д.) можно найти в моей группе в ВК: https://vk.com/madteacher