偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

為什么應(yīng)該用Ballerina編程?

譯文
開發(fā) 前端
一起來了解下開發(fā)人員應(yīng)選擇Ballerina為其云原生應(yīng)用程序編寫API、集成和后端邏輯的主要原因。

雖然可以使用任何編程語言編寫API,但開發(fā)人員在創(chuàng)建新API、使用已經(jīng)存在的API時面臨許多挑戰(zhàn)。此外,企業(yè)集成仍頗具挑戰(zhàn)性。

集成編程實踐已變得很孤立,使用青睞的集成工具進(jìn)行編程的開發(fā)人員必須使用另一種工具或編程語言開發(fā)其余應(yīng)用程序。除此之外,向云轉(zhuǎn)變意味著團(tuán)隊現(xiàn)在必須在容器中部署集成系統(tǒng),并使用分布在大量節(jié)點上的微服務(wù)創(chuàng)建應(yīng)用程序。

現(xiàn)有的編程語言并不特別擅長理解這些問題以及團(tuán)隊試圖所做的工作。它們根本不是為云而構(gòu)建的。而Ballerina是一種面向云原生編程和集成的開源語言,為致力于針對網(wǎng)絡(luò)交互創(chuàng)建新API、新集成和新邏輯的開發(fā)人員提供了一系列合適的工具和抽象級別。

憑借用于開發(fā)服務(wù)和API的語法、JSON支持以及內(nèi)置并發(fā),新的正式版Swan Lake可以進(jìn)一步簡化開發(fā)人員構(gòu)建和部署云原生應(yīng)用程序的方式。

以下是開發(fā)人員應(yīng)選擇Ballerina為其云原生應(yīng)用程序編寫API、集成和后端邏輯的主要原因。

Ballerina面向數(shù)據(jù)和網(wǎng)絡(luò)

由于云端服務(wù)越來越多,幾乎每個企業(yè)應(yīng)用程序都需要網(wǎng)絡(luò)調(diào)用。對于開發(fā)人員來說,這加大了處理其代碼中的資源方面的責(zé)任。Ballerina隨帶對網(wǎng)絡(luò)友好的類型系統(tǒng),有強(qiáng)大的功能來處理網(wǎng)絡(luò)上的數(shù)據(jù)。

Ballerina可以輕松地為數(shù)據(jù)建模,并通過網(wǎng)絡(luò)來回傳送。該語言有強(qiáng)大的工具來編寫、聲明、處理、查詢、結(jié)構(gòu)化、重組和導(dǎo)航數(shù)據(jù)。

importballerina/http;
importballerina/io;

typeCountryrecord {
stringcountry;
intpopulation;
stringcontinent;
intcases;
intdeaths;

};

// Prints the top 10 countries having the highest case-fatality ratio.

publicfunctionmain() returnserror? {
http:ClientdiseaseEp = checknew ("https://disease.sh/v3");
Country[] countries = checkdiseaseEp->get("/covid-19/countries");

jsonsummary =
fromvar {country, continent, population, cases, deaths} incountries
wherepopulation >= 100000 && deaths >= 100
letdecimalcaseFatalityRatio = <decimal>deaths / <decimal>cases *
100

orderbycaseFatalityRatiodescending
limit10
select {country, continent, population, caseFatalityRatio};
io:println(summary);

}

具有靈活類型系統(tǒng)的優(yōu)點

編程語言的類型系統(tǒng)是表示數(shù)據(jù)和實現(xiàn)邏輯的基礎(chǔ)。雖然開發(fā)人員必須處理其代碼中的網(wǎng)絡(luò)資源,但編程語言本身必須在該操作中提供幫助。這就是為什么Ballerina專門適用于對網(wǎng)絡(luò)友好的類型系統(tǒng)。

比如在典型的編程語言中,有一些標(biāo)準(zhǔn)和協(xié)議來定義如何處理通過網(wǎng)絡(luò)傳輸?shù)臄?shù)據(jù),并將其綁定到語言(數(shù)據(jù)綁定)。收到數(shù)據(jù)后,開發(fā)人員必須將數(shù)據(jù)綁定到語言中的數(shù)據(jù)結(jié)構(gòu),才能對其進(jìn)行操作。

