Swift - Hienostunut palvelinpuolen kieli

Swift - Hienostunut palvelinpuolen kieli

Koska Apple tutustui alun perin Swiftiin Objective-C: n seuraajana, se on muuttanut, kuinka verkko koodaa iOS-, macOS-, watchOS- ja tvOS-sovelluksia.

Siinä vaiheessa, kun Swift muuttui avoimen lähdekoodin vaiheeksi, se avasi kielelle uusia ajateltavissa olevia tuloksia mobiili- ja asiakaspuolen sovellusten ulkopuolella. Swiftistä tuli myös palvelinpuolen kieli. Tässä opetuksessa ymmärrät, mikä palvelinpuolen Swift on ja miksi sinun pitäisi olla Swift takana.

Palvelinpuolen Swift-aktiviteettia työntävät kolme merkittävää projektia, jotka ovat Qutheoryn, IBM: n Kitura ja Perfect, Vapor. Tarkoituksena on antaa Swift-kehittäjille mahdollisuus tehdä täysin toimivia taustahallintoja. Tämä muuttaa pohjimmiltaan tällaiset insinöörit täysikokoisiksi kehittäjiksi, mikä mitätöi riippuvuuden solmusta tai PHP: stä vaatimuksen tai tarjoaa hallinnan BaaS-vaiheelle, esimerkiksi Googlen Firebase.

Tämän artiklan tavoitteet

Tässä artikkelissa kerrotaan palvelinpuolen Swiftistä. Ensin selvitän, kuinka palvelinpuolen Swift toimii, ja sen jälkeen esitän sinulle parhaat käytännöt aloittaaksesi Kitura-, Vapor- ja Perfect-järjestelmistä.

Palvelinpuolen Swiftin esittely

Apple ilmoitti Swiftistä ensimmäisen kerran vuonna 2014, ja se lopetti nopeasti yhden nopeimmin kehittyvän ohjelmointikielen. Swift hyödyntää valtavia määriä parhaita nykykieliä, esimerkiksi Python, mikä antaa tyylikkyyden ja helppokäyttöisyyden. Se vapauttaa insinöörit tavoite-C: n erikoistuneista kahleista, mikä sallii yhä nestemäisemmän ja vaistomaisen työn.

Joulukuussa 2015 Apple teki uuden upean ilmoituksen ja teki Swift-kielen tukevien kirjastojen, virheenkorjauksen ja paketinhallinnan ohella avoimen lähdekoodin projektin Apache 2.0 -lisenssin alla, mikä avasi foorumin ihmisille yleensä vetopyynnön tekemiseen ja osallistumiseen. Siirtyminen kaukana Objective-C: stä ei ole vain houkutellut lukemattomia App Store -yritykseen osallistuvia Objective-C-kehittäjiä, mutta on kuitenkin yksinkertaistanut kaikkien taitojen ja säätiöiden kehittäjien pääsyä Applen ekosysteemiin Swiftin kanssa.

Joka tapauksessa, vaikka Applen kehitystyökalut ovat todistettavasti helpottaneet kehittäjiä kehittämään ulkoisesti vakuuttavia ja kiinnostavia sovelluksia App Storeen, yksi merkittävä pullonkaula on ollut, että projektit vaativat edelleen erikoistuneita taustakehittäjiä monimutkaisten tietopohjaisten sovellusten kehittämiseksi. Joten iOS- ja macOS-kehittäjien on joko hyödynnettävä Python-, PHP- tai Node-kehittäjiä, jotta he voivat tehdä back-end-tietokantansa tai hankkia kyvyn itse, mikä johtaa kokonaan raskaampaan jäljellä olevaan tehtävään saavuttaakseen yrityksensä tavoitteet.

Vaikka back-end-as-a-service (BaaS) on toiminut iOS-kehittäjien sankarina, koodittomilla back-end-ratkaisuilla, esimerkiksi Googlen Firebase ja Applen oma erityinen CloudKit, jotka lieventävät taustan monimutkaisuutta, monet ryhmät ja hankkeet pyytävät lisää. Tämä on paikka, jossa palvelinpuolen Swift tulee sisään, jolloin voit tehdä täysin toimivan monisäikeisen taustapalvelimen, joka on avoimen lähdekoodin ja loputtomasti konfiguroitavissa.

