Swift 3正式公布幾天后,IBM就已發(fā)布了自家的開(kāi)源服務(wù)器端Kitura框架1.0版,以及IBM Bluemix Runtime for Swift 3。InfoQ就服務(wù)器端的Swift發(fā)展情況采訪了IBM的Chris Bailey。
為了兌現(xiàn)改善服務(wù)器端Swift穩(wěn)定性和實(shí)用性的承諾,IBM發(fā)布了適用于云平臺(tái)的1.0版Swift框架:Kitura,該框架包含大量新功能,例如URL路由、SSL/TTL支持、JSON解析,以及可插拔式中間件。Kitura還包含了一個(gè)可提供靜態(tài)文件的Web服務(wù)器,并提供了對(duì)Fast CGI的支持。
此外最新版Swift工具也已包含在IBM Bluemix Runtime中,借此可將Swift代碼部署至IBM云平臺(tái)。
InfoQ就服務(wù)器端Swift的發(fā)展情況采訪了IBM公司負(fù)責(zé)Swift運(yùn)行時(shí)技術(shù)開(kāi)發(fā)工作的資深技術(shù)人員Chris Bailey。
您已經(jīng)深入?yún)⑴c到Swift 3的開(kāi)發(fā)工作。是否可以將您在Swift開(kāi)發(fā)團(tuán)隊(duì)中的角色描述為服務(wù)器端Swift的倡議者?這個(gè)版本中您的主要工作重心在哪里?
Chris Bailey:隨著Swift去年成為開(kāi)源項(xiàng)目,全球有很多人通過(guò)創(chuàng)意和開(kāi)發(fā)工作完善Swift,將其帶到其他平臺(tái)。我本人以及IBM的幾個(gè)同事也是其中的一員。
IBM的團(tuán)隊(duì)主要側(cè)重于實(shí)現(xiàn)Swift在服務(wù)器端的運(yùn)用,為Swift開(kāi)發(fā)者提供必要的能力,幫助他們用盡可能簡(jiǎn)單的方式創(chuàng)建服務(wù)器應(yīng)用程序和框架,這是我們努力的最終目標(biāo)。在Swift 3.0版中,這意味著我們需要確保Linux平臺(tái)對(duì)Swift的支持必須盡可能完善,尤其是要做好提供并發(fā)能力的Dispatch庫(kù)并實(shí)現(xiàn)Foundation庫(kù)API。
雖然Foundation方面還有很多工作要做,但在Swift 3.1和Swift 4.0階段,我們希望能同時(shí)開(kāi)始著手服務(wù)器端的一些規(guī)范。
Swift 3為服務(wù)器端編程和Linux提供了更好的支持,您能否詳細(xì)談?wù)勥@方面的內(nèi)容?
Bailey:Swift 3.0對(duì)服務(wù)器端和Linux的支持,主要進(jìn)展在于額外的庫(kù)和API支持。目前我們最熱衷的工作之一是確保能夠優(yōu)先為L(zhǎng)inux和服務(wù)器用例實(shí)現(xiàn)最重要的API。為此我們考慮過(guò)使用Kitura作為測(cè)試環(huán)境,這是IBM開(kāi)發(fā)的一種開(kāi)源Web框架。隨后我們使用各種現(xiàn)有的庫(kù)構(gòu)建了一系列示例應(yīng)用程序,通過(guò)這些應(yīng)用程序研究哪些API是最需要的,并進(jìn)行更有針對(duì)性的測(cè)試。隨著Swift 3.0的完善,隨后我們將與最新進(jìn)展保持同步,進(jìn)行回歸測(cè)試并執(zhí)行性能測(cè)試。
借此我們發(fā)現(xiàn)Foundation的某些API,例如URLSession和Operation其實(shí)非常關(guān)鍵。這些API都使用Dispatch實(shí)現(xiàn)并發(fā),因此與Kitura類似,這些API也成為我們工作的重心。
Kitura 1.0包含哪些新增或改進(jìn)的功能?
Bailey:2016年初,Kitura實(shí)現(xiàn)了一個(gè)可以全面響應(yīng)URL請(qǐng)求的Web框架。隨著后續(xù)完善,我們陸續(xù)增加了構(gòu)建現(xiàn)實(shí)應(yīng)用程序所需的功能和特性。例如身份驗(yàn)證、模板、跨站點(diǎn)請(qǐng)求偽造預(yù)防(CSRF)機(jī)制、跨域資源共享(CORS)支持、日志、緩存、后端數(shù)據(jù)存儲(chǔ)和服務(wù)的訪問(wèn)等功能。
隨著Swift 3.0和Kitura 1.0的發(fā)布,我們開(kāi)始側(cè)重于性能、代碼質(zhì)量,以及壓力測(cè)試等工作,我們構(gòu)建了更多示例、演示和教程,并發(fā)布了Kitura.io網(wǎng)站。
當(dāng)然,對(duì)于Swift.org所做的貢獻(xiàn)和Kitura的開(kāi)發(fā)只是我們的部分工作。上周我們還發(fā)布了IBM Bluemix Runtime for Swift,其中包含最新版Swift并解決了系統(tǒng)依賴項(xiàng)問(wèn)題,這樣用戶可以更專注于編寫(xiě)自己的服務(wù)器端Swift服務(wù)。Swift運(yùn)行時(shí)包含了在IBM Bluemix公有云、專用云,以及本地云部署中運(yùn)行所需的全部?jī)?yōu)化措施。我們還會(huì)定期更新IBM Swift Package Catalog、IBM Swift Sandbox以及IBM Cloud Tools for Swift,每個(gè)產(chǎn)品自身已能流暢運(yùn)行,通過(guò)配合使用更可為Swift開(kāi)發(fā)者提供端到端的集成式體驗(yàn)。這些工具目前均已發(fā)布至Swift@IBM網(wǎng)站。