Architecture Decision Record

Active theme: Light

← Primjeri zapisa odluka

Zapis arhitekturne odluke: uređivači programskog koda

Kontekst

Uređivači programskog koda ključan su alat za programere za pisanje i uređivanje koda. Dostupni su brojni uređivači koda, svaki sa svojim skupom značajki, prednosti i nedostataka. Svrha ovog ADR-a je dokumentirati arhitekturne odluke donesene za uređivače programskog koda.

Prioriteti

Arhitektura uređivača programskog koda trebala bi davati prednost sljedećem:

  • Modularnost: Uređivač koda trebao bi biti dizajniran modularno, omogućujući programerima da ga prilagode i prošire prema potrebi. To omogućuje fleksibilnu arhitekturu koja se može prilagoditi potrebama različitih programera i timova.

  • Performanse: Uređivač koda trebao bi biti performantan i brzo reagirati, omogućujući programerima da rade učinkovito bez usporavanja alatom koji koriste.

  • Korisničko sučelje: Korisničko sučelje trebalo bi biti intuitivno i jednostavno za uporabu, omogućujući programerima da se usredotoče na svoj kod umjesto da se bore s uređivačem.

  • Proširivost: Uređivač koda trebao bi biti dizajniran tako da omogućuje jednostavno proširenje dodacima i integracijama trećih strana.

  • Kompatibilnost: Uređivač koda trebao bi biti kompatibilan sa širokim rasponom programskih jezika i tehnologija, što ga čini korisnim alatom za širok krug programera.

Odluka

Na temelju tih prioriteta arhitektura uređivača programskog koda trebala bi biti dizajnirana sa sljedećim komponentama:

  • Jezgra: Ova komponenta pruža osnovnu funkcionalnost uređivača koda, poput isticanja sintakse, uređivanja teksta i upravljanja datotekama.

  • UI: Ova komponenta pruža korisničko sučelje uređivača koda, uključujući izbornike, alatne trake i tipkovničke prečace.

  • Dodaci: Ova komponenta omogućuje programerima da prošire funkcionalnost uređivača koda instaliranjem dodataka trećih strana. Dodaci mogu pružati dodatne značajke, poput dovršavanja koda, lintanja ili otklanjanja pogrešaka.

  • Integracije: Ova komponenta omogućuje uređivaču koda integraciju s drugim alatima i tehnologijama, poput sustava za kontrolu verzija, sustava za izgradnju ili alata za otklanjanje pogrešaka.

Obrazloženje

Modularnost uređivača koda omogućuje programerima da ga prilagode i prošire prema potrebi. To je važno jer različiti programeri i timovi imaju različite potrebe i tijekove rada, a fleksibilna arhitektura može prihvatiti te razlike.

  • Performanse: ključne jer programeri moraju moći raditi učinkovito bez usporavanja svojim alatima. Performantan uređivač koda nužan je za produktivnost i može pomoći programerima da zadrže fokus i koncentraciju.

  • UI: važan jer omogućuje programerima da se usredotoče na svoj kod umjesto da se bore s uređivačem. To može dovesti do bolje produktivnosti i manje frustracije programera.

  • Proširivost: moćna jer omogućuje prilagodbu uređivača koda različitim potrebama i tijekovima rada. Dodaci i integracije trećih strana mogu pružiti dodatne značajke i mogućnosti koje nisu uključene u osnovni uređivač.

  • Kompatibilnost: vrijedna jer omogućuje korištenje uređivača koda sa širokim rasponom programskih jezika i tehnologija. To uređivač čini korisnijim alatom za širok krug programera.

Komponente jezgre, dodataka, integracija i UI-ja pružaju jasno razdvajanje odgovornosti i omogućuju modularnu arhitekturu koja se lako može proširivati i prilagođavati. Ta je arhitektura fleksibilna, performantna i kompatibilna sa širokim rasponom programskih jezika i tehnologija, što je čini korisnim alatom za programere.