La “bailarina” podr铆a convertirse en el lenguaje de programaci贸n de la integraci贸n

Ballerina es el 煤ltimo lenguaje de programaci贸n que sali贸 a la venta el 10 de septiembre de este a帽o. Hay m谩s de mil lenguajes de programaci贸n en el mercado. 驴Por qu茅 necesita otro lenguaje de programaci贸n? Lenguaje de bailarina destinado a simplificar el dominio de programaci贸n particular conocido como integraci贸n. Usted puede ser un desarrollador que desarrolla diferentes tipos de servicios web y tiene la intenci贸n de interconectar esos servicios. Este post tiene la intenci贸n de darte una introducci贸n a Ballerina, un lenguaje de programaci贸n flexible, poderoso y hermoso que te ayuda a implementar cualquier tipo de requerimientos de integraci贸n. Puedes descargar e instalar Ballerina desde la p谩gina web oficial de Ballerinalang.

驴Qu茅 es lo que parece?

Cuando dije que este es un lenguaje de programaci贸n, la primera preocupaci贸n que te viene a la mente es c贸mo se ve. La sintaxis del lenguaje de las bailarinas toma forma a partir de lenguajes de programaci贸n como Java, Go y JavaScript. La bailarina es un lenguaje est谩tico mecanografiado. La bailarina tiene nulo, booleano, int, float, decimal y cadena como tipos de datos b谩sicos. Por ejemplo, si necesita definir un n煤mero entero, la sintaxis ser铆a la siguiente:.int total = 99;Al igual que los otros lenguajes, Ballerina tiene el m茅todo principal, que es el punto de entrada principal del programa. Puedes escribir un simple “hola mundo” como se muestra a continuaci贸n.

