初級Java程式設計師如何進階
主要內容:
疑問的無限遞迴
遞迴的結束條件
疑問的無限遞迴
去年我剛入行時,用SSM寫了大概5個月的增刪改查,並且在實際工作中從未自己搭建過SSM環境。倒不是不會,畢竟網上已經有很多部落格直接貼出了配置,複製黏貼就行了。
那麼,我的煩惱是什麼?
我想,每一個熱愛進步的程式設計師都會有過這樣的體會:
自己好像什麼都懂了,但又似乎什麼都不懂。
就像發癢時怎麼都撓不到確切部位,讓人抓狂且無奈。你自己也知道,即使把這行配置背下來了,又能怎樣呢?為什麼它就起作用了?
你發出的這些疑問就像掉進了一個無限遞迴,遲遲沒有一個答案。
當前不懂的知識點,是由另一個你不瞭解的知識點實現的。。。無限遞迴,最終你覺得自己什麼都不懂
這個遞迴的結束條件是什麼呢?並不是說非要往下深挖,直到組合語言或者
電晶體
,而是挖到某一處時你能和當前已學知識聯絡起來即可。
就好比我現在要推導一個新的數學公式,當我得證的條件最終只差證明另一個公式,而這個公式已經是
公認定理
時,這個新的公式就算推導成功了。
很長一段時間,我深陷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影片推薦。。。我每次都會耐心地勸導說:把基礎先打紮實。
以我自己的體會,要想後面對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一些功能
這些都無法掌握,整天滿口高併發、輪詢、微服務。。。如果讓我來面試,我不會問這些高大上的問題,只會和你聊基礎,看你有沒有自己的見解。
架構師
遍地跑的浮躁時代,還是希望大家靜下心來,好好重視基礎吧。
學完本篇初級路線,如果感興趣也可以瞭解下中級路線:
Good luck!
上一篇:《全唐詩》(二十三)