Инструментальная экосистема Dart

Инструменты Dart считаются частью платформы Dart и потому развиваются так же быстро, как сам язык. Разработчики обычно осваивают язык с помощью имеющихся (или отсутствующих) инструментов, и Google тратит на этот аспект немало сил. Начнем с редактирования кода.

Редактор Dart

Хотя писать программы на Dart можно в любом текстовом редакторе, лучше всего для этой цели приспособлен редактор Dart. Он построен на платформе Eclipse Rich Client Platform (RCP) - каркаса для создания редакторов кода. Редактор Dart располагает такими привычными средствами, как автозавершение кода, навигация, выделение структуры кода, а также умеет производить статический анализ кода, выдавая предупреждения и сообщения об ошибках. Инструмент статического анализа доступен также в виде командной утилиты, которая может включаться в систему непрерывной интеграции для обнаружения ошибок на ранних стадиях. На рис. 1.7 показаны некоторые средства редактора Dart.

Редактор Dart Editor, показано простое приложение для браузера и окно автозавершения кода

Рис. 1.7. Редактор Dart Editor, показано простое приложение для браузера и окно автозавершения кода

Редактор Dart позволяет писать код, а если этот код ассоциирован с HTML-страницей, то его можно преобразовать в JavaScript и исполнить в браузере по своему выбору с помощью инструмента dart2js. Если используется браузер Dartium - Chrome со встроенной ВМ Dart, - то этап преобразования в JavaScript можно опустить и исполнять Dart-код непосредственно. Dartium также умеет общаться с редактором Dart Editor, что дает возможность сквозной пошаговой отладки.

Если код не связан ни с какой HTML-страницей, то редактор может имитировать его запуск из командной строки с выводом на консоль stdout.

Виртуальная машина Dart

ВМ Dart - неотъемлемая часть языка Dart. Одно из ее применений - исполнение Dart-кода из командной строки, например запуск HTTP-сервера или простого скрипта (аналог пакетного файла или скрипта оболочки). Другое - встраивание в объемлющее приложение типа браузера Dartium.

Dartium

Dartium - это специализированная версия браузера Chromium (вариант Google Chrome с открытым исходным кодом), в которую встроена ВМ Dart. Он распознает тип скрипта application/dart и исполняет написанный на Dart код непосредственно без промежуточного преобразования в JavaScript. В Dartium включены инструменты разработчика, знакомые многим программистам, которые создают сайты и веб-приложения в Chrome. В сочетании с редактором Dart он позволяет вести пошаговую отладку: вы можете поставить точки останова в редакторе, а затем обновить страницу приложения в Dartium; встроенный в редактор отладчик остановится в достигнутой точке и позволит просмотреть переменные и продолжить исполнение в пошаговом режиме.

Благодаря браузеру Dartium разработка на Dart становится не сложнее, чем на JavaScript. Обновление страницы в браузере - все, что нужно для исполнения Dart-кода.

dart2js: конвертер Dart в JavaScript

Инструмент dart2js служит для компиляции Dart в JavaScript и вызывается из редактора Dart Editor или из командной строки в виде автономной утилиты. Он компилирует все библиотеки и исходные файлы, составляющие Dart-приложение, в один JavaScript- файл. Результирующий код вполне понятен, хотя в случае, когда разработка на Dart ведется с применением Dartium, читать его вряд ли имеет смысл.

dart2js также включает в JavaScript ссылки на исходный код, позволяющие перейти от порожденного JavaScript-кода к коду на Dart, из которого он получен. Это недавнее дополнение успешно используется и в других языках, транслируемых на JavaScript, в частности CoffeeScript и Google Web Toolkit (GWT).

Примечание. dart2js - третий конвертер Dart в JavaScript. Первый назывался dartc, второй - frog. Эти названия встречаются в старой документации и в блогах.

Управление пакетами с помощью pub

Управление пакетами - важная черта любого языка. В Java для этой пели используется Maven, в .NET - NuGet, а в node.js - npm. В Dart есть собственный менеджер пакетов, который называется pub. Pub позволяет разработчику определить метаданные пакета в файле pubspec и опубликовать библиотеки в таких репозиториях, как GitHub.

Когда вам понадобится какая-то библиотека, вы можете с помощью pub загрузить ее вместе со всеми зависимостями с учетом номеров версий. Мы подробнее обсудим pub и приведем соответствующие примеры в главе 5, когда будем говорить о структуре библиотеки, написанной на Dart. [1] [2]

Резюме

На первый взгляд может показаться, что Dart - просто очередной язык программирования. Но если рассматривать его в контексте всей окружающей экосистемы, то окажется, что Dart открывает блистательные перспективы в мире веб-разработки. Современные приложения становятся все более сложными, для их создания необходимы крупные коллективы разработчиков, и Dart вместе со своими инструментами и средами обещает внести некую структуру в слишком уж гибкий мир JavaScript.

Создавать одностраничные приложения, работающие в браузере (к примеру, Google Plus), на Dart гораздо легче, потому что сопровождение объемного клиентского кода перестает быть чрезмерно хрупким. Язык Dart - который можно исполнять непосредственно или транслировать на JavaScript - вкупе с HTML5 - идеальное решение для построения веб-приложений, не нуждающихся во внешних подключаемых модулях.

В следующих главах мы ближе познакомимся с экосистемой Dart, изучим во всех подробностях ядро языка и воспользуемся Dart для разработки одностраничных веб-приложений, ориентированных на современные веб-браузеры с поддержкой IITML5. Прочитав эту' книгу, вы сможете создавать на Dart приложения, способные работать на стороне клиента без подключения к сети, загружаемые с файлового сервера Dart и подключающиеся к Dart-серверу для сохранения данных в базе.

  • [1] Памятка • Инструментальная экосистема составляет неотъемлемую часть проекта Dart. • Редактор Dart предлагает разработчикам развитые инструментальныесредства.
  • [2] Благодаря Dartium разработка на Dart оказывается не сложнее обновления страницы в браузере. • Dart спроектирован так, что легко транслируется на JavaScript.
 
Посмотреть оригинал
< Пред   СОДЕРЖАНИЕ ОРИГИНАЛ   След >