Palvelinpuolen Swift antaa sinulle mahdollisuuden valita, miten sinulla on taustapalvelimesi, riippumatta siitä, onko käytössä AWS, RackSpace vai itse fyysiset palvelimesi. Voit myös valita, miten palvelimesi voidaan tasapainottaa (esim. Näkyvien palvelinratkaisujen, esimerkiksi NGINX: n avulla) ja kuinka jatkaa tietojesi säilyttämistä tietokannassa (olivatpa ne esimerkiksi NoSQL-järjestelyjä, esimerkiksi MongoDB, tai esimerkiksi perinteisiä tietokantoja) , Postgres, MySQL tai Oracle). Sen lisäksi, että et ole koskaan kiinnittynyt yhteen osajärjestelyyn, voit vaihtaa ylöspäin vaikuttamatta koko sovelluskoodipohjaasi.

Tosiasia on, että päättämällä avoimen lähdekoodin palvelinpuolen Swift-järjestelystä, esimerkiksi Qutheoryn Vapor, IBM: n Kitura tai Perfect, hyödynnät valtavaa joukkoa moduuleja, joiden avulla voit suunnitella vain takaosan tavalla, jolla sitä tarvitset, hyödyntämällä nykyisen ryhmän kykyjä Swiftissä sellaisenaan.

Palvelinpuolen Swift kuulostaa ehdottoman vakuuttavalta, mutta mikä rakenne sopii sinulle parhaiten? Seuraavaksi tutkimme jokaista näin, alkaen Kiturasta.

Alkaen Kiturasta

Kiturasta lähtien sinulla on vaihe, joka purettiin alun perin helmikuussa 2016 ja joka sai pian sen jälkeen erehtymättömän laadun Applen WWDC: ssä puhuen IBM: n hyökkäyksestä palvelinpuolen verkon tukemiseen Swiftin kanssa, joka sitten asetettiin siirtymään Applen käsistä avoin lähdekoodi.

Yleensä Kitura keskittyy kokoonpanoon liittyvään perinteeseen. Se rakentaa taustalla olevan projektisi tukkeilla, ennen kuin valitset nimenomaiset kehykset ja kirjastot, jotka toivot rakennettavan. Kituran todennusprosessia tukee sen poikkeuksellisen oma Kitura-Credentials-väliohjelmistokehys, jonka avulla voit tarkastella validointijärjestelmien valikoimaa tavanomaisesta käyttäjänimestä / salasanasta online-verkkotunnukseen ja yhtenäiseen vahvistukseen käyttämällä JID-verkkotunnuksia (JWT) käsittelevää OpenID: tä .

Kuery ohjaa Kituran tietokanta-ORM-järjestelyä sekoittamaan SQL: n hallinnan monimutkaisuudet, tukemalla rationaalisia perustietokantoja, esimerkiksi MySQL, SQLite ja PostgreSQL paikallisesti, ja lisäksi muita tietokantajärjestelyjä, mukaan lukien NoSQL-tietokannat, muiden muiden laajennusten kautta.

Kitura antaa lisäksi muita arvokkaita laajennuksia asioille, esimerkiksi HTML-malleja hyödyntäen tunnettuja laajennuksia, kuten Stencil ja Markdown. IBM: ltä peräisin oleva palvelinpuolen järjestelmä hyötyy lisäksi yhdistymisestä IBM Watson -sovellusliittymiin ja antaa lisäksi MacOS-tuen koordinoinnille suoraviivaisesti Bluemix-pilvialustalleen. Tämä antaa sinulle ylimääräisen valinnan muiden perinteisten käyttöönottovaihtoehtojesi rinnalla ristiin Linux / Unix- ja macOS-palvelimien yli.

Alusta tarjoaa ehdottomasti poikkeuksellisen joukon ominaisuuksia Kuerystä kykyyn integroida IBM: n eri API-kirjastojen kanssa. Siinä ei ole verkon painoarvoa, joka on Vaporilla. Kituran vastaanottaminen vaatii omien epäsäännöllisten menetelmiensä tunnustamista ja ymmärtämistä asioiden suorittamiseksi aina siitä, miten Kuery toimii, sen todennusmekanismiin. Joka tapauksessa, koska sitä sponsoroi laaja organisaatio, joka kiinnittää huomiota pyrkimykseen, on olemassa joitain tulevaisuuden sinetöityjä väitteitä.

Kituran asentaminen ja suorittaminen

Nopein tapa aloittaa on käyttää Kituran suuntaviivaliittymää (CLI), jota tuetaan sekä macOS: ssa että Linuxissa. Asenna Kitura ja Kitura CLI käyttämällä tunnettua paketinhallintaohjelmaa Homebrew, kirjoittamalla seuraava:

$ panimohana ibm-swift / kitura

$ hautua installkitura

Suorita mukana oleva täyttämättömän järjestäjän sisällä, jota aiot käyttää yritykseesi:

$ kitura init

