按照加拿大創(chuàng)業(yè)公司PerfectlySoft的說(shuō)法,Perfect讓使用蘋(píng)果的Swift語(yǔ)言構(gòu)建企業(yè)級(jí)Web應(yīng)用程序成為可能。隨著蘋(píng)果最近將Swift開(kāi)源,Perfect承諾支持跨多種平臺(tái)的跨平臺(tái)開(kāi)發(fā),包括OS X、Linux、Windows、iOS和Android。據(jù)PerfectlySoft首席執(zhí)行官Sean Stephens介紹,把Swift同時(shí)用于客戶(hù)端和服務(wù)器端將使開(kāi)發(fā)過(guò)程更高效,因?yàn)殚_(kāi)發(fā)人員可以重用這個(gè)過(guò)程中的代碼和邏輯,同時(shí),借助Swift的功能,還能確保高水平的安全、防護(hù)和性能。
Perfect包含一個(gè)名為PerfectLib的Swift框架。該框架提供了一套既可以用于前端開(kāi)發(fā)又可以用于后端開(kāi)發(fā)的核心工具。在客戶(hù)端,PerfectLib主要是復(fù)制了蘋(píng)果SDK已經(jīng)提供的功能,比如支持JSON編碼/解碼和編組、字節(jié)流管理、cURL支持、SQLite訪問(wèn)。使用PerfectLib對(duì)那些功能的實(shí)現(xiàn),客戶(hù)端代碼對(duì)蘋(píng)果SDK的依賴(lài)減少,因?yàn)楦菀自诤蠖酥赜谩T诜?wù)器端,PerfectLib包含了額外的、對(duì)服務(wù)器端特別有意義的功能, 比如支持文件管理、進(jìn)程管理和IPC、Mustache模板解析、狀態(tài)/會(huì)話(huà)管理和面向MySQL、ProgreSQL、SQLite、MongoDB等數(shù)據(jù)庫(kù)的連接器。
為了了解更多有關(guān)Perfect的信息以及更好地了解它為開(kāi)發(fā)者提供了什么,InfoQ采訪了Sean Stephens。
您能解析下你們的項(xiàng)目同蘋(píng)果開(kāi)源Swift的關(guān)系嗎?它會(huì)帶來(lái)什么樣的機(jī)會(huì)?
對(duì)于正在構(gòu)建移動(dòng)、Apple
TV等應(yīng)用的開(kāi)發(fā)人員,Perfect將使他們可以像在客戶(hù)端那樣使用Swift構(gòu)建服務(wù)器端應(yīng)用程序,另外還可以使用Swift構(gòu)建網(wǎng)站和Web應(yīng)用程序。這意味著,通過(guò)在整個(gè)應(yīng)用程序生態(tài)系統(tǒng)中使用同一種語(yǔ)言,開(kāi)發(fā)人員可以節(jié)省時(shí)間,縮短學(xué)習(xí)曲線(xiàn),減少所需的代碼。
另外,我們認(rèn)為,其他的平臺(tái)(Android等)將很快使用編譯器,留下一種原生語(yǔ)言,可以跨當(dāng)前所有流行的平臺(tái)、移動(dòng)及其他場(chǎng)景使用。
目前,Perfect只包含PerfectLib框架。您能描述下PerfectLib所扮演的角色嗎?
Perfect還包含一個(gè)基于FastCGI的Apache連接器(也提供了自帶的服務(wù)器供用戶(hù)選擇),使它自己可以提供服務(wù)——這些事情是Swift和獨(dú)立SDK無(wú)法完成的。此外,Perfect還包含了一些關(guān)鍵的開(kāi)發(fā)庫(kù)(會(huì)話(huà)管理、JSON連接等等),這些都不是Swift原生的。對(duì)于移動(dòng)開(kāi)發(fā),這些庫(kù)不是必須的,但對(duì)于Web和后端開(kāi)發(fā)很關(guān)鍵。
你們有任何增加新框架的計(jì)劃嗎?或者對(duì)PerfectLib進(jìn)行某種擴(kuò)展,讓它包含更多的特性和抽象,以簡(jiǎn)化服務(wù)器端軟件的開(kāi)發(fā)?
我們確實(shí)計(jì)劃擴(kuò)展Perfect,增加更多的特性、功能和抽象。我們已經(jīng)有多個(gè)項(xiàng)目處于測(cè)試階段(例如ORM),還有幾個(gè)項(xiàng)目處于中期開(kāi)發(fā)階段。一旦重要特性和項(xiàng)目的整體規(guī)模達(dá)到平衡狀態(tài),我們將停止擴(kuò)大特性集,而將精力投入到模塊特性開(kāi)發(fā)和整體性能上。如果開(kāi)發(fā)人員有一些他們希望看到的關(guān)鍵特性,那么我們肯定會(huì)考慮。
在恰當(dāng)?shù)臅r(shí)候,我們還計(jì)劃提供額外的配置和服務(wù)器管理工具,以簡(jiǎn)化開(kāi)發(fā)人員的工作。
你們會(huì)為非蘋(píng)果平臺(tái)提供任何特定的工具或工具支持嗎?
我們已經(jīng)開(kāi)始將其他Linux上的IDE用于我們自己的Swift開(kāi)發(fā),例如Sublime和Eclipse。Swift已經(jīng)獲得了流行工具很好的支持,而且將繼續(xù)有機(jī)地發(fā)展——不過(guò),我們也會(huì)很樂(lè)意參與這些項(xiàng)目,伴它們成熟。目前,Swift是這個(gè)星球上增長(zhǎng)最快、更多人愛(ài)的語(yǔ)言,我們會(huì)非常高興同他們一起引領(lǐng)潮流。或者也許,我們是在跟隨潮流?
感興趣的讀者可以查看Perfect的GitHub頁(yè)面。
查看英文原文:Perfect Aims to Bring Swift to the Server-side