Camel Up

Змеиная нотация (snake case, snake-case)

Изображение: Rvector / Shutterstock / Skillbox Media

Слова разделяются символами подчёркивания — они как бы ползут по строке, в результате получается длииинное, как змея, название.

Пример

calculate_elephant_weight

Используется, например, в языках Python и Rust для имён переменных и функций.

Если в предыдущем примере заменить все буквы на заглавные, то получится SCREAMING_SNAKE_CASE (кричащая змеиная нотация).

Эту вариацию чаще всего применяют для определения констант — в тех же Python и Rust, Java, PHP и многих других.

Кричащей её назвали, потому что в интернет-переписке переход на капс часто означает повышение градуса беседы и даже крик.

Знакомство c Camel

Зачем использовать Camel

  • Механизм посредничества и маршрутизации
  • Расширяемая библиотека компонентов
  • Шаблоны интеграции корпоративных приложений (EIP)
  • Предметно-ориентированный язык (DSL)
  • Маршрутизатор, не зависящий от формата полезной нагрузки
  • Архитектура на основе подключаемых модулей
  • Модель Plain Old Java Object (POJO)
  • Простота конфигурирования
  • Автоматические конверторы типов
  • Легковесное ядро, пригодное для встраивания в микросервисы
  • Поддержка облачных технологий
  • Пакет средств тестирования
  • Активное сообщество разработки

Предметно-ориентированный язык (DSL)

Java DSL

XML DSL

Рис. 1.3 DSL-языки Camel построены на основе популярных языков программирования вроде Java, поэтому вам доступны удобные и привычные функции IDE-среды.

Поддержка облачных технологий

  • Amazon DynamoDB, EC2, Kinesis, SimpleDB, SES, SNS, SQS, SWF и S3
  • Braintree (PayPal, Apple, Android Pay, и т. п.)
  • Dropbox
  • GitHub
  • Google Big Query, Calendar, Drive, Mail и Pub Sub
  • HipChat
  • LinkedIn
  • Salesforce
  • и многим другим

Приступая к работе

Загрузка и установки Camel

на сайте проекта Apache Camel

1	$ ls
2	doc  examples  lib  LICENSE.txt  NOTICE.txt  README.txt
  • doc – папка с руководством по Camel в формате HTML. Это просто копия сайта Camel на момент выпуска релиза. Она пригодится в те моменты, когда у вас нет доступа к сайту или нет под рукой этой книги
  • examples – папка с 97 примерами Camel
  • lib – папка со всеми библиотеками Camel. Позже мы покажем, как использовать Maven для простой загрузки зависимостей для компонентов, не входящих в ядро
  • LICENSE.txt – файл с текстом лицензии на дистрибутив Camel. Поскольку это проект Apache, лицензия представляет собой Apache License, version 2.0
  • NOTICE.txt – файл с информацией о авторских правах на сторонние зависимости, входящие в состав дистрибутива Camel
  • README.txt – файл с кратким введением в Camel и перечнем ссылок, которые помогут новичкам быстро приступить к работе

Первый запуск Camel

GitHubРис. 1.4 Маршрутизация файлов из папки data/inbox в папку data/outbox.Листинг 1.1 Маршрутизация файлов из одной папки в другую на «чистой» Java

Листинг 1.2 Маршрутизация файлов из одной папки в другую на Apache Camel

Apache Maven

  • data – в этой папке есть папка inbox с единственным файлом message1.xml
  • src – папка с исходным кодом примеров из этой главы
  • pom.xml – файл с информацией для сборки примеров, а именно XML-файл Maven POM (Project Object Model)

ПРИМЕЧАНИЕЛистинг 1.3 Файл Maven POM, необходимый для использования основной библиотеки Camel

  1. Создает search path на основе groupId, artifactId и version. Для элемента version задано свойство camel-version, определенное в POM, на который ссылается элемент parent, и равное в итоге 2.20.1. Тип зависимости не задан, поэтому считается, что это файл JAR. Search path таким образом превращается в org/apache/camel/camel-core/2.20.1/camel-core-2.20.1.jar.
  2. Поскольку листинг 1.3 не содержит никаких указаний, где искать зависимости Camel, Maven ищет их в своем центральном репозитории по адресу.
  3. Объединив search path и URL репозитория, Maven пытается загрузить файл.
  4. JAR-файл сохраняется в локальный кэш Maven, который обычно находится в домашнем каталоге .m2/repository. В Linux/macOS это папка ~/.m2/repository, в Windows – C:\Users\\.m2\repository.
  5. При запуске кода приложения из листинга 1.2 JAR-файл Camel добавляется в classpath.
1	mvn compile exec:java

ПРИМЕЧАНИЕ

Нотация Паскаля (Pascal case, PascalCase)

Скриншот: winworldpc.com

Тот же camelCase, но все слова, даже первое, начинаются с заглавной буквы.

Пример

CalculateElephantWeight

В таком стиле часто именуют классы (в Java, Python, JavaScript), а в программной платформе .NET — ещё и переменные.

Стиль так называется вовсе не в честь Блеза Паскаля. Pascal case стал известным благодаря одному почти забытому языку Паскаль — в нём так именовались переменные, процедуры и функции.

А вот язык Паскаль, кстати, назван Никлаусом Виртом, его создателем, как раз в честь великого француза.

Иногда Pascal case называют upper camel case или, наоборот, camel case называют low Pascal case.

Как выбрать нотацию

Лучшей нотации на все случаи жизни не существует. Для разных языков программирования есть разные соглашения о наименованиях — это свод правил с рекомендациями, какие имена стоит выбирать для разных элементов программы (переменных, классов, методов и тому подобного). Например, здесь такого рода соглашения для Python, а здесь — для Java.

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

Мы на наших курсах не своевольничаем — учим называть переменные по всем канонам языка: будь то Java, C#, популярный сейчас R или другие из нашего каталога курсов. Бонусом к правилам наименования — навыки программирования на выбранном языке, а потом и помощь в трудоустройстве.

Шашлычная нотация (kebab case, kebab-case)

Изображение: Rvector / Shutterstock / Skillbox Media

В этой нотации слова разделяют символом дефиса. При некоторой доле фантазии можно представить, что слова при этом как бы насаживают на шампур — вот и получается шашлык (kebab).

Пример

calculate-elephant-weight

Примеры использования мы каждый день видим в URL-адресах, ещё kebab-имена дают CSS-стилям и HTML-тегам. В стайлгайде для Angular (фреймворк для веб-разработки) в kebab-нотации рекомендуют называть файлы компонентов, сервисов и других элементов приложения.

Существует kebab-case со всеми заглавными буквами — это SCREAMING-KEBAB-CASE (кричащая шашлычная нотация). Второе название такого стиля — COBOL_CASE, потому что в нём записывают все названия в языке COBOL. Это старый, но очень живучий язык.

Поделитесь в социальных сетях:FacebookXВКонтакте
Напишите комментарий