您當前的位置:首頁 > 曲藝

初級Java程式設計師如何進階

作者:由 bravo1988 發表于 曲藝時間:2019-06-11

主要內容:

疑問的無限遞迴

遞迴的結束條件

疑問的無限遞迴

去年我剛入行時,用SSM寫了大概5個月的增刪改查,並且在實際工作中從未自己搭建過SSM環境。倒不是不會,畢竟網上已經有很多部落格直接貼出了配置,複製黏貼就行了。

那麼,我的煩惱是什麼?

我想,每一個熱愛進步的程式設計師都會有過這樣的體會:

自己好像什麼都懂了,但又似乎什麼都不懂。

就像發癢時怎麼都撓不到確切部位,讓人抓狂且無奈。你自己也知道,即使把這行配置背下來了,又能怎樣呢?為什麼它就起作用了?

你發出的這些疑問就像掉進了一個無限遞迴,遲遲沒有一個答案。

初級Java程式設計師如何進階

當前不懂的知識點,是由另一個你不瞭解的知識點實現的。。。無限遞迴,最終你覺得自己什麼都不懂

這個遞迴的結束條件是什麼呢?並不是說非要往下深挖,直到組合語言或者

電晶體

,而是挖到某一處時你能和當前已學知識聯絡起來即可。

就好比我現在要推導一個新的數學公式,當我得證的條件最終只差證明另一個公式,而這個公式已經是

公認定理

時,這個新的公式就算推導成功了。

很長一段時間,我深陷SSM的配置地獄:

為什麼要配這個?

為什麼要配那個?

為什麼我沒寫xx卻能xxx?

這個註解什麼意思,怎麼起作用的?

有些人可能覺得:管這麼多幹嘛,用就好了啊。

這種人,一般做不到舉一反三,只能有一學一。即使能熟練使用,等他遇到SpringBoot時,又會把它當做新的框架來學。而在我看來:

SpringBoot = Spring註解 + 自動配置

SpringBoot就是一個花架子,如果你已經熟練掌握Spring,SpringBoot上手是非常容易的。

遞迴的結束條件

重新回到問題上來。

關於SSM配置以及原理,以上種種疑問遞迴的結束條件是什麼?

其實歸根到底,我們之所以學不明白SSM,覺得隔靴搔癢,個人認為是因為

“配置式開發”和我們之前“編碼式開發”差別太大了。

不論是xml還是註解,和我們平時寫的業務程式碼相去甚遠。作為一個開發人員,當你看到一個切實的功能被實現了,而自己卻完全看不到

for迴圈

和if判斷的身影,心裡是不踏實的。對於一個“手藝人”,

唯一能讓我們感到踏實的,是if else for這樣的編碼,而不是@Aspect、@Controller這樣的配置!

我很幸運,去年來到杭州後,接手了一個

金融借貸

專案。那個專案雖然僅僅用SSM,但是程式碼質量還是很高的,各種封裝和抽象,與之相比我之前寫的專案程式碼都顯得十分“扁平”。

環境真的很重要,如果我還待在原先的公司做SSM增刪改查,還真的覺得自己挺厲害。。。典型的

井底之蛙

正是杭州這段經歷,驅使著我硬著頭皮回爐再造,重新去看JavaSE和JavaWeb。我最大的感觸就是,其實當前很多覺得難的知識,都已經在基礎講過了。如果真的掌握了,SSM是非常容易理解的。

比如:

註解(有多少人完全不知道它怎麼工作的?)

反射(很多人會用,但是理解不是很深刻)

動態代理(大部分人乾脆是懵逼的)

JDBC(估計已經忘光了)

Servlet/Listener/Filter更不用說,稀裡糊塗

就這樣,還有很多人和我說,自己基礎已經很好了,問我有沒有好的SpringBoot影片推薦。。。我每次都會耐心地勸導說:把基礎先打紮實。

初級Java程式設計師如何進階

以我自己的體會,要想後面對Spring/SpringBoot有較深的理解和掌握,必須把專欄下面幾篇吃透:

物件與this

淺談反射機制

註解(上)

註解(下)

淺談JDK動態代理(上)

Java 動態代理作用是什麼?

淺談JDK動態代理(下)

泛型概述(上):泛化與特定

JDBC(上)

JDBC(中)

自定義DataSource

JDBC(下)

淺談ThreadLocal

Listener(傾聽者)

ContextLoaderListener解析

Spring AOP的實現原理 ?

Filter實現全站編碼

servlet的本質是什麼,它是如何工作的?

Servlet(下)

這兩個月,是專欄更新的巔峰期,基本上每個月寫5、6篇,我不知道有沒有全部看完的朋友。如果一篇不差全部看完、消化,並且自己動手試過,那麼恭喜你,這兩個月的進步等於我過去一年了。。。

其他專欄,我不知道是出於什麼目的,可能是公眾號引流,而我寫部落格目的很純粹,就是覺得自己當時被欺負了,現在懂了於是拿出來,讓後面的人別再被欺負了。

有時就是如此,前人掙扎彷徨所付出的努力得到的成果,後人只需墊墊腳就能收入囊中。

最後,要說一下我自己對初級程式設計師的定義:

理解面向物件

瞭解抽象類和介面的使用場景

熟練掌握反射、註解、動態代理

會設計泛型類

熟練掌握IO、集合、常用API(String等)

熟練Servlet、Listener、Filter、Cookie、Session、AJAX、JSON

理解部分常用設計模式

熟練使用SSM,大致瞭解Spring執行原理,能基於Spring提供的擴充套件介面DIY一些功能

這些都無法掌握,整天滿口高併發、輪詢、微服務。。。如果讓我來面試,我不會問這些高大上的問題,只會和你聊基礎,看你有沒有自己的見解。

架構師

遍地跑的浮躁時代,還是希望大家靜下心來,好好重視基礎吧。

初級Java程式設計師如何進階

學完本篇初級路線,如果感興趣也可以瞭解下中級路線:

Good luck!

標簽: SSM  遞迴  SpringBoot  Spring  註解