Swift - Iaith Ochr Gweinyddwr Soffistigedig

Swift - Iaith Ochr Gweinyddwr Soffistigedig

Ers i Apple ddod yn gyfarwydd â Swift yn wreiddiol fel olynydd Amcan-C, mae wedi newid sut mae'r rhwydwaith yn codio cymwysiadau iOS, macOS, watchOS a tvOS.

Ar y pwynt pan drodd Swift yn gam ffynhonnell agored, agorodd ganlyniadau newydd y gellir eu dychmygu ar gyfer yr iaith y tu hwnt i gymhwysiad symudol ac ochr cleientiaid. Trodd Swift yn iaith ochr y gweinydd hefyd. Yn yr ymarfer cyfarwyddiadau hwn, byddwch yn sylweddoli beth yw Swift ochr y gweinydd a pham y byddai angen i chi gael Swift ar eich pen ôl.

Mae'r gweithgaredd Swift ar ochr y gweinydd yn cael ei wthio gan dri phrosiect amlwg sef Vapor gan Qutheory, Kitura IBM, a Perfect, gyda'r nod o roi cyfle i ddatblygwyr Swift wneud gweinyddiaethau pen ôl cwbl newydd. Bydd hyn, yn sylfaenol, yn newid peirianwyr o'r fath yn ddatblygwyr pentwr llawn, gan annilysu'r gofyniad i ddibynnu ar Node neu PHP neu gynnig rheolaeth i gam BaaS, er enghraifft, Firebase Google.

Targedau'r Erthygl hon

Yn yr erthygl hon, byddwch yn cymryd rhan am Swift ochr y gweinydd. Yn gyntaf, byddaf yn egluro sut mae Swift ar ochr y gweinydd yn gweithredu, ac ar ôl hynny byddaf yn dangos i chi arferion gorau i ddechrau gyda'r systemau Kitura, Vapor a Perfect.

Cyflwyno Swift Ochr y Gweinydd

Cyhoeddwyd Swift gyntaf gan Apple yn 2014 ac fe ddaeth i ben yn gyflym ag un o'r iaith raglennu gyflymaf sy'n datblygu. Mae Swift yn tynnu o niferoedd enfawr o'r ieithoedd cyfoes gorau, er enghraifft, Python, gan ganiatáu ceinder a rhwyddineb eu defnyddio. Mae'n rhyddhau peirianwyr o hualau arbenigol Amcan-C, gan ganiatáu gwaith cynyddol hylifol a greddfol.

Ym mis Rhagfyr 2015, gwnaeth Apple ddatganiad gwych arall a gwnaeth yr iaith Swift ochr yn ochr â’i lyfrgelloedd ategol, dadfygiwr, a rheolwr pecyn yn brosiect ffynhonnell agored o dan drwydded Apache 2.0, gan agor y platfform i bobl yn gyffredinol wneud cais tynnu a chyfrannu. Nid yw'r symud ymhell o Amcan-C wedi temtio'r datblygwyr Amcan-C niferus sy'n cyfrannu at yr App Store yn unig, ond mae wedi ei gwneud yn symlach i ddatblygwyr o'r holl sgiliau a sylfeini fynd i mewn i ecosystem Apple gyda Swift.

Beth bynnag, er bod dyfeisiau hyrwyddo Apple wedi ei gwneud hi'n haws i ddatblygwyr ddatblygu apiau argyhoeddiadol ac atyniadol ar gyfer yr App Store, un dagfa amlwg yw bod prosiectau yn dal i fod angen datblygwyr pen-ôl arbenigol i ddatblygu cymwysiadau cymhleth sy'n cael eu gyrru gan wybodaeth. Felly byddai angen i ddatblygwyr iOS a macOS naill ai dynnu help datblygwyr Python, PHP neu Node i mewn i wneud eu cronfa ddata pen ôl neu gael y gallu eu hunain, gan sicrhau tasg sy'n drymach yn gyfan gwbl wrth law i orffen eu nodau ymgymryd.

