作為BAT的Java開(kāi)發(fā)工程師,我來(lái)分享下做Java web開(kāi)發(fā),需要掌握哪些技術(shù)以及工具。Java基礎(chǔ)這類(lèi)的就不提了,這是不管做Java web還是安卓開(kāi)發(fā)都需要掌握的。
框架現(xiàn)在做Java web開(kāi)發(fā)的好處是就算你不懂JSP,servlet等等,只要你會(huì)用框架,也能成為一個(gè)開(kāi)發(fā)者。或者可以說(shuō),目前主流的框架已經(jīng)幫助Java開(kāi)發(fā)者托管了很多工作,使他們能夠更加專(zhuān)注于代碼編寫(xiě),功能實(shí)現(xiàn),而不是部署環(huán)境等。
主流的框架過(guò)去曾經(jīng)是SSH獨(dú)霸天下,后來(lái)有了SSM,最近Spring boot則風(fēng)頭正猛。因此,我的推薦是主要了解Spring框架,簡(jiǎn)要了解如何使用mybatis即可。
Spring框架最突出的能力是IoC以及AOP,中文名是控制反轉(zhuǎn)和面向切面編程。其中IoC最大的用處是當(dāng)調(diào)用者對(duì)象需要使用被調(diào)用者對(duì)象的能力的時(shí)候,無(wú)須去參與生成被調(diào)用者對(duì)象的生命周期,只需要去IoC容器中拿來(lái)直接用就可以了,極大的減輕了開(kāi)發(fā)者的負(fù)擔(dān)。AOP是允許代碼片橫向切入,從某種程度來(lái)說(shuō)是實(shí)現(xiàn)了代碼復(fù)用,同樣是提高了開(kāi)發(fā)者的工作效率。
mybatis框架相對(duì)spring來(lái)說(shuō)要簡(jiǎn)單的多。它是一個(gè)持久層框架,比原理的hibernate要輕量級(jí)的多,使用和配置起來(lái)也更加靈活簡(jiǎn)單。
Linux目前已知絕大多數(shù)Java web的項(xiàng)目都是部署在Linux環(huán)境中的(因?yàn)長(zhǎng)inux環(huán)境比Windows環(huán)境穩(wěn)定的多,Linux可以做到幾年不重啟,依舊運(yùn)行的非常順暢)。所以你還要學(xué)會(huì)在Linux環(huán)境通過(guò)命令行而不是圖形界面,來(lái)實(shí)現(xiàn)你的需求。比如要學(xué)會(huì)基本的cd命令,切換文件夾;mkdir命令來(lái)創(chuàng)建文件夾;cat命令來(lái)查看文件;vi命令修改文件;grep命令,有條件的查看文件;還有rz sz命令來(lái)上傳,下載文件到本地環(huán)境;crontab來(lái)部署定時(shí)任務(wù);tail -f來(lái)將某個(gè)文件的即時(shí)輸出打印在屏幕上;du -sh *來(lái)查看當(dāng)前文件夾下每個(gè)子文件(夾)的大小等等等等。
開(kāi)發(fā)工具在Java開(kāi)發(fā)過(guò)程中,通常還會(huì)使用maven這個(gè)項(xiàng)目管理工具,它的包托管能力,也是能夠有效提高開(kāi)發(fā)人員的工作效率,減少了在網(wǎng)上找第三方依賴(lài)jar包,下載再引入依賴(lài)的過(guò)程。
由于程序員通常是協(xié)同開(kāi)發(fā),因此對(duì)git的使用也是必不可少的,學(xué)會(huì)git的使用命令也是很重要的,比如git add用來(lái)提交本地文件, git push把文件push到遠(yuǎn)程倉(cāng)庫(kù), git commit把文件提交到本地倉(cāng)庫(kù), git checkout切換分支等等。
此外,有的程序員還需要beyondCompare,Jenkins等等,這個(gè)因公司情況而定。目前我們公司是禁止使用Jenkins了,因?yàn)閾?dān)心Jenkins的漏洞問(wèn)題會(huì)帶來(lái)觸及安全紅線的問(wèn)題等等。
以上我對(duì)想要從事Java web的同學(xué)的建議,如果對(duì)你有所幫助,歡迎點(diǎn)贊留言。
我是蘇蘇思量,來(lái)自BAT的Java開(kāi)發(fā)工程師,每日分享科技類(lèi)見(jiàn)聞,歡迎關(guān)注我,與我共同進(jìn)步。