干貨:假期聊一聊學(xué)習(xí)方法
閱讀本文大概需要 6.5 分鐘。
來(lái)自:小林
原文:oschina.net/question/3774191_2320056


熟悉更多業(yè)務(wù)
需求分析的時(shí)候更加準(zhǔn)確,能夠在需求階段就識(shí)別風(fēng)險(xiǎn)、影響、難點(diǎn)。
問(wèn)題處理的時(shí)候更加快速,因?yàn)橄嚓P(guān)的業(yè)務(wù)和代碼都熟悉,能夠快速的判斷問(wèn)題可能的原因并進(jìn)行排查處理。
方案設(shè)計(jì)的時(shí)候考慮更加周全,由于有對(duì)全局業(yè)務(wù)的理解,能夠設(shè)計(jì)出更好的方案。
熟悉端到端
自學(xué)
重復(fù)代碼太多,是否可以引入設(shè)計(jì)模式?
系統(tǒng)性能一般,可否進(jìn)行優(yōu)化?
目前是單機(jī),如果做成雙機(jī)是否更好?
版本開(kāi)發(fā)質(zhì)量不高,是否引入高效的單元測(cè)試和集成測(cè)試方案?
目前的系統(tǒng)太龐大,是否可以通過(guò)重構(gòu)和解耦改為 3 個(gè)系統(tǒng)?
阿里中間件有一些系統(tǒng)感覺(jué)我們也可以用,是否可以引入?
解耦,將一個(gè)后臺(tái)拆分為 2 個(gè)后臺(tái),提升可擴(kuò)展性和穩(wěn)定性。
雙機(jī),將單機(jī)改為雙機(jī)系統(tǒng),提高可靠性。
優(yōu)化,將原來(lái)一個(gè)耗時(shí) 5 小時(shí)的接口優(yōu)化為耗時(shí) 5 分鐘。
Do exercise
學(xué)習(xí)了 JVM 的垃圾回收,但是線上比較少出現(xiàn) FGC 導(dǎo)致的卡頓問(wèn)題,就算出現(xiàn)了,恢復(fù)業(yè)務(wù)也是第一位的,不太可能線上出現(xiàn)問(wèn)題然后讓每個(gè)同學(xué)都去練一下手,那怎么去實(shí)踐這些 jvm 的知識(shí)和技能呢?
Netty 我也看了,也了解了 Reactor 的原理,但是我不可能參與 Netty 開(kāi)發(fā),怎么去讓自己真正掌握 Reactor 異步模式呢?
看了《高性能 MySQL》,但是線上的數(shù)據(jù)庫(kù)都是 DBA 管理的,測(cè)試環(huán)境的數(shù)據(jù)庫(kù)感覺(jué)又是隨便配置的,我怎么去驗(yàn)證這些技術(shù)呢?
框架封裝了 DAL 層,數(shù)據(jù)庫(kù)的訪問(wèn)我們都不需要操心,我們?cè)趺慈チ私夥謳?kù)分表實(shí)現(xiàn)?
Learning
trying
JVM 垃圾回收:可以自己寫一個(gè)簡(jiǎn)單的測(cè)試程序,分配內(nèi)存不釋放,然后調(diào)整各種 JVM 啟動(dòng)參數(shù),再運(yùn)行的過(guò)程中使用 jstack、jstat 等命令查看 JVM 的堆內(nèi)存分布和垃圾回收情況。這樣的程序?qū)懫饋?lái)很簡(jiǎn)單,簡(jiǎn)單一點(diǎn)的就幾行,復(fù)雜一點(diǎn)的也就幾十行。
Reactor 原理:自己真正去嘗試寫一個(gè) Reactor 模式的 Demo,不要以為這個(gè)很難,最簡(jiǎn)單的 Reactor 模式代碼量(包括注釋)不超過(guò) 200 行(可以參考 Doug Lee 的 PPT)。自己寫完后,再去看看 Netty 怎么做,一對(duì)比理解就更加深刻了。
MySQL:既然有線上的配置可以參考,那可以直接讓 DBA 將線上配置發(fā)給我們(注意去掉敏感信息),直接學(xué)習(xí);然后自己搭建一個(gè) MySQL 環(huán)境,用線上的配置啟動(dòng);要知道很多同學(xué)用了很多年 MySQL,但是連個(gè)簡(jiǎn)單的 MySQL 環(huán)境都搭不起來(lái)。
框架封裝了 DAL:可以自己用 JDBC 嘗試去寫一個(gè)分庫(kù)分表的簡(jiǎn)單實(shí)現(xiàn),然后與框架的實(shí)現(xiàn)進(jìn)行對(duì)比,看看差異在哪里。
用瀏覽器的工具查看 HTTP 緩存實(shí)現(xiàn),看看不同種類的網(wǎng)站,不同類型的資源,具體是如何控制緩存的;也可以自己用 Python 寫一個(gè)簡(jiǎn)單的 HTTP 服務(wù)器,模擬返回各種 HTTP Headers 來(lái)觀察瀏覽器的反應(yīng)。
Teaching
推薦閱讀:
永久白嫖,新發(fā)現(xiàn)的外賣漏洞,請(qǐng)低調(diào)使用
為什么不推薦使用BeanUtils屬性轉(zhuǎn)換工具
內(nèi)容包含Java基礎(chǔ)、JavaWeb、MySQL性能優(yōu)化、JVM、鎖、百萬(wàn)并發(fā)、消息隊(duì)列、高性能緩存、反射、Spring全家桶原理、微服務(wù)、Zookeeper、數(shù)據(jù)結(jié)構(gòu)、限流熔斷降級(jí)......等技術(shù)棧!
?戳閱讀原文領(lǐng)??! 朕已閱 

