Architecture Decision Record

Active theme: Light

← Sprendimo įrašo pavyzdžiai

Architektūros sprendimo įrašas: programavimo kalba Rust

Sprendimo numeris: AR-001

Sprendimo pavadinimas: programavimo kalbos Rust priėmimas

Data: 2021 m. gruodžio 1 d.

Būsena: priimtas

Problemos formulavimas

Toliau kurdami programines programas pastebėjome, kad vis sunkiau mažinti galimus saugumo pažeidžiamumus ir užkirsti kelią vykdymo laiko klaidoms. Su esamomis programavimo kalbomis, tokiomis kaip C ir C++, ir toliau susiduriame su tokiomis problemomis kaip buferio perpildymas, atminties nutekėjimai ir neapibrėžta elgsena, lemianti programų strigtis. Mums reikia programavimo kalbos, suteikiančios atminties saugumo garantijas ir pakankamai efektyvios, kad palaikytų našumui kritiškas programas.

Svarstymai

Kelios programavimo kalbos sukurtos esamoms problemoms spręsti. Tarp jų programavimo kalba Rust sulaukė didelio programuotojų bendruomenės dėmesio dėl savo unikalių projektavimo savybių. Svarstymai apima:

  1. Atminties saugumą ir apsaugą

  2. Našumą ir efektyvumą

  3. Bendruomenės paramą ir paplitimą

  4. Mokymosi kreivę

  5. Įrankius ir ekosistemą

  6. Suderinamumą su esamomis programinės įrangos sistemomis.

Apribojimai

Naujos programavimo kalbos priėmimas reikalauja perkvalifikuoti programuotojus, o tai užima laiko ir išteklių. Kalbos integravimas į esamą kūrimo darbo eigą gali būti iššūkis. Turime užtikrinti suderinamumą su esamomis sistemomis ir išvengti suderinamumą laužančių pakeitimų, kad išlaikytume tęstinumą.

Įgyvendinimas

  1. Mūsų kūrimo komanda išklausys mokymus, kad išmoktų ir susipažintų su programavimo kalba Rust.

  2. Sukursime naują projektą naudodami Rust bandomuoju pagrindu, kad įvertintume jo suderinamumą ir tinkamumą mūsų kūrimo tikslams.

  3. Palaipsniui perkelsime esamas sistemas, parašytas C ir C++, į Rust.

  4. Bendradarbiausime su Rust bendruomene, kad išnagrinėtume turimus įrankius ir bibliotekas, galinčius pagerinti mūsų kūrimo darbo eigą.

  5. Reguliariai stebėsime Rust našumą ir lyginsime jį su esamų programavimo kalbų našumu.

  6. Taikysime ilgalaikį požiūrį, subalansuojantį mokymo, integravimo išlaidas ir galimus Rust naudojimo privalumus.

Pagrindimas

Priėmėme Rust dėl jo unikalių savybių, sukurtų užtikrinti atminties saugumo ir apsaugos garantijas išlaikant našumą ir efektyvumą. Tvirta Rust tipų sistema, skolinimosi tikrintuvas (angl. borrow checker) ir atminties saugumo koncepcijos daro jį labai tinkamą našumui kritiškoms ir saugumui kritiškoms programoms kurti. Be to, Rust turi didelę programuotojų bendruomenę, leidžiančią mums pasiekti platų įrankių, bibliotekų ir ekosistemos spektrą, palaikantį mūsų kūrimo darbo eigą. Nors Rust turi mokymosi kreivę, manome, kad Rust priėmimo privalumai nusveria išlaidas ir suteikia puikią galimybę tolesniam augimui ir inovacijoms.

Pasekmės

  1. Rust priėmimas pareikalaus didelių laiko ir išteklių investicijų programuotojams apmokyti ir kalbai integruoti į esamą kūrimo darbo eigą.

  2. Rust priėmimas gali sukelti tam tikrų suderinamumo problemų su esamomis sistemomis, todėl reikės pertvarkyti kodą ir jį modifikuoti.

  3. Rust priėmimas gali padidinti programuotojų, galinčių prisidėti prie mūsų projekto, skaičių pritraukdamas Rust programuotojus, norinčius dirbti prie įdomių projektų.

  4. Priėmimas gali lemti geresnį našumą, efektyvumą ir saugumą, palyginti su esamomis kalbomis.

  5. Galiausiai Rust priėmimas turi galimą privalumą – sumažinti saugumo pažeidžiamumus mūsų programose.

Padėka: šį puslapį sugeneravo ChatGPT, vėliau jis buvo redaguotas aiškumui ir formatui pagerinti.