目前的話,已經把 Spring MVC 相關經常使用的註解好比
@GetMapping
、@PostMapping
、@PathVariable
寫完了。我也已經將項目開源出來了,地址:github.com/Snailclimb/… 。原創開源不易,以爲不錯的話,歡迎給良心做者 1 個 star 鼓勵一下!前端
今天是晴天,我像往常同樣坐在窗臺,看着電腦「發呆」。畢竟是週末,就不分享技術乾貨了。java
簡單和小夥伴們聊聊本身最近正在作,已經開始作的事情。git
咱們常常會對本身早期寫的代碼感受噁心,這是致使不少項目爛尾、很差維護很重要的一個緣由之一。程序員
寫做也是同樣,我也常常以爲本身早期寫的文章像一坨翔。形成這個現象的緣由很簡單!我以爲主要可能有兩方面緣由:github
因此,最近幾個月我一直抽空對 JavaGuide 上早期的一些文章進行大篇幅重構,好比 Java基礎、Java集合框架、 Zookeeper 、Redis等等。面試
畢竟,時間有限,本身也仍是把主要精力放在寫代碼上。因此,部分文章尚未開始重構,好比數據結構部分的內容。spring
就很是期待小夥伴們一塊兒貢獻出本身的力量啊!讓 Guide哥 能多點時間寫代碼,嘿嘿!編程
我在大學的時候,就使用過 Dubbo 這類 RPC 框架,對於 RPC 框架的原理也有一點的認識。json
因而乎!疫情那會工做也不是很忙,我就想着說本身要不要也寫一個 RPC 框架玩玩。設計模式
說作就作!前先後後花了 3 個月,我利用業餘時間手寫一個簡單的 RPC 框架(玩具),名字叫作 guide-rpc-framework。這個框架是基於 Netty+Kyro+Zookeeper 而且整合了 Spring 來作的。
講真!確實,花費了很多精力。雖然,這玩意的原理不難,可是,想寫好確實要花時間。
目前的話,這個項目已經有 0.7k 的 star。感謝小夥伴們的支持!
像這樣的開源項目,放到簡歷上絕對是加分項!
並且,我在本身去寫 RPC 框架的時候,加深了本身對於 RPC 框架原理的認識。具體落實到代碼實現的過程當中,遇到了不少問題,解決問題的過程當中也提升了本身的編程能力和解決問題的能力。總而言之,造輪子是一種特別可以提升本身系統編程能力的手段。
是的!我準備開始造下一個輪子了,一個簡易版的「Spring Boot」!名字我都起好了,叫作「jsoncat」。
名字沒有特別含義,只是由於這個框架目前定位是隻返回 json 類型數據給前端,因此就在名字中加上了 json。
其實,說是簡易版的 Spring Boot ,不過是簡單模仿 Spring Boot 提供的功能,本身手寫一個相似的輕量級 HTTP 框架而已。(功能、生態、穩定性等方面確定不能和 Spring Boot 對比啦!)
具體實現的話,先簡單聊聊,後面會單獨寫文章來分享。 我會使用 Netty 來寫一個簡易的 HTTP Server,主要用來處理 HTTP 請求。其餘模塊的話,我會在兼顧代碼可讀性的狀況下,儘可能減小第三方依賴。因此,整個框架會比較輕量。
另外,代碼也會盡可能寫直白點,不故意秀技。我也會將本身寫這個簡易的HTTP框架學到的東西分享出來。固然啦!你們想要看源碼的話,我也會將其開源。
寫這個東西只是本身我的的興趣愛好使然,主要也是爲了提升本身的編碼能力。推薦小夥伴們也要儘可能可以將本身的想法付諸於行動。
理論當然重要,可是脫離於實踐的理論,並不可靠。
相比於 CRUD ,本身造個輪子,確定是更有意思,也更能鍛鍊本身的編程能力和解決問題的能力。
目前的想法是,第1版至少是可以讓其正確處理 Get 請求 和 Post 請求。目前的話,我基本已經寫完了。相比於以前實現的 RPC 框架來講,這個整體來看,仍是稍微簡單一些。
不過,大部分時間仍是在思考怎麼讓代碼更健壯、更易讀、更容易維護!
說句題外話,要想讓代碼更易讀,除了要了解面向對象編程的思想以外,那必然少不了對設計模式的運用。
當大家看到這篇文章的時候,我已經出門和大學最好的朋友一塊兒出去嗨皮了。
半年多沒見,不知道朋友如今長胖了不?反正,我是長胖了。