Architecture Decision Record

Active theme: Light

← Enghreifftiau o gofnodion penderfyniadau

Cofnod penderfyniad saernïaeth: yr iaith raglennu Rust

Rhif y penderfyniad: AR-001

Teitl y penderfyniad: Mabwysiadu'r iaith raglennu Rust

Dyddiad: 1 Rhagfyr 2021

Statws: Wedi'i dderbyn

Datganiad o'r broblem

Wrth i ni barhau i ddatblygu cymwysiadau meddalwedd, rydym wedi sylwi ei bod yn fwyfwy heriol lliniaru gwendidau diogelwch posibl ac atal gwallau amser rhedeg. Gyda'r ieithoedd rhaglennu presennol, fel C a C++, rydym yn dal i brofi problemau fel gorlifo byfferau, gollyngiadau cof, ac ymddygiad heb ei ddiffinio sy'n arwain at gymwysiadau'n chwalu. Mae angen iaith raglennu arnom sy'n darparu sicrwydd o ran diogelwch cof ac sy'n ddigon effeithlon i gefnogi cymwysiadau lle mae perfformiad yn hanfodol.

Ystyriaethau

Cynlluniwyd sawl iaith raglennu i fynd i'r afael â'r problemau presennol. Yn eu plith, mae'r iaith raglennu Rust wedi denu sylw sylweddol gan gymuned y datblygwyr oherwydd ei nodweddion dylunio unigryw. Mae'r ystyriaethau'n cynnwys;

  1. Diogelwch cof a diogelwch

  2. Perfformiad ac effeithlonrwydd

  3. Cefnogaeth gan y gymuned a'i mabwysiadu

  4. Cromlin ddysgu

  5. Offer ac ecosystem

  6. Cydweddoldeb â systemau meddalwedd presennol.

Cyfyngiadau

Mae mabwysiadu iaith raglennu newydd yn gofyn am ailhyfforddi datblygwyr, sy'n cymryd amser ac adnoddau. Gall integreiddio'r iaith i'r llif gwaith datblygu presennol fod yn her. Rhaid i ni sicrhau cydweddoldeb â'r systemau presennol ac osgoi newidiadau sy'n torri pethau er mwyn cynnal parhad.

Gweithredu

  1. Bydd ein tîm datblygu yn cael hyfforddiant i ddysgu ac ymgyfarwyddo â'r iaith raglennu Rust.

  2. Byddwn yn creu prosiect newydd gan ddefnyddio Rust ar sail treial i werthuso ei gydweddoldeb a'i addasrwydd ar gyfer ein dibenion datblygu.

  3. Byddwn yn mudo systemau presennol sydd wedi'u hysgrifennu yn C a C++ i Rust yn raddol.

  4. Byddwn yn cydweithio â'r gymuned Rust i archwilio'r offer a'r llyfrgelloedd sydd ar gael a all wella ein llif gwaith datblygu.

  5. Byddwn yn monitro perfformiad Rust ac yn ei gymharu â pherfformiad yr ieithoedd rhaglennu presennol yn rheolaidd.

  6. Byddwn yn mabwysiadu dull hirdymor sy'n cydbwyso costau hyfforddiant, integreiddio, a manteision posibl defnyddio Rust.

Sail resymegol

Rydym wedi mabwysiadu Rust oherwydd ei nodweddion unigryw a gynlluniwyd i ddarparu sicrwydd o ran diogelwch cof a diogelwch gan gynnal perfformiad ac effeithlonrwydd. Mae system mathau gadarn Rust, ei gwiriwr benthyca (borrow checker), a'i chysyniadau diogelwch cof yn ei gwneud yn addas iawn ar gyfer datblygu cymwysiadau lle mae perfformiad a diogelwch yn hanfodol. Ar ben hynny, mae gan Rust gymuned sylweddol o ddatblygwyr, sy'n ein galluogi i gael mynediad at ystod eang o offer, llyfrgelloedd ac ecosystem sy'n cefnogi ein llif gwaith datblygu. Er bod gan Rust gromlin ddysgu, credwn fod manteision mabwysiadu Rust yn drech na'r costau ac yn rhoi cyfle ardderchog ar gyfer twf ac arloesi parhaus.

Canlyniadau

  1. Bydd mabwysiadu Rust yn gofyn am fuddsoddiad sylweddol o amser ac adnoddau i hyfforddi datblygwyr ac integreiddio'r iaith i'r llif gwaith datblygu presennol.

  2. Gall mabwysiadu Rust achosi rhywfaint o broblemau cydweddoldeb â systemau presennol, gan fod angen ailffactorio ac addasu.

  3. Gall mabwysiadu Rust gynyddu nifer y datblygwyr a all gyfrannu at ein prosiect drwy ddenu datblygwyr Rust sydd am weithio ar brosiectau cyffrous.

  4. Gallai'r mabwysiadu arwain at well perfformiad, effeithlonrwydd a diogelwch o'i gymharu â'r ieithoedd presennol.

  5. Yn olaf, mae mabwysiadu Rust yn dod â'r budd posibl o leihau gwendidau diogelwch yn ein cymwysiadau.

Cydnabyddiaeth: cynhyrchwyd y dudalen hon gan ChatGPT, yna fe'i golygwyd er eglurder a fformat.