Er bod y gwasanaeth cefn-fel-a-gwasanaeth (BaaS) wedi gweithredu arwr datblygwyr iOS, gyda datrysiadau pen-cod dim cod, er enghraifft, Firebase Google a CloudKit arbennig Apple ei hun sy'n lliniaru cymhlethdodau'r pen ôl, mae nifer o grwpiau a mentrau yn gofyn am fwy. Dyma'r lle y mae Swift ochr y gweinydd yn dod i mewn, sy'n eich galluogi i wneud gweinydd pen ôl aml-edafedd cwbl newydd sy'n agored o ffynonellau ac yn ffurfweddadwy yn interminably.

Mae Swift ochr y gweinydd yn rhoi cyfle i chi ddewis sut mae gennych chi'ch gweinydd pen ôl, ni waeth p'un ai gydag AWS, RackSpace, neu'ch gweinyddwyr corfforol eich hun. Yn yr un modd, gallwch ddewis sut i lwytho cydbwysedd rhwng eich gweinyddwyr (ee trwy atebion gweinydd amlwg, er enghraifft, NGINX) a sut i barhau â'ch gwybodaeth mewn cronfa ddata (boed yn drefniadau NoSQL, er enghraifft, MongoDB, neu gronfeydd data traddodiadol, er enghraifft , Postgres, MySQL, neu Oracle). Hynny, yn ogystal â nad ydych byth yn gysylltiedig â threfniant un rhan, gallwch newid heb ddylanwadu ar fas-god eich cais cyfan.

Y gwir amdani yw, trwy benderfynu ar drefniant ffynhonnell agored Swift ar ochr y gweinydd, er enghraifft, Vapor gan Qutheory, Kitura IBM, neu Perffaith, eich bod yn manteisio ar swath enfawr o fodiwlau sy'n eich galluogi i ddylunio'ch pen ôl yn unig y y ffordd y mae ei angen arnoch, gan ddefnyddio ystod galluoedd eich grŵp cyfredol yn Swift i wneud hynny.

Mae Swift ochr y gweinydd yn swnio'n argyhoeddiadol yn llwyr, fodd bynnag pa strwythur sy'n ddelfrydol i chi? Nesaf rydym yn ymchwilio i bob un yn drefnus, gan ddechrau gyda Kitura.

Yn Dechrau Gyda Kitura

Gan ddechrau gyda Kitura, mae gennych lwyfan a ryddhawyd gyntaf ym mis Chwefror 2016 ac a gododd ansawdd digamsyniol yn fuan wedi hynny yn WWDC Apple, gan siarad â goresgyniad IBM i gefnogi gwe ochr y gweinydd gyda Swift, a oedd wedyn i fod i drosglwyddo o ddwylo Apple i ffynhonnell agor.

Fel rheol, mae Kitura wedi'i ganoli o gwmpas traddodiad dros gyfluniad. Mae'n llunio'ch prosiect sylfaenol gyda bonion, cyn i chi ddewis y fframweithiau a'r llyfrgelloedd penodol rydych chi'n gobeithio eu hadeiladu. Mae proses ddilysu Kitura yn cael ei chadarnhau gan ei fframwaith meddalwedd canol Kitura-Credentials ei hun, sy'n eich galluogi i edrych dros fwffe o systemau dilysu, o'r enw defnyddiwr / cyfrinair confensiynol i fewngofnodi rhwydweithio ar-lein a dilysu unedig, gan ddefnyddio OpenID sy'n trin JSON Web Tokens (JWT) .

Mae trefniant ORM cronfa ddata Kitura yn cael ei reoli gan Kuery i gymysgu cymhlethdodau rheoli SQL yn benodol, cefnogi cronfeydd data rhesymegol sylfaenol, er enghraifft, MySQL, SQLite a PostgreSQL yn lleol, ac yn ogystal â threfniadau cronfa ddata eraill, gan gynnwys cronfeydd data NoSQL, trwy'r gwahanol ategion eraill.