Ballerina的類型系統(tǒng)不僅能描述內(nèi)存中的數(shù)據(jù),還能描述網(wǎng)絡(luò)上的數(shù)據(jù)。尤其是,為了與JSON、XML及其他格式緊密結(jié)合,開發(fā)者做了大量工作。數(shù)據(jù)通過網(wǎng)絡(luò)傳輸時,開發(fā)人員可以將其引入語言中,沒有任何人為的、復(fù)雜的數(shù)據(jù)綁定問題,實際上擯棄了眾所周知的數(shù)據(jù)格式和網(wǎng)絡(luò)數(shù)據(jù)結(jié)構(gòu)中的數(shù)據(jù)綁定概念。

Ballerina的類型系統(tǒng)主要是結(jié)構(gòu)化的,增加了對名義類型的支持。這意味著類型兼容性通過考慮值的結(jié)構(gòu)而不是僅僅依賴類型名稱來識別。這有別于Java、C++和C#等擁有類型系統(tǒng)的語言,這些系統(tǒng)中受實際類型名稱的約束。

序列圖模型網(wǎng)絡(luò)交互

在Ballerina中,每個程序都可以顯示為自動表明分布式并發(fā)交互的序列圖。Ballerina程序中的函數(shù)在文本語法和序列圖中都有等效的表示。您可以在這兩個視圖之間無縫切換。 Ballerina獨特的圖形視圖不是一種噱頭,而是被設(shè)計到語言底層中,以便用戶切實深入了解函數(shù)的網(wǎng)絡(luò)交互及并發(fā)機(jī)制的使用。

importballerina/http;
importballerinax/googleapis.sheets;

configurablestringgithubPAT = ?;
configurablestringrepository = "ballerina-platform/ballerina-lang";
configurablestringsheetsAccessToken = ?;
configurablestringspreadSheetId = ?;
configurablestringsheetName = "Sheet1";

typePRrecord {
stringurl;
stringtitle;
stringstate;
stringcreated_at;
stringupdated_at;
};

publicfunctionmain() returnserror? {
http:Clientgithub = checknew ("https://api.github.com/repos");
map<string> headers = {
"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", "Created At", "Updated At"]);

foreach var {url, title, state, created_at, updated_at} inprs {
checkgsheets->appendRowToSheet(spreadSheetId, sheetName,
[url, title, state, created_at, updated_at]);
}
}

雖然Ballerina具有現(xiàn)代編程語言的所有通用功能,但它之所以脫穎而出,是由于提供了更易于使用、為云組合和創(chuàng)建網(wǎng)絡(luò)服務(wù)的語言功能。如需深入了解Ballerina語言功能的介紹性說明,建議觀看該語言的開發(fā)者??Sanjiva Weerawarana的視頻???,或者參閱該??博客??。

原文標(biāo)題:??Why Should You Program with Ballerina???,作者:Vishva Ahangama


責(zé)任編輯:華軒 來源: 51CTO
相關(guān)推薦

2022-07-06 09:29:40

JMH性能測試

2014-12-05 09:49:18

2018-07-10 16:05:05

2023-11-24 08:17:38

金額類型存儲

2024-10-18 11:55:47

2019-08-28 15:38:04

Linux系統(tǒng)工具

2015-08-24 10:51:00

全棧

2015-08-25 09:57:18

程序員全棧工程師

2022-11-08 17:53:28

2013-01-07 11:31:11

大數(shù)據(jù)大數(shù)據(jù)應(yīng)用

2019-08-12 07:29:28

餐館物聯(lián)網(wǎng)IOT

2018-06-08 15:27:59

云計算企業(yè)存儲

2022-11-24 14:46:59

物聯(lián)網(wǎng)數(shù)字醫(yī)療虛擬現(xiàn)實

2022-05-16 09:27:37

UbuntuUbuntu LTS

2025-05-26 02:55:00

value安全開發(fā)

2020-05-12 11:25:50

MySQLES數(shù)據(jù)庫

2017-05-15 09:55:07

2015-04-21 10:11:15

云托管Linux桌面

2022-01-23 13:51:30

Arch LinuxLinux

2020-06-05 14:09:42

Kubernetes容器應(yīng)用程序
點贊
收藏

51CTO技術(shù)棧公眾號