import ballerina/io;
funci贸n p煤blica principal(){
    io:println ("Hello, World!");
Aparte de los tipos de datos primitivos regulares, Ballerina proporciona varios tipos de datos no primitivos, tales como Arrays, Tuples, Mapas, Tablas, Uni贸n, etc. Las bailarinas representan cero como par茅ntesis "() "Otro tipo especial de variable es el tipo de datos "anydata". Este tipo es una uni贸n de los tipos de datos ()|boolean|int|float|decimal|string|(anydata|error)[]|map|xml|table. anydata variables pueden ser usadas en lugares donde se esperan valores puros, ya que Ballerina est谩 espec铆ficamente dise帽ada para construir aplicaciones que operan en redes, soporta nativamente JSON y XML. Puede definir f谩cilmente una variable JSON como la siguiente en JavaScript.
json user = {
         fama: "Peter",
         lname: "Stallone",
         "edad": edad,
         direcci贸n: {
             l铆nea: "20 Palm Grove",
             ciudad: "Colombo 03",
             pa铆s: "Sri Lanka"
         }
    };
io:println(user.address.country);

De la misma manera que puede definir e interactuar con objetos XML.

xml x1 = xml `The Lost World`;
io:println(x1);

Ballerina ofrece librer铆as incorporadas para la implementaci贸n de diferentes tipos de funcionalidades. En Ballerina, esto se llama m贸dulos. Los m贸dulos funcionan igual que los paquetes Java. Puede importar m贸dulos incorporados o sus propios m贸dulos a su aplicaci贸n. Ballerina tiene incorporado el registro, las matem谩ticas, la codificaci贸n, la cadena, el almacenamiento en cach茅, el tiempo, el procesamiento de archivos, y muchos m谩s m贸dulos.control de flujo de la sintaxis es el mismo que el de otros idiomas. Proporciona soporte para la sintaxis "if else", "while" y "foreach". La sintaxis de Foreach proporciona soporte de iteraci贸n sobre arrays y mapas. Si usted est谩 buscando una manera atractiva de verificar el nulo, entonces Ballerina le dar谩 al operador de Elvis para verificar si la variable especificada es nula o no. La sintaxis ser铆a comoexpresi贸n: expressionIfNil y, a continuaci贸n, un ejemplo para verificar si la variable x es nula o no.

Programaci贸n orientada a objetos con Ballerina

Ballerina proporciona asistencia para la programaci贸n orientada a objetos. La sintaxis OOP de la bailarina parece m谩s cercana a la sintaxis OOP de Python. A continuaci贸n se muestra un ejemplo de definici贸n de objetos con constructores.
edad de publicint;
public string firstName;
public string lastName;
function __init(int edad, cadena nombre, cadena apellido){
edad = edad;
self.firstName = nombre;
self.lastName = apellido;
}
getFullName() devuelve la cadena {
return self.firstName + " " " + self.lastName;
}
function checkAndModifyAge(int condition, int a);
};
Funci贸n Person.checkAndModifyAge(int condition, int a) {
si (auto.edad < condici贸n) { edad = a; } El objeto es simple y directo como "Persona p1 = nuevo(5, "John", "Doe");". El objeto puede ser accedido con el operador dot(".".") que es el mismo que en otros idiomas.

p1.getFullName()

Ballerina est谩 proporcionando asistencia para Encapsulaci贸n. Aqu铆 se pueden definir variables dentro de un objeto con el nivel de acceso apropiado. Ballerina soporta los siguientes modificadores de acceso.public – visible en todas partes – visible s贸lo dentro del mismo objeto – no modificador – visible s贸lo dentro del mismo paquete – Tambi茅n se pueden usar conceptos de abstracci贸n con Ballerina. La abstracci贸n es un poderoso concepto de OOP que es esencial en el dise帽o de grandes software modulares. Puedes definir y reutilizar objetos abstractos en la bailarina. Puede convertir un objeto en un objeto abstracto utilizando una palabra clave abstracta. El objeto abstracto del ejemplo ser铆a como sigue.

type Person abstract object {
    edad de publicint;
    public string firstName;
    public string lastName;
    getFullName() devuelve la cadena;
    function checkAndModifyAge(int condition, int a);
Puede reutilizar el objeto `Person` de la siguiente manera para reutilizar las variables y m茅todos en los objetos Person.
type Employee abstract object {
    *Persona;
    salario p煤blico flotante;
    function __init(int edad, cadena nombre, cadena apellido){
        edad = edad;
        self.firstName = nombre;
        self.lastName = apellido;
    }
    getSalary() devuelve float;
Hay un concepto m谩s de OOP conocido como Polimorfismo para terminar los conceptos de OOP en los lenguajes de las bailarinas. El polimorfismo tambi茅n puede ser implementado en el lenguaje de la Bailarina de la siguiente manera en segmentos de c贸digo anteriores. Aqu铆, un objeto persona puede tener muchos tipos, ya que es una clase abstracta.
Person p = new Employee(5, "John", "Doe");

Integraci贸n con el lenguaje de las bailarinas

Como mencion茅 antes en la introducci贸n, Ballerina fue especialmente dise帽ada para resolver problemas de integraci贸n. Vivimos en un mundo en el que miles de servidores web se est谩n ejecutando e interactuando entre s铆. Los primeros desarrolladores ten铆an problemas para conectar estos servicios entre s铆. Enterprise Integration Bus surge como una soluci贸n a los problemas de integraci贸n. El modelo ESB ofrece una manera elegante de interconectar distintos tipos de servicios entre s铆. El problema com煤n con estos productos ESB es que son dif铆ciles de configurar y menos flexibles, en comparaci贸n con ESB, Ballerina es m谩s f谩cil de usar para que los desarrolladores puedan dise帽ar el sistema mediante la codificaci贸n. El requisito general de la integraci贸n es leer, reenviar y transformar mensajes entre distintos protocolos. Ballerina proporciona asistencia integrada para transportes HTTP, HTTPS, HTTP2, Websockets, GRPC, TCP, UDP, etc. Ballerina puede funcionar tanto como cliente como como servidor. Enviar una solicitud a otro punto final es sencillo, ya que s贸lo requiere tres l铆neas de c贸digo. Puede llamar f谩cilmente al backend de la REST API configurando las cabeceras de petici贸n seg煤n sea necesario. Dado que Ballerina soporta JSON de forma nativa, puede manipular directamente el contenido de JSON dentro del software sin importar m贸dulos de terceros.

importar ballerina/http;
http:Client clientEndpoint = nuevo ("https://postman-echo.com");
funci贸n p煤blica principal(){
var response = clientEndpoint->get("/get?test=123");
Por otro lado, puede crear un servidor HTTP con un lenguaje de bailarinas. Puede utilizar las funciones de seguridad incorporadas para proteger su enlace HTTPS.

importar ballerina/http;
Importar bailarina/log;
http:ServiceEndpointConfiguration helloWorldEPConfig = {
secureSocket: {
keyStore: {
camino: "${ballerina.home}/bre/security/ballerinaKeystore.p12",
contrase帽a: "ballerina"
}
}
};
listener http:Listener helloWorldEP = nuevo(9095, config = helloWorldEPConfig);
@http:ServiceConfig {
basePath: "/hola"
}
servicio helloWorld en helloWorldEP {
@http:ResourceConfig {
m茅todos: ["LLEGAR"],
camino: "/"
}
funci贸n de recurso sayHello(http:Caller caller, http:Request req){
var result = caller->respond("Hello World!");
si (el resultado es un error) {
log:printError("Error al responder", err = resultado);
}
}
Balerina tambi茅n proporciona soporte para streaming a trav茅s de la interfaz HTTP. La construcci贸n de servidores basados en GRPC y en sockets web es tan sencilla y directa como la construcci贸n de servidores HTTP. Si necesita enviar mensajes de forma fiable, puede utilizar el Message Broker junto con el Ballerina Integrator. Ballerina proporciona asistencia a famosos Corredores de Mensajes como ActiveMQ, RabbitMQ y NATS. Puede generar mensajes y recibir mensajes con s贸lo unas pocas l铆neas de c贸digos de Bailarina que lo convierten en el mejor lenguaje a utilizar con todos los requisitos de integraci贸n.

Conclusi贸n

En este art铆culo, trat茅 de explicar las capacidades de la bailarina como un lenguaje de programaci贸n gen茅rico, as铆 como un lenguaje de programaci贸n especializado para la integraci贸n. Hay muchas m谩s caracter铆sticas como threading, streaming, seguridad y soporte nativo para microservicios que no he tratado aqu铆. Voy a aclarar estas caracter铆sticas en detalle en otro art铆culo. Puedes aprender m谩s sobre el lenguaje de las bailarinas en su sitio oficial . All铆 puede encontrar ejemplos de implementaci贸n para cada caso de uso. Puedes seguirme en twitter para saber m谩s sobre temas t茅cnicos. Ve a la p谩gina de Ballerina descarga e int茅ntalo ahora. Como su nombre indica, es flexible, poderoso y hermoso.

Etiquetas

BailarinaLenguaje de Programaci贸nProgramaci贸nProgramaci贸nBailarina LenguajeBailarinaLenguaje de Integraci贸nCodificaci贸nHackernoon Top Story

Comentarios

Contin煤e la discusi贸n