Architecture Decision Record

Active theme: Light

← Erabaki-erregistroen adibideak

Arkitektura-erabakien erregistroa: Rust programazio-lengoaia

Erabaki zenbakia: AR-001

Erabakiaren izenburua: Rust programazio-lengoaia hartzea

Data: 2021eko abenduaren 1a

Egoera: Onartua

Arazoaren adierazpena

Software-aplikazioak garatzen jarraitzen dugun heinean, ikusi dugu gero eta zailagoa dela segurtasun-ahultasun potentzialak arintzea eta exekuzio-akatsak saihestea. C eta C++ bezalako lehendik dauden programazio-lengoaiekin, buffer overflow-ak, memoria-ihesak eta portaera zehaztugabea bezalako arazoak izaten jarraitzen dugu, aplikazioen kraskatzea eragiten dutenak. Memoria-segurtasun bermeak eskaintzen dituen eta errendimendu-kritikoa duten aplikazioak onartzeko adina eraginkorra den programazio-lengoaia bat behar dugu.

Kontuan hartzekoak

Programazio-lengoaia batzuk lehendik dauden arazoak jorratzeko diseinatuta daude. Horien artean, Rust programazio-lengoaiak garatzaile-komunitatearen arreta handia lortu du bere diseinu-ezaugarri bereziengatik. Kontuan hartzekoen artean daude;

  1. Memoria-segurtasuna eta segurtasuna

  2. Errendimendua eta eraginkortasuna

  3. Komunitatearen laguntza eta onarpena

  4. Ikaskuntza-kurba

  5. Tresnak eta ekosistema

  6. Lehendik dauden software-sistemekin bateragarritasuna.

Murriztapenak

Programazio-lengoaia berri bat hartzeak garatzaileak berriz prestatzea eskatzen du, denbora eta baliabideak behar dituena. Lengoaia lehendik dagoen garapen-lan-fluxuan integratzea erronka izan daiteke. Lehendik dauden sistemekin bateragarritasuna ziurtatu behar dugu eta aldaketa hausleak saihestu jarraitutasuna mantentzeko.

Ezarpena

  1. Gure garapen-taldeak prestakuntza jasoko du Rust programazio-lengoaia ikasteko eta ezagutzeko.

  2. Proiektu berri bat sortuko dugu Rust erabiliz proba-oinarrian, bere bateragarritasuna eta gure garapen-helburuetarako egokitasuna ebaluatzeko.

  3. Pixkanaka C eta C++-n idatzitako lehendik dauden sistemak Rust-era migratuko ditugu.

  4. Rust komunitatearekin lankidetzan arituko gara gure garapen-lan-fluxua hobe dezaketen tresna eta liburutegi eskuragarriak arakatzeko.

  5. Rust-en errendimendua monitorizatuko dugu eta aldiro-aldiro lehendik dauden programazio-lengoaien errendimenduarekin alderatuko dugu.

  6. Epe luzeko ikuspegia hartuko dugu, prestakuntzaren, integrazioaren eta Rust erabiltzearen onura potentzialen kostuak orekatzen dituena.

Arrazoibidea

Rust hartu dugu bere ezaugarri bereziengatik, errendimendua eta eraginkortasuna mantenduz memoria-segurtasun eta segurtasun bermeak eskaintzeko diseinatuak. Rust-en tipo-sistema sendoak, borrow checker-ak eta memoria-segurtasun kontzeptuek oso egokia egiten dute errendimendu-kritikoa eta segurtasun-kritikoa duten aplikazioak garatzeko. Gainera, Rust-ek garatzaile-komunitate esanguratsua du, gure garapen-lan-fluxua laguntzen duten tresna, liburutegi eta ekosistema sorta zabalera sartzeko aukera ematen diguna. Rust-ek ikaskuntza-kurba du arren, uste dugu Rust hartzearen onurak kostuak baino handiagoak direla eta etengabeko hazkunde eta berrikuntzarako aukera bikaina ematen duela.

Ondorioak

  1. Rust hartzeak denboran eta baliabideetan inbertsio esanguratsua eskatuko du garatzaileak prestatzeko eta lengoaia lehendik dagoen garapen-lan-fluxuan integratzeko.

  2. Rust hartzeak bateragarritasun-arazoak sor ditzake lehendik dauden sistemekin, berrantolaketa eta aldaketak eskatuz.

  3. Rust hartzeak gure proiektuan ekarpena egin dezaketen garatzaileen kopurua handitu dezake, proiektu zirraragarrietan lan egin nahi duten Rust garatzaileak erakarriz.

  4. Hartzeak errendimendu, eraginkortasun eta segurtasun hobeak ekar ditzake lehendik dauden lengoaiekin alderatuta.

  5. Azkenik, Rust hartzeak gure aplikazioetako segurtasun-ahultasunak murrizteko onura potentziala dakar.

Kreditua: orri hau ChatGPT-k sortu du, eta gero argitasunerako eta formaturako editatu da.