Záznam architektonického rozhodnutia: programovací jazyk Rust
Číslo rozhodnutia: AR-001
Názov rozhodnutia: Prijatie programovacieho jazyka Rust
Dátum: 1. decembra 2021
Stav: Prijaté
Opis problému
Ako pokračujeme vo vývoji softvérových aplikácií, pozorujeme, že je čoraz náročnejšie zmierňovať potenciálne bezpečnostné zraniteľnosti a predchádzať chybám za behu. Pri existujúcich programovacích jazykoch, ako sú C a C++, sa naďalej stretávame s problémami ako pretečenie bufferu, úniky pamäte a nedefinované správanie vedúce k pádom aplikácií. Potrebujeme programovací jazyk, ktorý poskytuje záruky bezpečnosti pamäte a je dostatočne efektívny na podporu aplikácií kritických z hľadiska výkonu.
Úvahy
Niekoľko programovacích jazykov je navrhnutých tak, aby riešili existujúce problémy. Medzi nimi získal programovací jazyk Rust značnú pozornosť komunity vývojárov vďaka svojim jedinečným konštrukčným vlastnostiam. Úvahy zahŕňajú;
Bezpečnosť pamäte a zabezpečenie
Výkon a efektivita
Podpora komunity a miera prijatia
Krivka učenia
Nástroje a ekosystém
Kompatibilita s existujúcimi softvérovými systémami.
Obmedzenia
Prijatie nového programovacieho jazyka vyžaduje preškolenie vývojárov, čo zaberie čas a zdroje. Integrácia jazyka do existujúceho vývojového pracovného postupu môže byť výzvou. Musíme zabezpečiť kompatibilitu s existujúcimi systémami a vyhnúť sa zásadným zmenám, aby sme zachovali kontinuitu.
Implementácia
Náš vývojový tím absolvuje školenie, aby sa s programovacím jazykom Rust naučil a oboznámil.
Vytvoríme skúšobne nový projekt v Ruste, aby sme vyhodnotili jeho kompatibilitu a vhodnosť pre naše vývojové účely.
Postupne migrujeme existujúce systémy napísané v C a C++ do Rustu.
Budeme spolupracovať s komunitou Rustu na preskúmaní dostupných nástrojov a knižníc, ktoré môžu zlepšiť náš vývojový pracovný postup.
Budeme sledovať výkon Rustu a pravidelne ho porovnávať s výkonom existujúcich programovacích jazykov.
Prijmeme dlhodobý prístup, ktorý vyvažuje náklady na školenie, integráciu a potenciálne prínosy používania Rustu.
Zdôvodnenie
Prijali sme Rust kvôli jeho jedinečným vlastnostiam navrhnutým tak, aby poskytovali záruky bezpečnosti pamäte a zabezpečenia pri zachovaní výkonu a efektivity. Robustný typový systém Rustu, borrow checker a koncepty bezpečnosti pamäte ho robia veľmi vhodným na vývoj aplikácií kritických z hľadiska výkonu a bezpečnosti. Rust má navyše významnú komunitu vývojárov, čo nám umožňuje prístup k širokej škále nástrojov, knižníc a ekosystému, ktoré podporujú náš vývojový pracovný postup. Hoci Rust prichádza s krivkou učenia, veríme, že prínosy prijatia Rustu prevažujú nad nákladmi a poskytujú výbornú príležitosť na ďalší rast a inovácie.
Dôsledky
Prijatie Rustu bude vyžadovať významnú investíciu času a zdrojov do školenia vývojárov a integrácie jazyka do existujúceho vývojového pracovného postupu.
Prijatie Rustu môže spôsobiť určitý stupeň problémov s kompatibilitou s existujúcimi systémami, čo si vyžiada refaktoring a úpravy.
Prijatie Rustu môže zvýšiť počet vývojárov, ktorí môžu prispievať do nášho projektu, tým, že pritiahne vývojárov Rustu, ktorí chcú pracovať na zaujímavých projektoch.
Prijatie by mohlo viesť k zlepšenému výkonu, efektivite a bezpečnosti v porovnaní s existujúcimi jazykmi.
Napokon prijatie Rustu prináša potenciálny prínos v podobe zníženia bezpečnostných zraniteľností v našich aplikáciách.