Zapis arhitekturne odluke: programski jezik Java
Naslov: Odabir programskog jezika Java za projekt
Odluka: Nakon vrednovanja više programskih jezika odlučili smo koristiti Javu za naš projekt.
Pozadina
Namjeravali smo izgraditi web aplikaciju koja može raditi na više operacijskih sustava. Naš projekt zahtijevao je jezik koji može pružiti snažne sigurnosne značajke, upravljati istodobnošću, podržavati velike baze koda i biti dovoljno svestran da zadovolji naše buduće zahtjeve rasta. Vrednovali smo nekoliko jezika, razmatrajući njihove snage i ograničenja, prije odluke za Javu.
Razmatranja
Sigurnost: Java pruža izvrsne sigurnosne značajke kroz dobro definirane sigurnosne politike i kontrolu pristupa. Također uključuje značajke poput provjere bajtkoda, koja pomaže spriječiti pokretanje zlonamjernog softvera na sustavu.
Istodobnost: Java ima ugrađenu podršku za višenitnost, što aplikacijama omogućuje istodobno obavljanje više zadataka. Ta značajka čini Javu izvrsnim izborom za razvoj velikih, složenih aplikacija s mnogo značajki i funkcionalnosti.
Velike baze koda: Java podržava objektno orijentirano programiranje, što je čini prikladnim izborom za razvoj velikih baza koda. Njezina modularna priroda te upotreba obrazaca enkapsulacije i apstrakcije dodatno olakšavaju proces razvoja softvera.
Svestranost: Java je svestrana i pruža mogućnost korištenja širokog raspona biblioteka i okvira, što je čini izvrsnim izborom za web aplikacije i aplikacije na razini poduzeća.
Ishod odluke
Odlučili smo koristiti programski jezik Java za naš projekt, uzimajući u obzir njegove sigurnosne značajke, podršku za istodobnost, sposobnost upravljanja velikim bazama koda i svestranost. Ova odluka u skladu je sa zahtjevima našeg projekta i vjerujemo da će odabir Jave osigurati njegov uspjeh.
Posljedice
Trebat će nam programeri koji imaju iskustva s Javom i koji je mogu vješto koristiti.
Svaki kod napisan na tom jeziku mora biti kompatibilan s Javinim virtualnim strojem (JVM).
Uključivanje novih značajki, funkcionalnosti ili okvira može predstavljati određene izazove.
Veliki, složeni projekti u Javi mogu zahtijevati više vremena i resursa za razvoj.