Как стать автором
Обновить

«Основы Dart» 2-е издание

Уровень сложностиПростой
Время на прочтение5 мин
Количество просмотров10K

Всем привет!

Закончил перерабатывать книгу 2021 года "Основы Dart" ("Книга по Dart 2.12").

Что изменилось?

На глобальном уровне:

  1. Второе издание представляет собой полноценный учебник;

  2. Актуальная версия Dart - 3.2;

  3. В книге 6 глав вместо 10 (521 страница vs 216);

  4. шрифт кода изменен на JetBrains Mono (спасибо Владимиру Орлову за рекомендацию!);

  5. шрифт текста с Times New Roman на PT Serif.

  6. Каждая глава завершается лабораторной работой с кучей заданий (всего на книгу ~ 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, без использования сторонних пакетов.

Что дальше?

Надо отдохнуть месяц-полтора, а далее в планах книга по более продвинутым вещам на Dart. Думаю, но это не точно, по поводу следующей структуры:

  1. «Разработка backend на Dart» с использованием Serverpod;

  2. глава с разбором коллекций и разработки на Dart классических структур данных. Возможно, зацепим еще алгоритмы поиска и сортировки;

  3. более глубокое погружение в асинхронное программирование и изоляты, с примером разработки небольшой мультиагентной системы (возможно включу в третье переиздание "Основ Dart");

  4. глава по работе с базами данных (sqlite);

  5. DartFFI;

  6. работа с gRPC (под вопросом).

После чего можно будет приступить к Flutter. По сути, если все получится и будет поддержка сообщества, свет увидит трехтомник: основы, продвинутый уровень Dart и Flutter.

Т.к. книгу переработал куда быстрее, чем работает знакомый дизайнер (загрузка по работе), то дизайн обложки будет обновлен в 3-м переиздании =(

Какая поддержка сообщества нужна?

Новую квартиру в Питере не прошу (хотя... было бы неплохо??? в однушке с женой и ребенком тяжело преподу работается >_< ), но донатам (имеющиеся варианты приведены в книге и ниже в посте) или огласке о том, что такая работа идет (репост, пригласить на интервью на свой канал, конференцию, поставить звезду репозиторию в гитхабе, лайк под моим комментарием на Stepik, чтобы они наконец-таки обновили Dart 2.7 на 3.2 и т.д.) - буду безмерно благодарен!

Всем тем, кто денежно поддержал второе переиздание учебника (чьи имена и никнеймы удалось выявить при переводах и не пожелали оставаться анонимами) - Огромное Спасибо!

a.alistrat, Starletovod, PackRuble, ReinRaus, Олег О., Александр Остапенко, Павел М., Дмитрий М., Ruslan Vafin

Все новые донаты пойдут в благодарность 3-го издания. Огромная просьба, при переводе указывать в комментариях, как вас добавлять в этот раздел (ФИО, Имя Фамилия или никнейм).

В то время, пока в поте лица перерабатывал книжку, по основному месту работы (СПбГЭУ) меня завернули с получением ученого звания доцента, хотя все нормативы для этого перевыполнены на 146%. Нельзя в экономическом вузе подаваться на доцента по техническим наукам. Летом буду увольняться... Высока вероятность, что в ГУАП... но кто знает, может среди читателей найдутся представители других учебных заведений, способные предложить более интересные и прибыльные варианты, чем сейчас имею на руках (было бы интересно поработать в Центральном Университете, что открыл Тинькофф). Готов рассмотреть различные предложения ^_^

Бумажная версия книги

Скребется в голове идея выпуска бумажной версии, но руки пока не добрались отправить запросы в типографии. Да и как-то ссыкотно, во сколько это может обойтись? Поэтому прикрепил опрос к посту на тему: "А надо ли оно")

Если надо, то есть несколько вариантов:

  1. собственные средства, при адекватном ценнике от типографии;

  2. каудфайдинг;

  3. помощь IT-компаний, заинтересованных в актуальной литературе по Dart.

Как задонатить?

Существуют различные способы залить меня чашку кофе для более продуктивной ночной работы:

  1. Тинькофф

  2. ЮMoney

  3. Boosty

  4. Адрес EVM кошелька Bybit Wallet: 0x3ff35d9325f8c4cbabd6f14ba5e170459420faa8

  5. Адрес SUI кошелька Bybit Wallet: 0x9300ecb7a65ab4564a4c81ef045f0ef8d175a13fe3cfc7acdd25b8afa0b00225

Где скачать книгу?

Как и в предыдущих случаях, книга доступна в 2-х версиях: PDF EPUB

Почему год издания 2024?) Это традиция, что книга, выходящая под конец года, датируется следующим ^_^

UPD. Курс на Stepik

Добил курс на Stepik по Dart (https://stepik.org/a/186453) , в основу которого легло второе издание учебника.
Вас ожидает более 100 тестов и 140 интерактивных задач, с повышающимся уровнем сложности. Это позволит учащемуся не гадать над книгой: "Правильно ли я понял, что от меня требуют реализовать или нет?", а, закатав рукава, сразу приступить к оттачиванию полученных знаний на практике.

С обновлением Dart на платформе, добавится еще ряд задач ;)

Для читателей хабра доступна скидка в 15%. Если имеется желание приобрести данный курс, то огромная просьба, делать это по следующей ссылке: https://stepik.org/a/186453/pay?promo=fd3820bee66e6966

Только зарегистрированные пользователи могут участвовать в опросе. Войдите, пожалуйста.
Нужна ли бумажная версия книги?
35.37% Даешь бумажную версию29
64.63% PDF, EPUB, а больше и не надо53
Проголосовали 82 пользователя. Воздержались 10 пользователей.
Теги:
Хабы:
Если эта публикация вас вдохновила и вы хотите поддержать автора — не стесняйтесь нажать на кнопку
Всего голосов 23: ↑23 и ↓0+23
Комментарии11

Публикации

Истории

Ближайшие события

19 сентября
CDI Conf 2024
Москва
24 сентября
Конференция Fin.Bot 2024
МоскваОнлайн
30 сентября – 1 октября
Конференция фронтенд-разработчиков FrontendConf 2024
МоскваОнлайн