Изменение пароля
Пользователь
anonymous
Текущий пароль
*
Новый пароль
*
Подтверждение
*
Запомнить меня
Забыли пароль?
Электронная библиотека (16+)
Впервые на сайте?
Вход
/
Регистрация
Национальный цифровой ресурс
Национальный цифровой ресурс Руконт - межотраслевая электронная библиотека (ЭБС) на базе технологии Контекстум (всего произведений: 610371)
Для выхода нажмите Esc или
Clojure на производстве (4000,00 руб.)
0
0
Первый автор
Гришаев Иван Викторович
Издательство
М.: ДМК Пресс
Страниц
426
Предпросмотр
ID
809592
Аннотация
Книга рассказывает о Clojure — современном диалекте Лиспа. Это функциональный язык с акцентом на неизменяемость и многопоточность. Он появился десять лет назад и постепенно набирает популярность в России. В семи главах мы рассмотрим, как работать с Clojure на производстве. Эта книга не для тех, кто учит язык с нуля. Ожидается, что читатель знаком с Clojure или другим диалектом Лиспа. Чтобы лучше усвоить материал, желательно иметь опыт программирования. Для аудитории продвинутого уровня.
Кому рекомендовано
Для аудитории продвинутого уровня.
ISBN
978-5-93700-055-2
УДК
004.432.42
ББК
32.973-018.1
Гришаев, И. В. Clojure на производстве / И. В. Гришаев .— 2-е изд. — Москва : ДМК Пресс, 2022 .— 426 с. — ISBN 978-5-93700-055-2 .— URL: https://rucont.ru/efd/809592 (дата обращения: 22.04.2025)
Популярные
Введение в теорию игр: учебное пособие
110,00 руб
Этика и права человека в информационном ...
220,00 руб
Блок-схемы на основные технологические ц...
220,00 руб
Программирование технологических контрол...
200,00 руб
Современные направления развития измерит...
150,00 руб
Библиотековедение, библиографоведение и ...
290,00 руб
Вы уже смотрели
ХХХI Ежегодная богословская конференция ...
60,00 руб
Анализ угроз физической безопасности тип...
600,00 руб
Делаю, что хочу. Как понять, что ты люби...
1620,00 руб
CIS Iron and Steel Review (на английском...
3100,00 руб
Охрана интеллектуальной собственности в ...
80,00 руб
Гальванотехника и обработка поверхности ...
220,00 руб
Предпросмотр (выдержки из произведения)
Резюме документа
Страницы
Текст
Clojure_на_производстве.pdf
Стр.3
Стр.4
Стр.5
Стр.6
Clojure_на_производстве.pdf
УДК 004.432.42Clojure ББК 32.973-018.1 Г82 Гришаев И. В. Г82 Clojure на производстве. Второе издание. — М.: ДМК Пресс. 2022 — 424 с. ISBN 978-5-93700-055-2 Книга рассказывает о Clojure — современном диалекте Лиспа. Это функциональный язык с акцентом на неизменяемость и многопоточность. Он появился десять лет назад и постепенно набирает популярность в России. В семи главах мы рассмотрим, как работать с Clojure на производстве. Эта книга не для тех, кто учит язык с нуля. Ожидается, что читатель знаком с Clojure или другим диалектом Лиспа. Чтобы лучше усвоить материал, желательно иметь опыт программирования. Для аудитории продвинутого уровня. УДК 004.432.42Clojure ББК 32.973-018.1 Все права защищены. Любая часть этой книги не может быть воспроизведена в какой бы то ни было форме и какими бы то ни было средствами без письменного разрешения владельцев авторских прав. Материал, изложенный в данной книге, многократно проверен. Но поскольку вероятность технических ошибок все равно существует, издательство не может гарантировать абсолютную точность и правильность приводимых сведений. В связи с этим издательство не несет ответственности за возможные ошибки, связанные с использованием книги. © Гришаев И.В., 2021 ISBN 978-5-93700-055-2 © Издание, ДМК Пресс, 2022
Стр.3
Оглавление 1 Веб-разработка 9 1.1 Основы HTTP . . . . . . . . . . . . . . . . . . . . . . 10 1.2 HTTP в Clojure . . . . . . . . . . . . . . . . . . . . . 14 1.3 Запросы и ответы . . . . . . . . . . . . . . . . . . . . 17 1.4 Маршруты . . . . . . . . . . . . . . . . . . . . . . . . 19 1.5 Middleware . . . . . . . . . . . . . . . . . . . . . . . . 28 1.6 Файлы и ресурсы . . . . . . . . . . . . . . . . . . . . 47 1.7 Стриминг и проксирование . . . . . . . . . . . . . . . 50 1.8 Другие библиотеки . . . . . . . . . . . . . . . . . . . 51 1.9 Заключение . . . . . . . . . . . . . . . . . . . . . . . . 52 2 Clojure.spec 55 2.1 Типы и классы . . . . . . . . . . . . . . . . . . . . . . 56 2.2 Основы spec . . . . . . . . . . . . . . . . . . . . . . . 57 2.3 Исключения . . . . . . . . . . . . . . . . . . . . . . . 59 2.4 Спеки-коллекции . . . . . . . . . . . . . . . . . . . . 61 2.5 Вывод значений . . . . . . . . . . . . . . . . . . . . . 65 2.6 Спеки-перечисления . . . . . . . . . . . . . . . . . . . 67 2.7 Продвинутые техники . . . . . . . . . . . . . . . . . . 69 2.8 Логические пути . . . . . . . . . . . . . . . . . . . . . 72 2.9 Обратное действие . . . . . . . . . . . . . . . . . . . . 73 2.10 Анализ ошибок . . . . . . . . . . . . . . . . . . . . . . 76 2.11 Понятные ошибки . . . . . . . . . . . . . . . . . . . . 77 2.12 Парсинг . . . . . . . . . . . . . . . . . . . . . . . . . . 92 2.13 Разбор Clojure-кода (теория) . . . . . . . . . . . . . . 104 2.14 Спецификация функций . . . . . . . . . . . . . . . . 108 2.15 Повторное использование спек . . . . . . . . . . . . . 112 2.16 Дополнения . . . . . . . . . . . . . . . . . . . . . . . . 113 2.17 Заключение . . . . . . . . . . . . . . . . . . . . . . . . 117
Стр.4
3 Исключения 119 3.1 Основы исключений . . . . . . . . . . . . . . . . . . . 120 3.2 Цепочки и контекст . . . . . . . . . . . . . . . . . . . 123 3.3 Переходим к Clojure . . . . . . . . . . . . . . . . . . . 124 3.4 Подробнее о контексте . . . . . . . . . . . . . . . . . 128 3.5 Когда бросать исключения . . . . . . . . . . . . . . . 129 3.6 Подробнее о цепочках . . . . . . . . . . . . . . . . . . 131 3.7 Печать исключений . . . . . . . . . . . . . . . . . . . 133 3.8 Логирование . . . . . . . . . . . . . . . . . . . . . . . 135 3.9 Контекст исключений . . . . . . . . . . . . . . . . . . 137 3.10 Сбор исключений . . . . . . . . . . . . . . . . . . . . 140 3.11 Sentry и Ring . . . . . . . . . . . . . . . . . . . . . . . 143 3.12 Переходы по коду . . . . . . . . . . . . . . . . . . . . 145 3.13 Finally и контекстный менеджер . . . . . . . . . . . . 148 3.14 Исключения на предикатах . . . . . . . . . . . . . . 151 3.15 Приёмы и функции . . . . . . . . . . . . . . . . . . . 154 3.16 Заключение . . . . . . . . . . . . . . . . . . . . . . . . 158 4 Изменяемость 159 4.1 Общие проблемы . . . . . . . . . . . . . . . . . . . . 159 4.2 Атомы . . . . . . . . . . . . . . . . . . . . . . . . . . . 164 4.3 Volatile . . . . . . . . . . . . . . . . . . . . . . . . . . 174 4.4 Переходные коллекции . . . . . . . . . . . . . . . . . 177 4.5 Переменные и alter-var-root . . . . . . . . . . . . . . 184 4.6 Присваивание с set! . . . . . . . . . . . . . . . . . . . 193 4.7 Изменения в контексте . . . . . . . . . . . . . . . . . 196 4.8 Локальные переменные в контексте . . . . . . . . . . 203 4.9 Глобальные изменения в контексте . . . . . . . . . . 205 4.10 Заключение . . . . . . . . . . . . . . . . . . . . . . . . 210 5 Конфигурация 213 5.1 Постановка проблемы . . . . . . . . . . . . . . . . . . 213 5.2 Семантика . . . . . . . . . . . . . . . . . . . . . . . . 214 5.3 Цикл конфигурации . . . . . . . . . . . . . . . . . . . 215 5.4 Ошибки конфигурации . . . . . . . . . . . . . . . . . 217 5.5 Загрузчик конфигурации . . . . . . . . . . . . . . . . 217 5.6 Подробнее о переменных среды . . . . . . . . . . . . 224 5.7 Конфигурация в среде . . . . . . . . . . . . . . . . . 226 5.8 Недостатки среды . . . . . . . . . . . . . . . . . . . . 228 5.9 Переменные среды в Clojure . . . . . . . . . . . . . . 232 5.10 Простой менеджер конфигурации . . . . . . . . . . . 237
Стр.5
5.11 Чтение среды из конфигурации . . . . . . . . . . . . 240 5.12 Короткий обзор форматов . . . . . . . . . . . . . . . 243 5.13 Промышленные решения . . . . . . . . . . . . . . . . 248 5.14 Заключение . . . . . . . . . . . . . . . . . . . . . . . . 256 6 Системы 257 6.1 Подробнее о системе . . . . . . . . . . . . . . . . . . . 257 6.2 Подготовка к обзору . . . . . . . . . . . . . . . . . . 259 6.3 Mount . . . . . . . . . . . . . . . . . . . . . . . . . . . 262 6.4 Component . . . . . . . . . . . . . . . . . . . . . . . . 279 6.5 Integrant . . . . . . . . . . . . . . . . . . . . . . . . . 309 6.6 Заключение . . . . . . . . . . . . . . . . . . . . . . . . 320 7 Тесты 323 7.1 Основные понятия . . . . . . . . . . . . . . . . . . . . 323 7.2 Тесты в Clojure . . . . . . . . . . . . . . . . . . . . . 333 7.3 Полезные практики . . . . . . . . . . . . . . . . . . . 340 7.4 Фикстуры . . . . . . . . . . . . . . . . . . . . . . . . . 347 7.5 This is fine . . . . . . . . . . . . . . . . . . . . . . . . 355 7.6 Метки и селекторы . . . . . . . . . . . . . . . . . . . 357 7.7 Проблема окружения . . . . . . . . . . . . . . . . . . 362 7.8 Тестирование веб-приложений . . . . . . . . . . . . . 387 7.9 Тестирование систем . . . . . . . . . . . . . . . . . . 392 7.10 Интеграционные тесты . . . . . . . . . . . . . . . . . 396 7.11 Другие решения . . . . . . . . . . . . . . . . . . . . . 402 7.12 Заключение . . . . . . . . . . . . . . . . . . . . . . . . 407 Что дальше Предметный указатель 411 412
Стр.6
Облако ключевых слов *
* - вычисляется автоматически