Arhitektūras lēmuma ieraksts: programmēšanas valoda Rust
Lēmuma numurs: AR-001
Lēmuma nosaukums: programmēšanas valodas Rust ieviešana
Datums: 2021. gada 1. decembris
Statuss: pieņemts
Problēmas formulējums
Turpinot izstrādāt programmatūras lietojumprogrammas, esam novērojuši, ka arvien grūtāk ir mazināt iespējamās drošības ievainojamības un novērst izpildlaika kļūdas. Ar esošajām programmēšanas valodām, piemēram, C un C++, mēs joprojām saskaramies ar tādām problēmām kā bufera pārpildes, atmiņas noplūdes un nedefinēta uzvedība, kas izraisa lietojumprogrammu avārijas. Mums nepieciešama programmēšanas valoda, kas nodrošina atmiņas drošības garantijas un ir pietiekami efektīva, lai atbalstītu veiktspējai kritiskas lietojumprogrammas.
Apsvērumi
Vairākas programmēšanas valodas ir paredzētas esošo problēmu risināšanai. Starp tām programmēšanas valoda Rust ir piesaistījusi ievērojamu izstrādātāju kopienas uzmanību savu unikālo dizaina iezīmju dēļ. Apsvērumi ietver;
Atmiņas drošība un drošība
Veiktspēja un efektivitāte
Kopienas atbalsts un pieņemšana
Mācīšanās līkne
Rīki un ekosistēma
Saderība ar esošajām programmatūras sistēmām.
Ierobežojumi
Jaunas programmēšanas valodas pieņemšana prasa izstrādātāju pārkvalificēšanu, kas prasa laiku un resursus. Valodas integrēšana esošajā izstrādes darbplūsmā var būt izaicinājums. Mums jānodrošina saderība ar esošajām sistēmām un jāizvairās no saderību laužošām izmaiņām, lai saglabātu nepārtrauktību.
Īstenošana
Mūsu izstrādes komanda apmācīsies, lai iemācītos un iepazītos ar programmēšanas valodu Rust.
Mēs izveidosim jaunu projektu, izmantojot Rust, izmēģinājuma kārtībā, lai novērtētu tā saderību un piemērotību mūsu izstrādes vajadzībām.
Mēs pakāpeniski migrēsim esošās sistēmas, kas rakstītas C un C++, uz Rust.
Mēs sadarbosimies ar Rust kopienu, lai izpētītu pieejamos rīkus un bibliotēkas, kas var uzlabot mūsu izstrādes darbplūsmu.
Mēs regulāri uzraudzīsim Rust veiktspēju un salīdzināsim to ar esošo programmēšanas valodu veiktspēju.
Mēs pieņemsim ilgtermiņa pieeju, kas līdzsvaro apmācības, integrācijas izmaksas un Rust izmantošanas iespējamos ieguvumus.
Pamatojums
Mēs pieņēmām Rust tā unikālo iezīmju dēļ, kas paredzētas, lai nodrošinātu atmiņas drošības un drošības garantijas, vienlaikus saglabājot veiktspēju un efektivitāti. Rust robustā tipu sistēma, aizņēmumu pārbaudītājs (borrow checker) un atmiņas drošības koncepcijas padara to ļoti piemērotu veiktspējai un drošībai kritisku lietojumprogrammu izstrādei. Turklāt Rust ir ievērojama izstrādātāju kopiena, kas ļauj mums piekļūt plašam rīku, bibliotēku un ekosistēmas klāstam, kas atbalsta mūsu izstrādes darbplūsmu. Lai gan Rust ir mācīšanās līkne, mēs uzskatām, ka Rust pieņemšanas ieguvumi atsver izmaksas un sniedz teicamu iespēju turpmākai izaugsmei un inovācijām.
Sekas
Rust pieņemšana prasīs ievērojamu laika un resursu ieguldījumu izstrādātāju apmācībā un valodas integrēšanā esošajā izstrādes darbplūsmā.
Rust pieņemšana var radīt zināmu saderības problēmu pakāpi ar esošajām sistēmām, prasot pārveidošanu un izmaiņas.
Rust pieņemšana var palielināt izstrādātāju skaitu, kas var piedalīties mūsu projektā, piesaistot Rust izstrādātājus, kuri vēlas strādāt pie aizraujošiem projektiem.
Pieņemšana varētu novest pie uzlabotas veiktspējas, efektivitātes un drošības salīdzinājumā ar esošajām valodām.
Visbeidzot, Rust pieņemšana nes potenciālu ieguvumu – samazināt drošības ievainojamības mūsu lietojumprogrammās.