当前位置: 首页 > 科技观察

为什么要使用Ballerina编程?

时间:2023-03-14 01:21:32 科技观察

虽然API可以用任何编程语言编写,但开发人员在创建新API和使用现有API时面临许多挑战。此外,企业集成仍然具有挑战性。集成编程实践已经成为孤立的,使用受欢迎的集成工具进行编程的开发人员必须使用另一种工具或编程语言来开发应用程序的其余部分。除其他外,迁移到云意味着团队现在必须在容器中部署集成系统,并使用分布在大量节点上的微服务创建应用程序。现有的编程语言并不是特别擅长理解这些问题以及团队正在努力做什么。它们根本不是为云构建的。另一方面,Ballerina是一种用于云原生编程和集成的开源语言,它为致力于为网络交互创建新API、新集成和新逻辑的开发人员提供了一组合适的工具和抽象级别。凭借用于开发服务和API的语法、JSON支持和内置并发性,SwanLake的新普遍可用性进一步简化了开发人员构建和部署云原生应用程序的方式。以下是开发人员应选择Ballerina为其云原生应用程序编写API、集成和后端逻辑的主要原因。Ballerina面向数据和网络由于云服务越来越多,几乎每个企业应用都需要网络调用。对于开发人员来说,这增加了在他们的代码中处理资源的责任。Ballerina带有一个网络友好型系统,具有处理网络数据的强大功能。Ballerina可以轻松地对数据建模并通过网络来回发送。该语言具有用于编写、声明、操作、查询、结构化、重组和导航数据的强大工具。importballerina/http;importballerina/io;typeCountryrecord{stringcountry;人口;字符串大陆;内装箱;intdeaths;};//打印病死率最高的前10个国家。publicfunctionmain()返回错误?{http:ClientdiseaseEp=https://disease.sh/v3");Country[]countries=checkdiseaseEp->get("/covid-19/countries");jsonsummary=fromvar{国家、大陆、人口、病例、死亡}在population>=100000&&deaths>=100letdecimalcaseFatalityRatio=deaths/cases*100orderbycaseFatalityRatiodescendinglimit10select{country,continent,population,caseFatalityRatio};io:println(summary);}编程类型具有灵活类型系统优势的语言系统是表示数据和实现逻辑的基础。虽然开发人员必须在代码中处理网络资源,但编程语言本身必须协助进行此操作。这就是为什么Ballerina专门与网络友好的类型系统。就像在典型的编程语言中一样,有一些标准和协议定义了如何处理通过网络传输的数据并将其绑定到语言(数据绑定)。接收到数据后,开发人员必须将数据绑定到语言中的数据结构才能对其进行操作。Ballerina的类型系统不仅可以描述内存中的数据,还可以描述网络上的数据。特别是,开发人员做了大量工作来与JSON、XML和其他格式紧密集成。开发人员可以在数据通过网络传输时将数据带入该语言,而无需任何人为的、复杂的数据绑定问题,从而有效地消除了众所周知的数据格式和网络数据结构中的数据绑定概念。Ballerina的类型系统主要是结构性的,增加了对名义类型的支持。这意味着类型兼容性是通过考虑值的结构来识别的,而不是仅仅依赖于类型名称。这与Java、C++和C#等具有受实际类型名称约束的类型系统的语言形成对比。序列图模型网络交互在Ballerina中,每个程序都可以显示为自动指示分布式并发交互的序列图。Ballerina程序中的函数在文本语法和序列图中都有等效的表示。您可以在这两种视图之间无缝切换。Ballerina独特的图形视图不是噱头,而是被设计到底层语言中,让用户真正深入了解功能的网络交互和并发机制的使用。importballerina/http;importballerinax/googleapis.sheets;configurablestringgithubPAT=?;configurablestringrepository="ballerina-platform/ballerina-lang";configurablestringsheetsAccessToken=?;configurablestringspreadSheetId=?;configurablestringsheetName="Sheet1";typePRrecord{stringurl;字符串标题;字符串状态;stringcreated_at;stringupdated_at;};publicfunctionmain()返回错误?{http:Clientgithub=checknew("https://api.github.com/repos");mapheaders={"Accept":"application/vnd.github.v3+json","Authorization":"token"+githubPAT};PR[]prs=checkgithub->get(string`/${repository}/pulls`,headers);sheets:Clientgsheets=checknew({auth:{token:sheetsAccessToken}});checkgsheets->appendRowToSheet(spreadSheetId,sheetName,["Issue","Title","State","CreatedAt","更新时间"]);foreachvar{url,title,state,created_at,updated_at}inprs{checkgsheets->appendRowToSheet(spreadSheetId,sheetName,[url,title,state,created_at,updated_at]);}}虽然Ballerina具有现代编程语言的所有共同特征,但由于易于使用、组合和创建云网络服务而脱颖而出语言特征如需深入介绍Ballerina的语言功能,我建议观看该语言开发者SanjivaWeerawarana的视频或此博客。原标题:WhyShouldYouProgramwithBallerina?,作者:VishvaAhangama