Шрифт:
Интервал:
Закладка:
Глава 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 и выберите «Запуск от имени Администратора».
Советы или важные примечания
выглядят следующим образом.
Как связаться
Обратная связь от наших читателей всегда приветствуется.
Общая обратная связь: если у вас есть вопросы по какому-либо аспекту этой книги, напишите нам по адресу [email protected] и укажите название книги в теме сообщения.
Опечатка: Хотя мы приложили все усилия, чтобы обеспечить точность нашего контента, ошибки все же случаются. Если вы нашли ошибку в этой книге, мы будем признательны, если вы сообщите нам об этом. Посетите www.packtpub.com/support/errata и заполните форму.
Пиратство. Если вы встретите в Интернете незаконные копии наших работ в любой форме, мы будем признательны, если вы предоставите нам адрес или название веб-сайта. Пожалуйста, свяжитесь с нами по адресу [email protected] и укажите ссылку на материал.
Если вы заинтересованы в том, чтобы стать автором: Если есть тема, в которой вы разбираетесь, и вы заинтересованы в написании или внесении вклада в книгу, посетите авторов. Packtpub.com.
Поделитесь своими мыслями
После того, как вы прочитали Crystal Programming, мы будем рады услышать ваши мысли! Нажмите здесь, чтобы перейти прямо на страницу обзора этой книги на Amazon и поделиться своим мнением.
Ваш отзыв важен для нас и технического сообщества и поможет нам убедиться, что мы предоставляем контент отличного качества..
Часть 1: Приступая к работе
Как и в любой книге по программированию, нам нужно начать с знакомства с языком, включая способы его использования, его основные функции и семантику, а также с рассмотрения некоторых часто используемых шаблонов, которые он использует. Эта часть посвящена именно этому: началу работы с Crystal, но с уклоном в сторону читателей, знающих какой-либо другой язык программирования, но не имевших предыдущего контакта с самим Crystal.
Эта часть содержит следующие главы:
• Глава 1. Введение в Crystal.
• Глава 2. Основы семантики и особенности Crystal.
• Глава 3. Объектно-ориентированное программирование.
1. Введение в Crystal
Crystal — безопасный, производительный, объектно-ориентированный язык общего назначения. Он был во многом вдохновлен синтаксисом Ruby, а также средами выполнения Go и Erlang, что позволяет программисту быть очень продуктивным и выразительным при создании программ, которые эффективно работают на современных компьютерах.
Crystal имеет надежную систему типов и может компилироваться в собственные программы. Следовательно, большинство ошибок и ошибок в программировании можно обнаружить во время компиляции, что, помимо прочего, обеспечивает нулевую безопасность. Однако наличие типов не означает, что вы должны писать их везде. Crystal использует свою уникальную систему интерференции типов для определения типов практически каждой переменной в программе. Редко встречаются ситуации, когда программисту приходится где-то писать явный тип. Но когда вы это сделаете, вам очень помогут типы-объединения, обобщения и метапрограммирование.
Метапрограммирование