Jauni žmonės, neseniai baigę universitetus ar kolegijas, dažnai sunkiai randa teisingą būdą tapti Java Full Stack programuotoju. Naujokui Java aplinka gali atrodyti itin sudėtinga ir komplikuota. Patyrusiam – lygiai taip pat. To priežastis yra nuolatos besikeičiantys verslo pasaulio reikalavimai. Šiame straipsnyje pasistengsime paaiškinti, kas yra naudojama dabartiniame verslo pasaulyje, kad galėtumėte kryptingai ir tikslingai leisti savo laiką mokydamiesi pačias svarbiausias technologijas.
1. Java programavimo kalba
Turite žinoti, kaip parašyti paprastą konsolinę aplikaciją su Java. Pirmas žingsnis yra sintaksės pagrindai, paprasčiausios struktūros, tokios kaip ‘if’, ‘for’ ciklai ir t.t. Tada mokotės apie objektų kūrimą, metodus, parametrų padavimą į tuos metodus. Trečias žingsnis – naudoti sukurtas klases, tokias kaip Date, String, Calendar ir Number. Tuomet mokotės kolekcijas filtravimui, rūšiavimui(Sorting), kelių objektų grupavimą.
2. Objektinis programavimas
Pagrinde Java yra objektinio programavimo(Object-Oriented) kalba. Tai reiškia, jog šioje kalboje visa esmė yra objektų kūrime. Bet koks objekto atributas ar elgesys yra tiesiogiai priskirtas tam objektui. Jums reikės išmokti duomenų apgaubą(Encapsulation), paveldimumą(Inheritance) ir abstraktumą.
3. HTML programavimas
HTML naudojamas kurti internetiniams puslapiams, kurie gali būti rodomi interneto naršyklėse, tokiose kaip Chrome, Safari ir t.t. Nesvarbu kokią kalbą naudojate iš serverio pusės, tik HTML yra naudojama ‘front-ende’.
4. Javascript programavimas (neprivaloma)
Turbūt nereikia nei sakyti, jog tarp Java ir Javascript nėra jokio ryšio, galbūt išskyrus pavadinimo panašumą. Javascript yra ‘front-end’ technologija, skirta manipuliuoti HTML dalį. Taigi, bendrinis Javascript suvokimas yra reikalinga sukurti gyvesniam internetiniam puslapiui.
Pasidomėkite apie populiariausias bibliotekas: JQuery ir Sencha.
5. CSS (neprivaloma)
CSS yra speciali klaba, skirta nusakyti HTML puslapių vaizdavimą, stilių bei elementų išdėstymą. Prieš einant tolimesnius žingsnius, būtų gerai turėti bent šiokius tokius CSS pagrindus.
6. HTTP protokolas
Bet koks internetinis puslapis matomas internetinėje naršyklėje bendrauja su serveriu naudojant HTTP arba saugų HTTPS protokolą. Komunikacija vyksta abejomis pusėmis – tai reiškia, jog atvaizduotas puslapis vartotojo naršyklėje tuomet siunčia informacija atgal į serverį, kad gautų naujos informacijos.
HTTP pagrindiniai metodai yra GET ir POST. Privalote žinote jų skirtumus tarp ir kokiais atvejais jie yra naudojami.
7. Servlet
Paprasčiausias Java Web(JavaEE) serverio pusės elementas vadinasi servlet. Šis elementas yra galutinis HTTP kanalo taškas. Kitas kanalo taškas – vartotojo naršyklė.
Servlet gauna vartotojo užklausas kaip HTTPServletRequest objektus, ir gali grąžinti kokią nors informaciją naudodami HTTPServletResponse objektus.
8. JSP-Java Server Pages
JSP yra paprasčiausias Java EE vartotojo sąsajos (front-end) elementas.
JSP puslapis – tai HTML puslapis, kuris savyje turi specialių žymų(specialiai skirtų JAVA), kurias servlets gali suprasti ir bendrauti abiejomis kryptimis.
9. AJAX – Asinchroninis JavaScript programavimas
Bet kuri moderni internetinė aplikacija efektyviai naudoja AJAX (HTTP užklausoms).
Dėl įvairių priežasčių HTML puslapis turi bendrauti su serveriu asinchroniškai, o šios užklausos yra padaromos naudojant AJAX technologija. Tad suprasti ir mokėti naudoti AJAX yra tiesiog privalu.
10. Duomenų bazės
Nesvarbu kokia programavimo kalba naudojatės – tam, kad talpinti informaciją ir ją esant reikalui ištraukti, jums teks naudoti duomenų bazę. Reliacinės duomenų bazės(relational databases) yra labiausiai tradicinės ir plačiausiai naudojamos. Oracle, MySql, PostgreSQL yra plačiausiai naudojamos reliacinių duomenų bazių sistemos.
Labai svarbu išmokti specialią, duomenų bazių kūrimui ir manipuliavimui skirtą SQL kalbą.
11. Java aplikacijų sujungimas su duomenų bazės sistema.
Nesvarbu koks duomenų bazės sistemos tipas yra naudojamas, jums reikės padaryti, kad Java aplikacija ir duomenų bazė galėtų susišnekėti. Tam jums reikės išmokti JDBC(Java Database Connectivity).
12. Model View Controller (MVC) architektūra
Kai kurie metodai atskiria mažai ir daug apmokamus programuotojus. Vienas iš tokių modelių yra MVC. Jis iš esmės teigia, jog programuojant naują programą ar sistemą, reikia vieną nuo kito atskirti pačios informacijos, informacijos atvaizdavimo ir informacijos apdirbimo vienetus.
Struts 2 ir Spring MVC yra populiarūs framework’ai naudojantis MVC architektūrą.
13. DAO (Data Access Objects)
Visos duomenų bazių operacijos atlieka kūrimą, atnaujinimą, trynimą. Kiekvienai lentelei(table) reikėtų atskiros klasės, ir duomenų bazės operacijos turėtų būti sujungtos į vieną. Šie objektai yra vadinami DAO.
14. XML ir JSON
Skirtingi web moduliai ir aplikacijos siunčia informaciją viena kitai dviem tipais: XML ir JSON. Jums reikia išmokti JSON ir XML objektų struktūra. Vėliau išmoksite konvertuoti JSON sakinio tipą(string) į Java objektus ir atvirkščiai.
15. Kitos sistemos ir įrankiai
Be visų anksčiau paminėtų dalykų, dar siūlome pasimokyti:
ORM įrankius
JSF (Java Server Faces)
Primefaces
Web servisai – SOAP ir RestFUL
Android programavimas