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