Architecture Decision Record

Active theme: Light

← Ensamplow kovskrif dyberth

Yethow towlennans

Kenwyns:

Berrskrif

Kudyn

Res yw dhyn dewis yethow towlennans rag agan medhelweyth. Yma dhyn dhew othom pennys: yeth towlennans kynsa-tu gwiw rag aplikasyons gwew, hag yeth towlennans diwedh-tu gwiw rag aplikasyons servyer.

Dyberth

Ni a dhewis TypeScript rag an kynsa-tu.

Ni a dhewis Rust rag an diwedh-tu.

Studh

Dewisys. Ni yw ygor dhe dhewisyow nowydh pan dheuns.

Manylyow

Tybyansow

An aplikasyons kynsa-tu yw ollgemmyn:

  • Usyoryon ha ynterweythyansow ollgemmyn

  • Peurellow ha systemow ollgemmyn

  • Displegyansow ha displegyansow ollgemmyn

An aplikasyons kynsa-tu a dhevi skon:

  • Ni a vynn surhe displegyansow, displegyansow, ailtreyansow, hag yn skon ha es.

  • Ni a brys previadewder, avel sawder ha spesys, ha ni yw lowen ow kwytha nebes moy a ober dhe gavos henna.

  • Nyns eus othom dhyn a gesstowans hengovek.

An aplikasyons diwedh-tu yw uhelha es ollgemmyn:

  • Mynnansow uhelha es ollgemmyn rag ansawdh, arbennik previadewder, fydhekter, sawder, hag yn.

  • Mynnansow uhelha es ollgemmyn rag ogas-real-termyn, hen yw ny vynnyn ni hedhyansow awos kuntel-dhiskar peiran gwir.

  • Mynnansow uhelha es ollgemmyn rag towlennans gweythresek, arbennik rag kesstrif, argerdh multi-kres, ha sawder kov.

Ni a dhegemmer skonder kompilya izelha rag sawder kompilya ha skonder gweythrys.

Lettyansow

Yma dhyn lettyans krev war yethow a hyll bos usys gans gwassanethow profyer kommol pennys rag oberow, avel Amazon Lambda.

Savyow

Ni a gemeras an yethow ma yn kyfrif:

  • C

  • C++

  • Clojure

  • Elixir

  • Erlang

  • Elm

  • Flow

  • Go

  • Haskell

  • Java

  • JavaScript

  • Kotlin

  • Python

  • Ruby

  • Rust

  • TypeScript

Argument

Berrskrif pub yeth:

  • C: refusys awos sawder izel; Rust a hyll gul bys y pub tra gwell.

  • C++: refusys awos y vos hwath; Rust a hyll gul bys y pub tra gwell.

  • Clojure: modhelya ragorek; an nes dhe Lisp; gweythrys ragorek war an JVM.

  • Elixir: gweythrys ragorek ow keworra displegyadewder ha kesoberans; skians displegyor ragorek; ekosystem byghan dre gehaval.

  • Erlang: gweythrys ragorek ow keworra displegyadewder ha kesoberans; skians displegyor chalenjus; ekosystem byghan dre gehaval.

  • Elm: a seem pur-addysgus; IBM yw ow tyllo studhyansow kas bras gans sewyansow da; ekosystem byghan.

  • Flow: gwellheans hweg a JavaScript; byttele; displegyoryon yw ow mos dhe-ves anodho.

  • Go: skians displegyor ragorek; kesoberans ragorek; mes rekord a dhybyrthow drog a gripyl an yeth.

  • Haskell: an yeth gweythresek gwella; kemeneth displegyoryon le; nyns eus dhodho lowr a sewenyow produksyon dyllys.

  • Java: gweythrys ragorek; ekosystem ragorek; skians displegyor izel.

  • JavaScript: an yeth moyha poblek bys vyken; an ekosystem moyha ystynnys.

  • Kotlin: a drevy meur a Java; skoodh ragorek dhyworth JetBrains; kasow dyllys da a dreylya dhyworth Java dhe Kotlin.

  • Python: an yeth moyha poblek rag gweythlu systemow; toulys dasdhesk bras; framweythow gwew da; mes forsakys gans Google rag Go.

  • Ruby: an skians displegyor gwella bys vyken; framweythow gwew gwella; kemeneth gwella; mes pur-hweg; nebes kales dhe bakya.

  • Rust: an yeth nowydh gwella; fok war nul-abstrakchyon; fok war gesoberans; byttele ekosystem byghan dre gehaval; ha lettyansow bwrpasek war nebes sortow a skonhansow kompilor, rag ensampel hedhes kov yn rakt a res bos diwoest yn arbennik.

  • TypeScript: a ouryn sortow dhe JavaScript; treuswyller bras; fok displegyoryon ow tevi war dreylya dhyworth JavaScript dhe TypeScript; skoodh krev dhyworth Microsoft.