Kun luurankosovelluksesi on valmis, näet toisen projektin nimeltä HelloKitura.xcodeproject. Voit ottaa lisätietoja projektin luomisesta siirtymällä Kituran dokumentaatioon. Voit avata äskettäin luodun projektin Xcodessa ja muuttaa olennaisen sovellusluokan Application.swift käsittelemään kaikkia palvelimesi juurihakemuksia https: // localhost: 8080 / URL :

// Käsittele HTTP GET -pyynnöt kohteelle "/"

router.get ("/") {pyyntö, vastaus, seuraava sisään

response.send ("Hei, maailma!")

Seuraava()

}

Yllä oleva koodikappale reagoi palauttamalla esimerkillisen Hello, World! . Ennen kuin voit lopulta suorittaa projektin, vaihda Xcode-mallisi osoittamaan HelloKitura (aktiivinen projekti) ja aloita sitoumuksesi painamalla Komento-R . Kun palvelimesi on käynnissä, siirry valitsemassasi selaimessa osoitteeseen https: // localhost: 8080 ja sinun pitäisi nähdä hello world selaimessasi.

Alkaa höyryllä

Muutama kuukausi Kituran jälkeen, syyskuussa 2016, julkaistiin Qutheoryn vaporilla, jota pidetään yleensä merkittävimpänä yhteisön koon ja moduulien lukumäärän suhteen. Se on rakennettu Applen Swift-nio-kehyksen päälle, mikä tekee siitä aidon teloitustehon. Ei lainkaan kuten Kitura ja eri vaiheet, joita ei valmisteta yksinkertaisesti Swiftissä, vaan Node.js: ssä tai muissa keskipitkän jäsentäjissä, Vapor irrottaa itsensä mistä tahansa näistä riippuvuuksista toimittamaan Swift-jäsennin ja antamaan selkeät ja yhtenäiset API: t.

Vapor tarjoaa perusteellista apua tietokannoista SQL-toimittajille, esimerkiksi MySQL ja PostgreSQL, ja NoSQL-toimittajille, esimerkiksi Redis ja MongoDB Kitura. Vaikka Kituralla on omat Kuery ORM -ratkaisunsa, Vapor käyttää Fluent ORM: ää tukemaan juuri viittaamiasi tietokantoja, mikä tekee ORM: n levittämisestä kohtuullisen helpoksi muille kolmannen osapuolen tietokantapalvelujen tarjoajille. Höyry eristää itsensä vaihtoehtoisista kehyksistä tukemalla natiivisti Applen Push Notification Service -palvelua ja tukemalla myös SMTP: tä sähköposti-ilmoitusten lähettämisessä.

Vaikka Kitura päivittää oman todennuskehyksensä, Vaporilla on Stormpath's Turnstile -todennuskirjasto paistettu alkuperäisessä muodossa. Kituran tavoin alusta tukee myös viikset ja markdown-kiusauksia, ja oman Swift-natiivin ilmaisevan mallikielensä lisäksi Vapor seuraa myös omaa CLI-moottoriaan, kuten toinen palvelinpuolen Swift-kehys, kyky laajentaa sovelluskomentoa -linjaiset argumentit mukautetuilla lipuilla.

Asentaminen ja suorittaminen

Aluksi Vaporilla aloitat asentamalla Vapor-työkalusarjan, joka sisältää kaikki kirjastoyhteydet ja CLI-työkalut. Asenna se Homebrew-palveluun kirjoittamalla terminaaliin seuraava:

$ hautua installvapor / tap / vapor

Kun asennus on valmis, voit vahvistaa, että höyry on asennettu onnistuneesti kirjoittamalla höyry —help. Luo projekti kirjoittamalla seuraava korvaamalla oma projektin nimi:

$ höyry uusi

Vapor-moottori rakentaa kansiorakenteen, joka muistuttaa seuraavaa:

├── Julkinen

├── Lähteet

│ ├── App

│ │ ├── Ohjaimet

│ │ ├── Mallit

Boot │ ├── boot.swift

Ure │ ├── configure.swift

│ │ └── reitit. Nopea

Run └── Suorita

│ └── tärkein. Nopea

├── Testit

│ └── AppTests

└── Paketti. Nopea

Jos haluat todella luoda Xcode-projektin, sinun on myös annettava nimenomainen seuraava komento projektikansiosta:

$ vapor xcode

Lopuksi, rakentaaksesi ja suorittaaksesi projektisi, valitse Xcodesta Suorita-malli ja myös My Macin kehityskohde-laite ja paina sitten Suorita- painiketta kuten tekisit minkä tahansa muun Xcode-projektin yhteydessä. Koska Xcode-projektissasi ei esiinny virheitä, sinun pitäisi nähdä seuraava vahvistusviesti terminaalissa:

