Язык программирования Crystal разработан с учетом потребностей как людей, так и компьютеров. Он обеспечивает легко читаемый синтаксис, который компилируется в эффективный код.
В этой книге мы собираемся изучить все, что может предложить Кристалл. Мы начнем с представления языка, включая его основные синтаксические и семантические особенности. Далее мы углубимся в создание нового проекта Crystal, рассказав, как создать приложение на основе CLI, которое потребует использования более продвинутых функций, таких как операции ввода-вывода, параллелизм и привязки C.
В третьей части этой книги мы узнаем, как использовать внешние библиотеки в виде Crystal Shards. Затем мы воспользуемся этими знаниями, пройдя процесс создания веб-приложения с использованием Athena Framework.
Четвертая часть книги посвящена одной из самых мощных возможностей Crystal: метапрограммированию. Здесь мы научимся использовать макросы, аннотации и самоанализ типов во время компиляции. Затем мы узнаем, как их можно объединить для реализации некоторых довольно мощных функций.
В завершение мы представим некоторые вспомогательные функции Crystal, например способы документирования, тестирования и развертывания программ Crystal, а также способы автоматизации этих процессов путем внедрения CI в ваш рабочий процесс.
Эта книга предназначена для Crystal версии 1.4.x. Будущие версии также должны работать, но не будут охватывать новые добавленные функции.
Эта книга будет полезна разработчикам, желающим изучить программирование Crystal, а также всем, кто хочет улучшить свои способности решать реальные проблемы с помощью языка. Ожидается опыт разработки приложений на любом другом языке программирования. Однако предварительные знания Crystal не требуются.
Глава 1 «Введение в Crystal» содержит краткое введение в Crystal, включая его историю, ключевые концепции и цели. Эта глава также будет включать информацию о настройке Crystal, а также информацию об соглашениях, которые будут использоваться на протяжении всей книги.
Глава 2 «Основы семантики и особенности Crystal» знакомит вас с написанием кода Crystal, начиная с самых основ и заканчивая наиболее распространенными методами. Он также исследует распространенные типы и операции из стандартной библиотеки.
Глава 3 «Объектно-ориентированное программирование» углубляет использование объектно-ориентированных функций языка, обучая вас созданию новых типов с настраиваемыми функциями — основного инструмента каждой нетривиальной программы.
Глава 4 «Изучение Crystal посредством написания интерфейса командной строки» описывает настройку проекта CLI и пошаговую реализацию первоначальной реализации.
Глава 5 «Операции ввода-вывода» развивает предыдущую главу и представляет операции ввода-вывода как средство обработки ввода и вывода вместо жестко закодированных строк.
Глава 6 «Параллелизм» начинается с рассмотрения функций параллелизма Crystal, а затем используется то, что было изучено ранее, для обеспечения параллельности программы CLI.
Глава 7, «Взаимодействие C», демонстрирует, как можно использовать библиотеки C в программе Crystal путем привязки libnotify для уведомления программы CLI.
Глава 8 «Использование внешних библиотек» знакомит с командой shards и способами ее поиска.
Глава 9 «Создание веб-приложения с помощью Athena» описывает создание простого веб-приложения для блога с использованием Athena Framework, используя многие из его функций.
Глава 10 «Работа с макросами» представляет собой введение в мир метапрограммирования путем изучения макросов Crystal.
Глава 11 «Введение в аннотации» рассказывает о том, как определять, включать в себя данные и читать аннотации.
Глава 12 «Использование интроспекции типов во время компиляции» демонстрирует, как перебирать переменные, типы и методы экземпляра во время компиляции.
Глава 13 «Продвинутое использование макросов» демонстрирует некоторые мощные возможности, которые можно создать с помощью макросов и аннотаций, а также немного творчества.
Глава 14 «Тестирование» знакомит с модулем Spec и знакомит вас с модульным и интеграционным тестированием в контексте CLI и веб-приложений.
Глава 15 «Документирование кода» показывает, как лучше всего документировать, генерировать, размещать и версионировать документацию по коду Crystal.
Глава 16 «Развертывание кода» рассказывает о том, как выпускать новые версии сегмента, а также о том, как лучше всего создавать и распространять рабочую версию приложения.
Глава 17 «Автоматизация» содержит примеры рабочих процессов и комментарии по включению непрерывной интеграции для проектов Crystal.
Приложение A «Настройка инструментов» содержит практическое объяснение того, как настроить Visual Studio Code для программирования Crystal с помощью официального плагина.
Приложение B, «Будущее Crystal», дает краткий обзор работы, которая в настоящее время ведется за кулисами ради будущего языка, и показывает, как принять в ней участие и внести свой вклад.
Для этой книги требуется какой-либо текстовый редактор, а также доступ к терминалу. Рекомендуется использовать macOS или Linux, но Windows с WSL также должна работать нормально. Наконец, вам может потребоваться установить некоторые дополнительные системные библиотеки, чтобы некоторые примеры кода работали правильно.
Программное/аппаратное обеспечение, описанное в книге | Требования к операционной системе |
Crystal | Windows (с WSL), macOS, или Linux |
libnotify | gcc (или другой C компилятор) |
jq | libpcre2 |
Если вы используете цифровую версию этой книги, мы советуем вам ввести код самостоятельно или получить доступ к коду из репозитория книги на GitHub (ссылка доступна в следующем разделе). Это поможет вам избежать любых потенциальных ошибок, связанных с копированием и вставкой кода.
Вы можете загрузить файлы примеров кода для этой книги с GitHub по адресу https://github.com/PacktPublishing/Crystal-Programming/. Если есть обновление кода, оно будет обновлено в репозитории GitHub.
У нас также есть другие пакеты кода из нашего богатого каталога книг и видео, доступных на https://github.com/PacktPublishing/. Проверь их!
Мы также предоставляем PDF-файл с цветными изображениями снимков экрана и диаграмм, использованных в этой книге. Вы можете скачать его здесь: https://static.packt-cdn.com/downloads/9781801818674_ColorImages.pdf.
В этой книге используется ряд текстовых соглашений.
Код в тексте
: указывает кодовые слова в тексте, имена таблиц базы данных, имена папок, имена файлов, расширения файлов, пути, фиктивные URL-адреса, пользовательский ввод и дескрипторы Twitter. Вот пример: «В нашем контексте типы STDIN
, STDOUT
и STDERR
фактически являются экземплярами IO::FileDescriptor
».
Блок кода задается следующим образом:
require "./transform"
STDOUT.puts Transform::Processor.new.process STDIN.gets_to_end
Когда мы хотим привлечь ваше внимание к определенной части блока кода, соответствующие строки или элементы выделяются жирным шрифтом:
require "./transform"
STDOUT.puts Transform::Processor.new.process STDIN.gets_to_end
Любой ввод или вывод командной строки записывается следующим образом:
---
- id: 2
name: Jim
- id: 3
name: Bob
Жирный шрифт: обозначает новый термин, важное слово или слова, которые вы видите на экране. Например, слова в меню или диалоговых окнах выделяются жирным шрифтом. Вот пример: «Откройте Windows PowerShell и выберите «Запуск от имени Администратора».
выглядят следующим образом.
Обратная связь от наших читателей всегда приветствуется.
Общая обратная связь: если у вас есть вопросы по какому-либо аспекту этой книги, напишите нам по адресу customercare@packtpub.com и укажите название книги в теме сообщения.
Опечатка: Хотя мы приложили все усилия, чтобы обеспечить точность нашего контента, ошибки все же случаются. Если вы нашли ошибку в этой книге, мы будем признательны, если вы сообщите нам об этом. Посетите www.packtpub.com/support/errata и заполните форму.
Пиратство. Если вы встретите в Интернете незаконные копии наших работ в любой форме, мы будем признательны, если вы предоставите нам адрес или название веб-сайта. Пожалуйста, свяжитесь с нами по адресу copyright@packt.com и укажите ссылку на материал.
Если вы заинтересованы в том, чтобы стать автором: Если есть тема, в которой вы разбираетесь, и вы заинтересованы в написании или внесении вклада в книгу, посетите авторов. Packtpub.com.
После того, как вы прочитали Crystal Programming, мы будем рады услышать ваши мысли! Нажмите здесь, чтобы перейти прямо на страницу обзора этой книги на Amazon и поделиться своим мнением.
Ваш отзыв важен для нас и технического сообщества и поможет нам убедиться, что мы предоставляем контент отличного качества..