Выбрать главу

Джордж Дитрих

Гильерме Берналь

Crystal Programming

Введение на основе проекта в создание эффективных, безопасных и читаемых веб-приложений и приложений CLI

В будущее Crystal; пусть он будет таким же ярким, как бриллиант.

- George Dietrich

Моей любимой жене, которая поддерживает меня во всем.

- Guilherme Bernal

О издании

Crystal Programming

Copyright © 2022 Packt Publishing

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

При подготовке этой книги были приложены все усилия, чтобы обеспечить точность представленной информации. Однако информация, содержащаяся в этой книге, продается без каких-либо гарантий, явных или подразумеваемых. Ни авторы, ни Packt Publishing, ни ее дилеры и дистрибьюторы не несут ответственности за любой ущерб, причиненный или предположительно причиненный этой книгой, прямо или косвенно.

Packt Publishing постаралась предоставить информацию о товарных знаках обо всех компаниях и продуктах, упомянутых в этой книге, используя соответствующие прописные буквы. Однако Packt Publishing не может гарантировать точность этой информации.

Group Product Manager: Alok Dhuri

Publishing Product Manager: Shweta Bairoliya

Senior Editor: Nisha Cleetus

Content Development Editor: Nithya Sadanandan

Technical Editor: Maran Fernandes

Copy Editor: Safis Editing

Project Coordinator: Deeksha Thakkar

Proofreader: Safis Editing

Indexer: Subalakshmi Govindhan

Production Designer: Vijay Kamble

Marketing Coordinator: Sonakshi Bubbar

First published: July 2022

Production reference: 1130522

Published by Packt Publishing Ltd.

Livery Place

35 Livery Street

Birmingham

B3 2PB, UK.

ISBN 978-1-80181-867-4

www.packt.com

Составители

Об авторах

Джордж Дитрих — инженер-программист, поклонник открытого исходного кода и модератор сообщества Crystal. Он имеет степень магистра наук в области информационных систем Интернета и степень бакалавра наук в области информационных наук.

Гильерме Берналь — технический директор Cubos Tecnologia. Он имеет степень бакалавра в области управления ИТ. Гильермс стал соучредителем компании по разработке программного обеспечения и нескольких технологических стартапов, в том числе одного, ориентированного на обучение навыкам программирования нового поколения разработчиков. Он также является двукратным финалистом мирового конкурса по программированию ACM ICPC.

О рецензенте

Брайан Кардифф создает программное обеспечение для других уже более 20 лет. Он мог играть множество ролей в процессе разработки: сбор требований, проверка прототипа, кодирование, развертывание и обслуживание. За 15 лет работы в Manas.Tech он присоединился к Ари Боренцвейгу и Хуану Вайнерману, чтобы придать форму Crystal. Ему нравится создавать инструменты для технических и нетехнических людей. В основном благодаря Crystal он стал сотрудником сообщества открытого исходного кода. Он также ознакомился с книгой Иво Бальберта и Саймона Сен-Лорана «Программирование кристалла: создание высокопроизводительных, безопасных и параллельных приложений». Работая полный рабочий день в отрасли, он старается поддерживать связь с академическими и исследовательскими языками программирования и формальными методами.

Я хотел бы поблагодарить мою жену и дочь за их постоянную поддержку во всем. различные проекты, которыми я продолжаю заниматься.

- Brian Cardiff

Предисловие

Язык программирования Crystal разработан с учетом потребностей как людей, так и компьютеров. Он обеспечивает легко читаемый синтаксис, который компилируется в эффективный код.

В этой книге мы собираемся изучить все, что может предложить Кристалл. Мы начнем с представления языка, включая его основные синтаксические и семантические особенности. Далее мы углубимся в создание нового проекта Crystal, рассказав, как создать приложение на основе CLI, которое потребует использования более продвинутых функций, таких как операции ввода-вывода, параллелизм и привязки C.

В третьей части этой книги мы узнаем, как использовать внешние библиотеки в виде Crystal Shards. Затем мы воспользуемся этими знаниями, пройдя процесс создания веб-приложения с использованием Athena Framework.

Четвертая часть книги посвящена одной из самых мощных возможностей Crystaclass="underline" метапрограммированию. Здесь мы научимся использовать макросы, аннотации и самоанализ типов во время компиляции. Затем мы узнаем, как их можно объединить для реализации некоторых довольно мощных функций.