Palvelin alkaa osoitteesta https: // localhost: 8080

Mene eteenpäin ja kirjoita kyseinen URL-osoite mihin tahansa selaimeen, ja sinun pitäisi nähdä sovelluksesi käynnissä.

Alku täydellisellä

Lopuksi katsotaan Perfect by PerfectlySoft, monipuolinen palvelinpuoliympäristö, kuten Vapor ja Kitura. Perfect sisältää samanlaiset vakiokellot ja pillit, jotka löytäisit edellisiltä toimittajilta, mallineista Viiksillä tai Markdownilla verkkoyhteyksiin verkkoliittimillä, ja lisäksi Apple Push Notification ja SMTP.

Kuten toisella palvelinpuolen alustalla, Perfectillä on oma ORM-toteutus, StORM-alusta (Perfect StORM), joka tukee natiivisti MySQL-, PostgreSQL- ja muita merkittäviä relaatiotietokantoja sekä lisäksi MongoDB-, Redis- ja muita NoSQL-ratkaisuja. Yksi merkittävä poissulkeminen Perfectistä on CLI, mutta kehys korvaa tämän natiivilla macOS-sovelluksella.

Kuten Vapor, Perfectilla on lisäksi Turnstile paistettu todennusmekanisminsa tehostamiseksi, laajennettuna vuorovaikutukseen StORMin kanssa läheisemmin. Toinen pätevyys, joka tällä järjestelyllä on muihin nähden, on huomattavassa määrässä sen tukemia natiivikirjastokirjastoja, mukaan lukien omat ainutlaatuiset cURL-kääreensä ja lisäksi työkalut tiedostojen ja kansioiden käsittelyyn. Perfectin kehittäjäkanta on toiseksi suurin, melkein pysymässä vauhdissa Vaporin kanssa, mikä tarkoittaa, että sinulla on vahva yhteisö tukemaan tätä alustaa, ja runsas joukko koulutusresursseja antaa sinulle varmuuden siitä, että valitset sen.

Asentaminen ja suorittaminen

Pääsy ja juoksu Perfectin kanssa on erittäin suoraviivaista. Alun perin kloonaa PerfectlySoft-repo kirjoittamalla seuraava:

$ git -klooni https://github.com/PerfectlySoft/PerfectTemplate.git

Rakenna projekti kloonatun kansion sisältä:

$ nopea rakennus

Suorita lopuksi projekti, joka suorittaa paikallisen palvelimen osoitteessa 0.0.0.0:8181

.build / debug / PerfectTemplate

Voit myös ajaa projektisi Xcodella luomalla ensin uuden projektin seuraavasti:

$ swift -paketti generoi-xcodeproj

Varmista Xcode-koodissa, että suoritettava kohde osoittaa My Mac -ohjelmaan , ennen kuin rakennat ja suoritat projektin.

Johtopäätös

Swiftin saapuminen avoimen lähdekoodin verkkoon on pakottanut ajamaan Swift-ratkaisuja asiakassovellusten ulkopuolelle, ja taustapalvelinkehykset muuttuvat seuraaviksi laitamiksi. Kolme tunnettua projektia - Qutheoryn höyry, IBM: n Kitura ja Perfect. Palvelinpuolen Swift on valtuuttanut iOS (ja macOS) -kehittäjät tulemaan täyden pinon kehittäjiksi. Tämä voi kumota riippuvuuden Node.js-, PHP- tai .NET-taustakehittäjistä. Palvelinpuolen Swift antaa ryhmille lisäksi mahdollisuuden hallita taustatietoja tarvitsematta luottaa mobiilien palvelinten palvelinratkaisuihin, kuten Firebase tai CloudKit.

Palvelinpuolen Swift ei ole kaikille, sinun on ratkaistava, kuinka paljon hallintaa tarvitsit taustapäätäsi varten ja onko sinulla järkevää rullata omaa. En myöskään yrittänyt kertoa sinulle, mikä palvelinpuolen Swift-ratkaisu on ihanteellinen. Kehittäjät ovat epäilemättä pilalla päätöksenteolle, ja jokainen kolmesta antaa ainutlaatuisen ja kypsän otteen, ja niiden kanssa kannattaa kokeilla. Kehotan teitä pelaamaan jokaisen esimerkkikoodin kanssa, arvioimaan kielirakennetta ja ottamaan yhteyttä heidän yhteisöihinsä nähdäksesi, mikä ratkaisu sopii sinulle parhaiten.