Mae Kitura hefyd yn rhoi ategion gwerthfawr eraill ar gyfer pethau, er enghraifft, templedi HTML, gan ddefnyddio ategion adnabyddus, er enghraifft, Stencil a Markdown. Yn tarddu o IBM, mae'r system ochr y gweinydd hefyd yn elw trwy gysylltedd ag APIs IBM Watson ac yn ogystal â rhoi cefnogaeth macOS i gydlynu'n syml i'w platfform cwmwl Bluemix. Mae hyn yn rhoi dewis ychwanegol sydd ar gael i chi, ochr yn ochr â'ch dewisiadau amgen confensiynol eraill yn groesffordd dros weinyddion Linux / Unix a macOS.

Er bod y platfform yn darparu set anhygoel o nodweddion o Kuery i'r gallu i ymgorffori gyda'r gwahanol lyfrgelloedd API IBM. Nid oes ganddo'r effaith rhwydwaith sydd gan Vapor. Mae derbyn Kitura yn gofyn am gydnabod a gafael yn ei ddulliau afreolaidd ei hun ar gyfer cyflawni pethau, o sut mae Kuery yn gweithio i'w fecanwaith dilysu. Beth bynnag, o ystyried ei fod yn cael ei noddi gan sefydliad eang gyda sylw ar yr ymdrech, gweithir mewn rhai datganiadau selio yn y dyfodol.

Gosod a Rhedeg Kitura

Y dull snapaf i ddechrau yw trwy ddefnyddio rhyngwyneb llinell gyfeiriad Kitura (CLI), a gefnogir ar macOS a Linux. Gan ddefnyddio'r Homebrew cyfleustodau rheoli pecyn adnabyddus, gosod Kitura a Kitura CLI trwy nodi'r canlynol:

tap $ brew ibm-swift / kitura

$ brew installkitura

Y tu mewn i drefnydd heb ei lenwi y byddwch chi'n ei ddefnyddio fel eich menter, rhedwch y cyfeilio i sefydlu'ch ymgymeriad:

$ kitura init

Ar yr adeg pan fydd wedi gorffen cynhyrchu eich cais sgerbwd, fe welwch brosiect arall o'r enw HelloKitura.xcodeproject. Gallwch gynnwys mwy am gynhyrchu prosiectau trwy ail-gyfeirio at ddogfennaeth Kitura. Gallwch agor y prosiect a grëwyd yn ddiweddar yn Xcode a newid y dosbarth cymwysiadau hanfodol, Application.swift , i ddelio â phob galwad i wraidd eich gweinydd https: // localhost: 8080 / URL :

// Ymdrin â cheisiadau HTTP GET i "/"

router.get ("/") {cais, ymateb, nesaf i mewn

response.send ("Helo, Byd!")

nesaf ()

}

Mae'r darn cod uchod yn ymateb trwy adfer yr enghraifft rhagorol Helo, Byd! . Cyn y gallwch redeg y prosiect o'r diwedd, newidiwch eich cynllun Xcode i bwyntio at HelloKitura (eich prosiect gweithredol), a chychwyn eich ymgymeriad trwy wasgu Command-R . Tra bod eich gweinydd yn rhedeg, mewn porwr o'ch dewis, ewch i https: // localhost: 8080 a dylech weld y byd helo yn eich porwr.

Gan ddechrau gyda Anwedd

Wedi'i ryddhau ychydig fisoedd ar ôl y Kitura, ym mis Medi 2016, ystyrir Vapor by Qutheory fel yr amlycaf o ran maint y gymuned a nifer y modiwlau. Mae wedi'i adeiladu ar ben fframwaith Swift-nio Apple, sy'n golygu ei fod yn bwerdy gweithredu go iawn. Ddim o gwbl fel Kitura a gwahanol gamau, nad ydyn nhw wedi'u ffugio'n syml yn Swift ond yn lle hynny ar Node.js neu bersers person canol eraill, mae Vapor yn datgysylltu ei hun oddi wrth unrhyw un o'r dibyniaethau hynny i ddarparu parser Swift a rhoi APIs clir a chydlynol.

