Вот и настал тот момент, когда закатав рукава приступаю к актуализации написанной пару лет назад книги "Основы Dart":

На момент ее написания актуальной была версия Dart 2.12, выхода Dart 2.13, а сейчас и того хлеще - Dart 3.1. 

Где-то с начала 2022 года у меня чесались руки приступить к первому обновлению, но мотивация оказалась на уровне плинтуса. Нет, это не связано с началом СВО. Возможно, ждал, когда донатами "окупится" потраченное время, забыв достать из тумбочки губозакатывательную машинку. Всегда есть какое-то ожидание и жестокая реальность. За более чем 2 года с момента анонса книги на хабре (https://habr.com/ru/articles/564528/) донатами набралось 3 тысячи рублей и всего пару раз писали со словами благодарности. Складывалось впечатление, что книга вообще никому не пригодилась. Иногда она мелькала в телеграм-канале Dart & Flutter, но был так загружен, что не удосуживался посмотреть что там к чему. Да и идея спросить напрямую у сообщества как-то в мыслях не пробегала >_< Но самой обиды на кого-либо не было, ведь выкладывая книгу в открытый доступ, рассматривал различные варианты развития событий (особенно - губазакатывательный хДД).

15.09.2023 года выступил на конференции по кроссплатформенной разработке и трендам IT - CrossConf (https://www.youtube.com/watch?v=VSO5S8RwlWw) с докладом "100 изолятов – не предел, или Dart в мультиагентных системах":

Одним из вопросов после доклада был: "Планируется ли актуализация книги по Dart?". На момент самого вопроса планы то были, но мотивации не особо, т.к. только-только на горизонте начинала маячить лаборатория по кроссплатформенной разработке в стенах СПб ГУАП под моим руководством и не было гарантий, что ее вообще будем открывать. Само же выступление спикером на конференции добавило веса моей персоне в этом вопросе и после общения с руководством факультета и кафедры, забросив в копилку открытия лаборатории по кроссплатформенной разработке еще пару аргументаций "За" (спасибо порту Flutter под ОС Аврора), общения с людьми на самой конференции, которые благодарили за книгу и рассказывали, что она была одной из базовых ступенек на их пути в IT, либо то, как они заставляют изучить ее всех джунов, кто плавает в Dart...  пришла уверенность...

Книге по Dart 3 - быть!!!  Если для вас была полезна предыдущая книга, не стесняйтесь писать об этом. Сам факт того, что она приносит пользу - дорогого стоит. Но автор не может узнать об этом, когда читатель молчит.

"Основы Dart" ждет значительная переработка: где-то что-то перефразировать, добавить, заменить, расширить и т.д. Видение финального результата сформировано, а то, насколько и как быстро получится к нему подобраться зависит от ряда факторов:

  1. Нагрузка на работе (а их у меня две: СПбГЭУ и СПбГУАП);

  2. Свободное временя (жена с маленькой дочкой на первом месте);

  3. Насколько можно пожертвовать публикациями в научных журналах, ведением различных кружков в ВУЗах, сторонними предложениями по подработке, как далеко готов отфутболить докторскую и т.д., чтобы не сильно просесть по доходам.

И если с первыми двумя пунктами особо ничего не сделать, то поддержка по третьему позволит от чего-то отказаться и уделить больше времени на книгу, за что буду очень благодарен! Для этого имеются различные способы:

  1. Тинькофф

  2. ЮMoney

  3. Моральная поддержка (скорости не прибавит, но на некоторое время хватит)

Несколько выгораний, после которых и перебрался в преподавание, научили тому, что не стоит надеяться и ждать, когда кто-то сделает первый шаг. Одно время очень сильно "дулся" на друзей, поскольку не зовут в гости, пока не осознал - у них свои заботы, они мне ни чего не должны и если есть желание встретиться, то проще самому позвонить и договориться, чем ждать "маны небесной" и заниматься самоистезанием в духе "я ни кому не нужен". Так же и сейчас, проще самому сделать первый шаг и попросить о помощи, чем на что-то надеяться.

Обновленные разделы будут выходить в моей группе в vk: https://vk.com/madteacher, а по готовности глав, будет формироваться PDF и EPUB файл для скачивания. Таким образом, книга, как и ее предыдущая версия, будет выложена в открытый доступ.

На текущий момент переработана первая глава: (последнее обновление 29.09.2023)

UDP: (04.10.2023) Переработал вторую главу и немного подпилил первую. Для PDF версии добавил поддержку закладок. В планах перенести исходники в репозиторий и нормально их структурировать для удобства обучающихся/читателей. Скорей всего будет что-то типа "глава -> раздел -> исходники", плюс, начиная со второй главы код будет начинаться комментарием (надо будет их добавить) с названием файла, где его можно взять. Финальная сборка книги, когда завершу, будет представлена в нескольких шрифтах оформления кода: Comic Sans (как в первом издании) и Arial Narrow (текущий вариант).

UDP: (11.10.2023) Мягко сказать, третья глава была перехерачена таким образом, что включает в себя сейчас третью, четвертую и десятую главы первого издания + много разных изменений. Зачем это было сделано?) А чтобы студенты страдали хДДД Немного поменял подход и дал тестирование, начиная с функций, чтобы все лабы далее были покрыты тестами. А без разбора библиотек и пакетов, перескакивать на тесты не было смысла. Поэтому и произошло такое объединение.

P.S. Донатами набралось денег для заказа нового дизайна обложки (предыдущий был сделан мной на коленке) и хватит еще на 2-3 чашки кофе. Спасибо всем, кто "морально" поддержал через Тинькофф или ЮMoney!

UDP: (21.10.2023) Закончил четвертую главу. Она объединила в себе переработанную главу по ООП и исключениям из первого издания. Добавил раздел по новой фишке, которая появится в Dart 3.2 - Private field promotion, а также по модификаторам классов, с демонстрацией способов, как можно выстрелить себе в ногу ^_^ 

UDP: (04.11.2023) Переработана глава по работе с файлами. Теперь ее название "Сборка приложения. Работа с файлами и директориями". Добавил разделы по тому, какие существуют флаги сборки и как с ними компилировать и запускать приложение. Также добавил раздел по конфигурации приложения через терминал в момент запуска.
Что касается части работы с файлами, то она была значительно расширена. Добавились примеры по работе с директориями и раздел, посвященный реализации простенькой БД на основе односвязного списка и текстового файла. Раздел посвященный JSON также претерпел изменения и обзавелся примером разработки хранилища типа "ключ:значение".
Шрифт кода изменен на JetBrains Mono (спасибо Владимиру Орлову за рекомендацию!).

UDP: (16.11.2023) Вышло второе издание книги, все подробности и ссылки на скачивание тут: https://habr.com/ru/articles/773442/

© Чернышев Станислав Андреевич, MADTeacher