Ni a dhybarthas may'n jeves VMs set a stokyow-trelyes na vynnyn lemmyn, avel kompleksyta ychwanek a re gallusow gweythrys.

Ni a gryj may fo agan dyberth kresek ledhys gans dew vyrs kes-trethek:

  • Rag an skonder gweythrys uhelha ha hedhes system strettha, ni a dhewis JavaScript ha C.

  • Rag skonder gweythrys ogas-dhe-uhelha ha hedhes system ogas-dhe-strettha, ni a dhewis TypeScript ha Rust.

Meurgerdh dhe'n yethow VM ha framweythow gwew a dhewisen mar mynnen yeth VM:

  • Clojure ha Luminus

  • Java ha Spring

  • Elixir ha Phoenix

Sewyansow

Displegyoryon kynsa-tu a res dhedha dyski TypeScript. Hemma a seem bos kromm dyskans es mar pe aga skians kresek ow usya JavaScript.

Displegyoryon diwedh-tu a res dhedha dyski Rust. Hemma a seem bos kromm dyskans kres mar pe aga skians kresek ow usya C/C++, ha kromm dyskans kales mar pe aga skians kresek ow usya Java, Python, Ruby, po yethow haval rewlys-kov.

TypeScript ha Rust yw dhew nowydhek dre gehaval. Hemma a styr na'n jeves lies toul dogvennans hwath rag an yethow ma. Rag ensampel, res vydh settya pibell devops rag an yethow ma, ha bys lemmyn nyns eus ensamplow defowt rag an yethow ma yn toulys devops vyth a jydjyn.

Termynyow kompilya rag TypeScript ha Rust yw pur-hweg. Nebes anodho a hyll bos awos nowydhsys an yethow. Martesen y hwrewn mynnes mires fatel lehe termynyow kompilya hweg, avel kompilya-orth-govyn, kesoberans-kompilya, hag yn.

Skoodh IDE rag an yethow ma nyns yw hwath ollwedhek na kynsa-live. Rag ensampel, JetBrains a werth IDE PyCharm rag skoodh kynsa-live Python, mes ny werth IDE gans skoodh kynsa-live rag Rust; yn le henna, JetBrains a hyll usya plugin Rust a re martesen 80% a skoodh yeth Rust erbynn skoodh yeth Python.

Kelmys

Dybyrthow kelmys

Ni a vynn dewisyow ekosystem a gesson gans an yethow ma.

Rag ensampel, ni a vynn dewis IDE a'n jeves gallusow da rag an yethow ma.

Rag ensampel, rag agan framweyth gwew kynsa-tu, ni a vydh moy gallus dhe dhewis framweyth a vynn tu dhe TypeScript (rag ensampel Vue) es framweyth a vynn tu dhe JavaScript sempel (rag ensampel React).

Othommow kelmys

Agan cadenn toulys oll a dal skoodhya an yethow ma.

Arteffaktys kelmys

Ni a wayt may hwrewn eksportya nebes kevrinyow dhe chanjyadow kerghynnedh.

Prensiplys kelmys

Musur diwweyth, drehevel unnweyth. Ni a brys nebes sawder a-ugh nebes skonder.

Gweythrys yw moy valewus es termyn kompilya. Ni a brys usadow kerys a-ugh usadow displegyor.

Notennow

Pynag notennow omma.