Mae Vapor yn rhoi cymorth trylwyr o gronfeydd data i werthwyr SQL, er enghraifft, MySQL a PostgreSQL, a gwerthwyr NoSQL, er enghraifft, Redis a MongoDB, fel Kitura. Er bod gan Kitura ei atebion Kuery ORM ei hun, mae Vapor yn trosoli ORM Rhugl i gefnogi'r cronfeydd data y cyfeiriais atynt, gan ei gwneud yn weddol syml i ymestyn yr ORM i ddarparwyr cronfeydd data trydydd parti eraill. Mae anwedd yn ynysu ei hun oddi wrth fframweithiau bob yn ail wrth gefnogi Gwasanaeth Hysbysu Gwthio Apple yn frodorol, a hefyd yn cefnogi SMTP i wthio hysbysiadau e-bost.

Tra bod Kitura yn gwireddu ei fframwaith dilysu ei hun, mae gan Vapor lyfrgell ddilysu Stormpath's Turnstile wedi'i phobi yn frodorol. Fel Kitura, mae'r platfform yn yr un modd yn cefnogi'r temtasiynau Mustache a Markdown, ac ar ben hynny ei iaith dempledi mynegiadol Swift-frodorol ei hun, mae Vapor hefyd yn cyd-fynd â'i fodur CLI ei hun fel y fframwaith Swift arall ar ochr y gweinydd, gyda'r gallu i ehangu'r gorchymyn cymhwysiad. dadleuon llinell gyda baneri arfer.

Gosod a Rhedeg

I ddechrau gyda Vapor, byddwch chi'n dechrau trwy osod pecyn offer Vapor, sy'n cynnwys yr holl ddibyniaethau llyfrgell a blwch offer CLI. Gosodwch ef gyda Homebrew trwy nodi'r canlynol yn y derfynfa:

$ brew installvapor / tap / anwedd

Ar yr adeg pan fydd y gosodiad wedi gorffen, gallwch gadarnhau bod Vapor wedi gosod yn llwyddiannus trwy deipio anwedd —help. I greu prosiect, teipiwch y canlynol, gan roi enw eich prosiect eich hun yn ei le:

$ anwedd newydd

Bydd yr injan Vapor yn adeiladu strwythur ffolder sy'n debyg i'r canlynol:

├── Cyhoeddus

Ources── Ffynonellau

App │ ├──

Rheolwyr │ │ ├──

Modelau │ │ ├──

Boot │ ├── boot.swift

│ │ ├── ffurfweddu.swift

│ │ └── llwybrau.swift

│ └── Rhedeg

│ └── main.swift

Ests── Profion

T └── AppTests

└── Pecyn.swift

I greu prosiect Xcode mewn gwirionedd, bydd angen i chi yn yr un modd nodi'r gorchymyn canlynol yn benodol, o fewn ffolder y prosiect:

$ xcode anwedd

Yn olaf, i adeiladu a rhedeg eich prosiect, o Xcode dewiswch y cynllun Rhedeg a hefyd ddyfais targed datblygu My Mac , ac wedi hynny pwyswch y botwm Run fel y byddech chi'n ei wneud ar gyfer unrhyw brosiect Xcode arall. O ystyried nad yw'ch prosiect Xcode yn profi unrhyw wallau, dylech weld y neges gadarnhau ganlynol yn y derfynfa:

Gweinydd yn cychwyn ar https: // localhost: 8080

Ewch ymlaen a nodi'r URL hwnnw mewn unrhyw borwr, a dylech weld eich cais yn rhedeg.

Dechrau Gyda Perffaith

Yn olaf, rydym yn edrych ar Perfect gan PerfectlySoft, platfform ochr gweinydd sy'n llawn nodweddion fel Vapor a Kitura. Mae Perfect yn ymgorffori clychau a chwibanau safonol tebyg y byddech chi'n eu darganfod ar y gwerthwyr blaenorol, o dempledi gyda Mustache neu Markdown i rwydweithio â socedi gwe, ac yn ogystal â Apple Push Notification a SMTP.

