二、可選要求
看到可選要求四個字,或許不少人會認(rèn)為這部分不太重要。但是LZ可以很負(fù)責(zé)的告訴你,這部分往往才是決定公司要不要你的重要指標(biāo)。
因為基本要求達標(biāo)以后,公司主要挑選人才的標(biāo)準(zhǔn)其實就是可選要求這一部分,LZ曾經(jīng)提過差異性這個詞,其實這一部分就是差異性的體現(xiàn)。
接下來,LZ就帶大家看看,到底都有哪些可選的要求。此外,LZ要提前說明的是,這些可選要求,沒有必須會和必須不會的內(nèi)容,盡可能多的了解,總是不會錯的。
1)Spring、Mybatis框架
框架這部分其實不用多說了,spring和mybatis框架的原理和源碼,如果你可以非常精通的話,那么這一定能成為你巨大的優(yōu)勢。
如果你是專門做WEB開發(fā)的Java后端猿,那么spring和mybatis框架基本上你是肯定要用的。精通Spring和mybatis框架不僅為了面試,對于你日常開發(fā)也有巨大的幫助,你可以做很多架構(gòu)上的優(yōu)化,為你的戰(zhàn)友省去很多重復(fù)性的工作。
關(guān)于Spring框架,核心的當(dāng)然是IOC,其次便是AOP、MVC這兩部分了。好好研究這三部分的源碼,會讓你從大部分程序員當(dāng)中,脫穎而出。至于mybatis框架,主要還是關(guān)注它如何實現(xiàn)動態(tài)SQL。
而且,待你研究透徹以后,你完全可以自己嘗試去造輪子,說不定能得到意想不到的收獲。
2)Linux服務(wù)器
這一部分其實原本是運維應(yīng)該精通的部分,但是作為一個Java后端猿,如果你可以精通linux服務(wù)器,那么對你排查線上問題,是有很大的幫助的。
大部分程序員都只知道一些常用的Linux命令,對于Linux系統(tǒng)本身的文件系統(tǒng)、網(wǎng)絡(luò)以及IO等等,是完全不了解的,這其實也包括LZ自己。但是,LZ見過身邊有一些程序員,對于Linux玩的非常熟練,這不光光體現(xiàn)在多會幾個命令,而是對整個Linux系統(tǒng)的了解。
可以預(yù)見的是,這些人在排查問題的時候,往往會更容易找到問題的根本。因為程序問題往往并不是難解決的,異常這東西見多了就都知道怎么回事了,大不了看看源碼也總能找到原因。難解決的是環(huán)境問題,而環(huán)境問題無非就是操作系統(tǒng)層面的問題。
而顯然大部分情況下,Java運行的操作系統(tǒng)都是Linux。
3)數(shù)據(jù)庫優(yōu)化
說完Linux,緊接著LZ要說的就是數(shù)據(jù)庫了,這原本應(yīng)該是DBA應(yīng)該精通的部分,但作為一個Java后端猿,數(shù)據(jù)庫基本上也是經(jīng)常打交道的了。
而且大家都知道,一個應(yīng)用的性能瓶頸,往往都出現(xiàn)在數(shù)據(jù)庫這一端,因此,一個Java后端猿如果可以精通數(shù)據(jù)庫的話,那么對于你工作的實際幫助,也是非常大的。
相信不少人都碰到過SQL過慢的情況,這個時候,如何通過加索引、SQL分析和優(yōu)化的手段,將SQL的執(zhí)行時間優(yōu)化到一個可接受的范圍內(nèi),其實還是比較考驗人的。
未完待續(xù)。。。。。。