“芭蕾舞女演员”可能成为集成的编程语言

芭蕾舞女演员是今年9月10日发布的最新编程语言1.0版本。 有超过一千种编程语言。 为什么需要另一种编程语言? 芭蕾舞女演员语言旨在简化称为集成的特定编程领域。 您可能是一名开发各种Web服务并打算将这些服务互连的开发人员。 然后,芭蕾舞女演员语言可能是您的下一个编程伴侣。

这篇文章旨在向您介绍Ballerina,这是一种灵活,功能强大且美观的编程语言,可帮助您实现各种集成需求。 您可以从Ballerinalang官方网站下载并安装Ballerina。

它是什么样子的?

当我说这是一种编程语言时,首先想到的是外观。 芭蕾舞女演员的语言语法是基于Java,Go和JavaScript等编程语言而形成的。 芭蕾舞女演员是一种静态类型的语言。 芭蕾舞女演员有nil,boolean,int,float,decimal和string作为基本数据类型。 例如,如果您需要定义一个整数,则语法如下。

整数总计= 99;

与其他语言一样,芭蕾舞女演员具有main方法,这是主要程序入口点。 您可以编写一个简单的“ hello world”,如下所示。

import ballerina/io;
public function main ()  {
    io:println( "Hello, World!" );
}

除了常规的原始数据类型之外,芭蕾舞女演员还提供了各种非原始数据类型,例如数组,元组,地图,表,联合等。芭蕾舞女演员将nil表示为方括号“()”

变量的另一种特殊类型是“ anydata”数据类型。 此类型是()| boolean | int | float | decimal | string |(anydata | error)[] | map <anydata | error> | xml | table数据类型的并集。 anydata变量可以在期望纯值的地方使用。

由于Ballerina专为构建可在网络上运行的应用而设计,因此它本身就支持JSON和XML。 您可以在JavaScript中轻松定义JSON变量,如下所示。

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 `<book>The Lost World</book>`;
io:println(x1);

芭蕾舞女演员提供了内置库来实现各种功能。 在芭蕾舞女演员中,这称为模块。 模块的工作方式与Java包相同。 您可以将内置模块或自己的模块导入应用程序。 芭蕾舞女演员具有内置的日志记录,数学,编码,字符串,缓存,时间,文件处理以及许多其他模块。

语法的流控制与其他语言相同。 它支持语法“ if else”,“ while”和“ foreach”。 Foreach语法提供对数组和映射的迭代支持。 如果您正在寻找一种验证空值的有吸引力的方法,那么Ballerina将把Elvis运算符提供给Elvis运算符,以验证指定的变量是否为空。 语法为“ expression?:expressionIfNil”,下面是一个示例,用于验证变量x是否为null。

string elvisOutput = x ?: "value is nil" ;

芭蕾舞女演员的面向对象编程

芭蕾舞女演员确实为面向对象的编程提供了帮助。 Ballerina OOP语法似乎更接近于Python OOP语法。 这是使用构造函数定义对象的示例。

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;
    }
}

实例化对象是简单而直接的,例如“ Person p1 = new(5,“ John”,“ Doe”);“。 可以使用dot(“。”)运算符访问对象,该运算符与其他语言相同。

p1.getFullName()

芭蕾舞女演员正在为封装提供帮助。 在这里,您可以使用适当的访问级别在对象内定义变量。 芭蕾舞女演员支持以下访问修饰符。

公共-随处可见

私人的-仅在同一对象内可见

无修饰符-仅在同一包装中可见。

您也可以在芭蕾舞女演员中使用抽象概念。 抽象是强大的OOP概念,在大型模块化软件的设计中至关重要。 您可以在芭蕾舞女演员中定义和重用抽象对象。 您可以使用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 ;

};

还剩下一个称为多态的OOP概念,以用芭蕾舞女演员的语言来完成OOP概念。 多态性也可以在Ballerina语言中实现,如下所示。 在这里,一个人员对象可以有多种类型,因为它是一个抽象类。

Person p = new Employee( 5 , "John" , "Doe" );

与芭蕾舞女演员语言整合

正如我在简介中前面提到的那样,芭蕾舞女演员是专门为解决集成问题而设计的。 我们生活在地球上成千上万的Web服务器正在运行并彼此交互的地球上。 早期的开发人员在将这些服务相互连接时遇到问题。 企业集成总线作为一种解决集成问题的方法而出现。 ESB模型提供了一种优雅的方式来将各种不同的服务彼此互连。 这些ESB产品的常见问题是配置困难且灵活性较低。

与ESB相比,芭蕾舞女演员更加用户友好,因此开发人员可以通过编码来设计系统。 芭蕾舞女演员提供内置库来解决各种集成问题。

集成的一般要求是在不同协议之间读取,转发和转换消息。 芭蕾舞女演员为HTTP,HTTPS,HTTP2,Websockets,GRPC,TCP,UDP等传输提供内置帮助。

芭蕾舞女演员可以同时充当客户端和服务器。 将请求发送到另一个端点很简单,因为它只需要三行代码。 您可以根据需要设置请求标头,从而轻松调用REST API后端。 由于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和基于Web套接字的服务器就像构建HTTP服务器一样简单明了。

当涉及可靠消息传递时,消息代理是集成的最重要方面之一。 如果您需要可靠地发送消息,则可以将Message Broker和Ballerina Integrator一起使用。 芭蕾舞女演员为ActiveMQ,RabbitMQ和NATS等著名消息代理提供帮助。 您可以仅使用几行Ballerina代码生成和接收消息,这使它成为与所有集成需求结合使用的最佳语言。

结论

在本文中,我试图解释Ballerina作为通用编程语言以及用于集成的专用编程语言的功能。 还有很多功能,例如线程,流,安全性以及对微服务的本机支持,这些我在这里没有解决。 我将在另一篇文章中向您详细说明这些功能。

您可以从他们的 官方网站 了解更多有关Ballerina语言的信息 在这里,您可以找到每种用例的示例实现。 您可以在 Twitter 关注我, 以了解有关技术知识的更多信息。 转到芭蕾舞女演员 下载 页面,然后立即尝试。 顾名思义,它是灵活,强大和美观的。

From: https://hackernoon.com/first-glimpse-of-ballerina-language-language-of-integration-q31x31jv

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值