«Балерина» может стать языком программирования интеграции


Ballerina - последняя версия языка программирования, выпущенная 1.0 версии 10 сентября этого года. Существует более тысячи языков программирования. Зачем вам нужен другой язык программирования? Язык балерины призван упростить конкретную область программирования, известную как интеграция. Вы можете быть разработчиком, который разрабатывает различные виды веб-сервисов и намеревается соединить эти сервисы. Тогда язык Ballerina может стать вашим следующим компаньоном в программировании. Этот пост призван дать вам представление о Ballerina, гибком, мощном и красивом языке программирования, который поможет вам реализовать любые требования к интеграции. Вы можете скачать и установить Ballerina с официального сайта Ballerinalang.
Как он выглядит?
Когда я сказал, что это язык программирования, первое, что приходит вам в голову, это то, как он выглядит. Синтаксис языка балерины формируется на основе языков программирования, таких как Java, Go и JavaScript. Балерина - статичный типизированный язык. Балерина имеет в качестве базовых типов данных nil, boolean, int, float, decimal и string. Например, если вам нужно определить целое число, синтаксис будет следующим .int total = 99; Как и в других языках, у Ballerina есть метод main, который является основной точкой входа в программу. Вы можете написать простой «привет мир», как показано ниже.import ballerina/io; public function main() { io:println("Hello, World!"); }Помимо обычных примитивных типов данных, Ballerina предоставляет различные не примитивные типы данных, такие как Массивы, Кортежи, Карты, Таблицы, Объединение и т. Д. Балерина представляет ноль в виде скобки «()». Другой специальный тип переменной - это данные «anydata». тип. Этот тип является объединением () | boolean | int | float | decimal | string | (anydata | error) [] | map | xml | табличных типов данных. Переменные anydata могут использоваться в тех местах, где вы ожидаете чистых значений. Поскольку Ballerina специально разработана для создания приложений, работающих в сетях, она изначально поддерживает JSON и XML. Вы можете легко определить переменные JSON следующим образом в JavaScript.json user = { fname: "Peter", lname: "Stallone", "age": age, address: { line: "20 Palm Grove", city: "Colombo 03", country: "Sri Lanka" } }; io:println(user.address.country);Таким же образом вы можете определять и взаимодействовать с объектом XML.xml x1 = xml `The Lost World`; io:println(x1);Балерина предлагает встроенные библиотеки для реализации различных функций. У балерины это называется модулями. Модули работают так же, как пакеты Java. Вы можете импортировать встроенные модули или ваши собственные модули в ваше приложение. В Ballerina есть встроенные функции ведения журналов, математики, кодирования, строк, кэширования, времени, обработки файлов и многих других модулей. Управление синтаксисом потока такое же, как и в других языках. Он обеспечивает поддержку синтаксиса «if else», «while» и «foreach». Синтаксис Foreach обеспечивает поддержку итераций для массивов и карт. Если вы ищете привлекательный способ проверки нулевого значения, то Ballerina предоставит оператору Elvis возможность проверить, является ли указанная переменная нулевой или нет. Синтаксис будет выглядеть как «expression ?: expressionIfNil» и, ниже, будет примером для проверки, является ли переменная x нулевой или нет.string elvisOutput = x ?: "value is nil";
Объектно-ориентированное программирование с балериной
Балерина оказывает помощь в объектно-ориентированном программировании. Синтаксис ООП Ballerina кажется ближе к синтаксису ООП Python. Вот пример для определения объектов с помощью конструкторов.type Person object { public int age; public string firstName; public string lastName; function __init(int age, string firstName, string lastName) { self.age = age; self.firstName = firstName; self.lastName = lastName; } function getFullName() returns string { return self.firstName + " " + self.lastName; } function checkAndModifyAge(int condition, int a); }; function Person.checkAndModifyAge(int condition, int a) { if (self.age < condition) { self.age = a; } }Объект создания объекта прост и понятен как «Персона p1 = new (5,« John »,« Doe »);». Доступ к объекту можно получить с помощью оператора точки («.»), Который аналогичен другим языкам.p1.getFullName()Балерина оказывает помощь для инкапсуляции. Здесь вы можете определить переменные внутри объекта с соответствующим уровнем доступа. Ballerina поддерживает следующие модификаторы доступа. Public - видимый вездеprivate - видимый только внутри одного и того же модификатора objectno - видимый только внутри одного пакета. Вы также можете использовать концепты абстракции с Ballerina. Абстракция - это мощная концепция ООП, которая необходима при разработке большого модульного программного обеспечения. Вы можете определять и повторно использовать абстрактные объекты в балерине. Вы можете преобразовать объект в абстрактный объект, используя ключевое слово abstract. Пример абстрактного объекта будет следующим.type Person abstract object { public int age; public string firstName; public string lastName; function getFullName() returns string; function checkAndModifyAge(int condition, int a); };Вы можете повторно использовать объект `Person` следующим образом, чтобы повторно использовать переменные и методы в объектах Person.type Employee abstract object { *Person; public float salary; function __init(int age, string firstName, string lastName) { self.age = age; self.firstName = firstName; self.lastName = lastName; } function getSalary() returns float; };Существует еще одна концепция ООП, известная как Полиморфизм, для завершения концепции ООП на языках балерины. Полиморфизм также может быть реализован на языке Ballerina следующим образом в предыдущих сегментах кода. Здесь объект person может иметь много типов, так как это абстрактный класс.Person p = new Employee(5, "John", "Doe");
Интеграция с языком Ballerina
Как я упоминал ранее во введении, Ballerina была специально разработана для решения проблем интеграции. Мы живем в мире, где тысячи веб-серверов работают и взаимодействуют друг с другом. У первых разработчиков были проблемы со связью этих сервисов друг с другом. Enterprise Integration Bus выступает в качестве решения проблем интеграции. Модель ESB предлагает элегантный способ связать различные виды услуг друг с другом. Общая проблема с этими продуктами ESB заключается в том, что их сложно настроить и они менее гибкие. По сравнению с ESB, Ballerina более удобна для пользователя, поэтому разработчики могут проектировать систему с помощью кодирования. Ballerina предлагает встроенные библиотеки для решения всевозможных проблем интеграции. Общее требование интеграции заключается в чтении, пересылке и преобразовании сообщений между различными протоколами. Ballerina предоставляет встроенную помощь для транспорта HTTP, HTTPS, HTTP2, Websockets, GRPC, TCP, UDP и т. Д. Ballerina может функционировать как клиент, так и сервер. Отправка запроса в другую конечную точку проста, так как для этого требуется всего три строки кода. Вы можете легко вызвать бэкэнд API REST, установив заголовки запросов по мере необходимости. Поскольку Ballerina изначально поддерживает JSON, вы можете напрямую манипулировать контентом JSON в программном обеспечении без импорта модулей сторонних производителей.import ballerina/http; http:Client clientEndpoint = new("https://postman-echo.com"); public function main() { var response = clientEndpoint->get("/get?test=123"); }С другой стороны, вы можете создать HTTP-сервер с языком балерины. Вы можете использовать встроенные функции безопасности для защиты вашей HTTPS-ссылки.import ballerina/http; import ballerina/log; http:ServiceEndpointConfiguration helloWorldEPConfig = { secureSocket: { keyStore: { path: "${ballerina.home}/bre/security/ballerinaKeystore.p12", password: "ballerina" } } }; listener http:Listener helloWorldEP = new(9095, config = helloWorldEPConfig); @http:ServiceConfig { basePath: "/hello" } service helloWorld on helloWorldEP { @http:ResourceConfig { methods: ["GET"], path: "/" } resource function sayHello(http:Caller caller, http:Request req) { var result = caller->respond("Hello World!"); if (result is error) { log:printError("Error in responding ", err = result); } } }Балерина также обеспечивает поддержку потоковой передачи через интерфейс HTTP. Создание GRPC и серверов на основе веб-сокетов является простым и простым, как создание HTTP-серверов. Посредники сообщений являются одним из наиболее важных аспектов интеграции, когда речь идет о надежном обмене сообщениями. Если вам нужно надежно отправлять сообщения, вы можете использовать Message Broker вместе с Ballerina Integrator. Балерина оказывает помощь известным брокерам сообщений, таким как ActiveMQ, RabbitMQ и NATS. Вы можете генерировать сообщения и получать сообщения только с несколькими строками кодов Ballerina, что делает его лучшим языком для использования со всеми требованиями интеграции.
Заключение
В этой статье я попытался объяснить возможности Ballerina как универсальный язык программирования, а также специализированный язык программирования для интеграции. Существует гораздо больше функций, таких как многопоточность, потоковая передача, безопасность и встроенная поддержка микросервисов, которые я здесь не рассматривал. Я собираюсь подробно разъяснить вам эти функции в другой статье. Вы можете узнать больше о языке балерины на их официальном сайте. Там вы можете найти пример реализации для каждого варианта использования. Вы можете подписаться на меня в твиттере, чтобы узнать больше о технических вещах. Перейдите на страницу загрузки Ballerina и попробуйте прямо сейчас. Как следует из названия, он гибкий, мощный и красивый.
Теги
Язык программирования Ballerina Язык программирования Ballerina Язык программирования Ballerina Язык интеграции Кодирование Hackernoon Основная история
Комментарии
Продолжить обсуждение
Источник: https://hackernoon.com/first-glimpse-of-ballerina-language-language-of-integration-q31x31jv
Якщо у вас виникли питання, вбо ви бажаєте записатися на індивідуальний урок, замовити статтю (інструкцію) або придбати відеоурок, пишіть нам на: скайп: olegg.pann telegram, viber - +380937663911 додавайтесь у телеграм-канал: t.me/webyk email: oleggpann@gmail.com ми у fb: www.facebook.com/webprograming24 Обов`язково оперативно відповімо на усі запитіння
Поділіться в соцмережах
Подобные статьи: