Чему вы научитесь
- Написанию конкурентного кода на Dart
- Нюансам работы с Future, Stream, Zone, Isolate
- Как на самом деле работают изоляты под капотом Dart VM
- Как работает сборщик мусора в Dart
- Разработке небольших, классических мультиагентных систем на проактивных агентах
О курсе
Работа над основной частью курса закончена (в течении месяца еще будут вноситься правки). Тесты, задачи на программирование и их разбор будут добавлены после осеннего сезона конференций.
Dart — современный объектно-ориентированный язык программирования, разработанный компанией Google для создания высокопроизводительных приложений. Он используется для разработки мобильных, desktop и веб-приложений, а так же серверного (да, бывает) и встраиваемого ПО. Dart стал основным языком для Flutter — популярного фреймворка для кросс-платформенной разработки.
Почему именно Dart?
Dart создан с учетом потребностей современных разработчиков. Он предоставляет высокую производительность, простоту написания и отладки кода, а также удобство создания приложений для различных платформ. В основе Dart лежат три главных принципа: удобство разработки, высокая скорость выполнения и кросс-платформенность.
- Кросс-платформенная разработка. Dart в связке с Flutter позволяет создавать приложения, которые одинаково хорошо работают на Android, iOS, Windows, macOS, Linux и даже в браузере.
- Высокая производительность. Благодаря компиляции в машинный код Dart обеспечивает скорость работы, сравнимую с нативными приложениями.
Особенности Dart
- Простота синтаксиса. Dart обладает лаконичным и понятным синтаксисом, что делает его удобным для изучения как новичками, так и опытными программистами.
- Асинхронность. Dart имеет встроенную поддержку Future и async/await, что упрощает работу с многопоточностью.
- Безопасность типов. Dart использует систему строгой типизации с возможностью выведения типов, что уменьшает вероятность ошибок в коде.
- Поддержка ООП и функционального программирования. Вы можете использовать классы, интерфейсы, наследование и одновременно применять функциональный подход к написанию кода.
О курсе
Это четвертый курс из серии "Основы разработки на Dart: от юнлинга до ситха".Он погрузит вас в мир конкурентного программирования на Dart. Мы последовательно разберем, как работать с Future, Stream и Isolate API и какие нюансы могут встретиться на вашем пути при их использовании. То, что механизм Zone – это не только про перехват «протекающих» в коде асинхронных исключений. Дополнительно погрузимся в тонкости работы с изоляционными группами и посмотрим, как на уровне Dart VM работают изоляты и сборщик мусора.
В последних модулях вас ждет проект – шахматная мультиагентная система на базе проактивных агентов, решающая усложненный вариант задачи о 8-ми ферзях, когда нужно найти такую расстановку фигур, где ни одна не находится под ударом. В нашем случае на поле можно будет выставлять любые фигуры. Главная цель проекта - предоставить "песочницу", объяснив ее принцип работы и почему применялось такое проектное решение. Это позволит прокачивать hard skills, выполняя либо те задания, которые предлагаются для улучшения системы, либо придумав новый функционал, интегрировав его в готовый программный продукт. Ограничений нет. Включайте фантазию по полной и реализуйте даже самые безумные идеи.
Так как хочется, чтобы эта "песочница" была максимально приближена к реальной работе, специально будут опускаться некоторые моменты при постановке задач на самостоятельную реализацию. А именно:
- Поверхностное описание, что нужно сделать, без уточнения, где вносить правки в код;
- Где можно поискать информацию, которая точно поможет в решении;
- и т.д.
Почему выбран такой подход? Научиться полноценно программировать можно только программируя и этот процесс куда сложнее, чем людям кажется на первый взгляд, после просмотра рекламных роликов, ютуб-инфлюенсеров с уверениями об успешном-успехе или прохождению пары курсов на степике (или аналогичной платформе) по основам языка программирования. Если есть уже готовое решение, то у многих будет желание просто его посмотреть, скопировать и не писать код самому... Что не коррелирует с целью разработки данного курса.
Только в процессе самостоятельного кодирования, как на реальной работе, где никто не собирается целовать вас в пятую точку, внедрение новых фич в систему, превозмогание кучи ошибок, что обязательно будут возникать в этом процессе... поможет определиться (если не сделали этого раньше), подходит ли вам такая работа или нет.
Репозиторий курса: https://github.com/MADTeacher/dart_concurrency
Что вас ждет:
- Реальные задачи. Выполняя задания, вы сможете сразу применять полученные знания и учиться решать проблемы, с которыми сталкиваются разработчики.
- Подготовка к собеседованиям. В курсе включены типичные задачи и вопросы, которые встречаются на технических интервью, что поможет вам уверенно чувствовать себя при трудоустройстве.
- Алгоритмы и логика. Решение алгоритмических задач развивает структурированное мышление, что особенно важно для успешной карьеры программиста.
Преимущества курса
- Практическая направленность. Задачи разработаны так, чтобы вы могли сразу приступить к кодингу, что способствует быстрому освоению языка.
- Широкий охват тем. Вы изучите ключевые концепции Dart, от основ до продвинутых тем, включая работу с асинхронностью и файлами.
- Сообщество обучающихся. Вы сможете обмениваться решениями, участвовать в дискуссиях и получать поддержку от других студентов.
Если интересуешься Dart/Flutter и нравится смотреть, как препода бомбит от современной системы образования - подписывайся на тг-канал "MADTeacher"
Для кого этот курс
Начальные требования
Базовый синтаксис языка программирования Dart. Пройденные курсы "Основы разработки на Dart: юнлинг" и "Основы разработки на Dart: падаван" или "Основы Dart 3"
Наши преподаватели
Как проходит обучение
Курс состоит из текстового материала, тестов и интерактивных заданий с написанием кода (+ будут их видеоразборы). Предназначен для самостоятельного прохождения.
Программа курса
Что вы получаете
- Навыки превозмогания;
- Отработку теории на практике;
- Знания, как работает виртуальная машина Dart;
- Закрепление знаний по Dart.
- Сертификат (когда курс будет полностью готов)