Fel y platfform ochr ochr gweinydd arall, mae gan Perfect ei weithrediad ORM ei hun, y platfform StORM (Perfect StORM), sy'n rhoi cefnogaeth frodorol i MySQL, PostgreSQL a chronfeydd data perthynol amlwg eraill, ac yn ychwanegol MongoDB, Redis, ac atebion NoSQL eraill. Un gwaharddiad amlwg o Perffaith yw CLI, ond mae'r fframwaith yn gwneud iawn am hyn gyda chymhwysiad macOS brodorol.

Fel Vapor, mae Perfect hefyd wedi i Turnstile bobi i bweru ei fecanwaith dilysu, wedi'i ymestyn i ryngweithio â StORM yn fwy agos. Cymhwyster arall sydd gan y trefniant hwn dros y lleill yw mewn cryn dipyn o'r llyfrgelloedd cyfleustodau brodorol y mae'n eu cefnogi, gan gynnwys eu deunydd lapio cURL caredig eu hunain ac hefyd offer ar gyfer gweithio gyda ffeiliau a ffolderau. Sylfaen datblygwr Perfect yw'r ail fwyaf, bron â chadw i fyny â Vapor's, sy'n golygu bod gennych gymuned gref i gefnogi'r platfform hwn, ochr yn ochr â set gyfoethog o adnoddau addysgol sy'n rhoi sicrwydd i chi ar y cyfle i ffwrdd y byddwch chi'n ei ddewis.

Gosod a Rhedeg

Mae codi a rhedeg gyda Perffaith yn hynod syml. I ddechrau, cloniwch y repo PerfectlySoft, trwy nodi'r canlynol:

clôn $ git https://github.com/PerfectlySoft/PerfectTemplate.git

O'r tu mewn i'r ffolder wedi'i glonio, adeiladwch y prosiect:

$ adeiladu cyflym

Yn olaf, rhedeg y prosiect, a fydd yn rhedeg gweinydd lleol ar gyfeiriad 0.0.0.0:8181

.build / debug / PerfectTemplate

Gallwch hefyd redeg eich prosiect ar Xcode trwy greu prosiect newydd yn gyntaf, fel a ganlyn:

$ pecyn cyflym cynhyrchu-xcodeproj

O fewn Xcode, sicrhewch fod eich targed gweithredadwy wedi'i bwyntio at My Mac , cyn adeiladu a rhedeg y prosiect.

Casgliad

Mae dyfodiad Swift i'r rhwydwaith ffynhonnell agored wedi gorfodi ymgyrch am atebion Swift y tu hwnt i gymwysiadau cleientiaid, gyda fframweithiau gweinydd pen-ôl yn troi'n gyrion canlynol. Wedi'i wthio gan dri phrosiect amlwg - Vapor gan Qutheory, Kitura IBM, a Perfect. Mae Swift ochr y gweinydd wedi grymuso datblygwyr iOS (a macOS) i ddod yn ddatblygwyr pentwr llawn. Gall hyn negyddu'r ddibyniaeth ar ddatblygwyr pen ôl Node.js, PHP neu .NET. Mae Swift ochr y gweinydd hefyd yn galluogi grwpiau i reoli eu pen ôl heb orfod dibynnu ar ddatrysiad symudol pen-fel-gweinydd fel Firebase neu CloudKit.

Nid yw Swift ochr y gweinydd ar gyfer pawb, mae angen i chi setlo faint o reolaeth yr oedd ei hangen arnoch ar gyfer eich pen ôl, ac a yw'n gwneud synnwyr i chi rolio'ch un chi. Yn ogystal, ni cheisiais ddweud wrthych pa ddatrysiad Swift ar ochr y gweinydd sy'n ddelfrydol. Yn ddiamau, mae datblygwyr yn cael eu difetha am benderfyniad, ac mae pob un o'r tri yn cymryd agwedd unigryw ac aeddfed ac mae'n werth arbrofi â nhw. Byddwn yn eich annog i chwarae o gwmpas gyda phob un o'r codau enghreifftiol, asesu'r strwythur iaith, a chysylltu â'u cymunedau penodol i weld pa ddatrysiad sy'n fwyaf addas i chi.