自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

攤牌了!我要手寫一個“Spring Boot”

開發(fā) 前端
我們經(jīng)常會對自己早期寫的代碼感覺惡心,這是導(dǎo)致很多項目爛尾的很重要的一個原因之一。

[[344122]]

本文轉(zhuǎn)載自微信公眾號「JavaGuide」,作者Guide哥。轉(zhuǎn)載本文請聯(lián)系JavaGuide公眾號。 

 01 重構(gòu) JavaGuide

我們經(jīng)常會對自己早期寫的代碼感覺惡心,這是導(dǎo)致很多項目爛尾的很重要的一個原因之一。

寫作也是一樣,我也經(jīng)常覺得自己早期寫的文章像一坨翔。造成這個現(xiàn)象的原因很簡單!我覺得主要可能有兩方面原因:

  • 自己沉淀的知識更多,對于某個知識點的理解更加深刻。
  • 不同于其他類型文章,技術(shù)類文章本身就需要不斷完善,文章內(nèi)容才會更好。

所以,最近幾個月我一直抽空對 JavaGuide 上早期的一些文章進(jìn)行大篇幅重構(gòu),比如 Java 基礎(chǔ)、Java 集合框架、 Zookeeper 、Redis 等等。

 

畢竟,時間有限,自己也還是把主要精力放在寫代碼上。所以,部分文章還沒有開始重構(gòu),比如數(shù)據(jù)結(jié)構(gòu)部分的內(nèi)容。

就非常期待小伙伴們一起貢獻(xiàn)出自己的力量啊!讓 Guide哥 能多點時間寫代碼,嘿嘿!

 

02 寫了個簡單的 RPC 框架

我在大學(xué)的時候,就使用過 Dubbo 這類 RPC 框架,對于 RPC 框架的原理也有一點的認(rèn)識。

于是乎!疫情那會,工作也不是很忙,我就想著說自己要不要也寫一個 RPC 框架玩玩。

說做就做!前前后后花了 3 個月,我利用業(yè)余時間手寫一個簡單的 RPC 框架(玩具),名字叫做 guide-rpc-framework。這個框架是基于 Netty+Kyro+Zookeeper 并且整合了 Spring 來做的。

講真!確實,花費(fèi)了不少精力。雖然,這玩意的原理不難,但是,想寫好確實要花時間。

目前的話,這個項目已經(jīng)有 0.7k 的 star。感謝小伙伴們的支持!

 

像這樣的開源項目,放到簡歷上絕對是加分項!

而且,我在自己去寫 RPC 框架的時候,加深了自己對于 RPC 框架原理的認(rèn)識。具體落實到代碼實現(xiàn)的過程中,遇到了很多問題,解決問題的過程中也提高了自己的編程能力和解決問題的能力??偠灾?,造輪子是一種特別能夠提高自己系統(tǒng)編程能力的手段。

03 寫一個簡易版的“Spring Boot”是的!我準(zhǔn)備開始造下一個輪子了,一個簡易版的“Spring Boot”。名字我都起好了,叫做“jsoncat”。

 

名字沒有特別含義,只是因為這個框架目前定位是只返回 json 類型數(shù)據(jù)給前端,所以就在名字中加上了 json。

其實,說是簡易版的 Spring Boot ,不過是簡單模仿 Spring Boot 提供的功能,自己手寫一個類似的輕量級 HTTP 框架而已。(功能、生態(tài)、穩(wěn)定性等方面肯定不能和 Spring Boot 對比啦!)

具體實現(xiàn)的話,先簡單聊聊,后面會單獨(dú)寫文章來分享。我會使用 Netty 來寫一個簡易的 HTTP Server,主要用來處理 HTTP 請求。其他模塊的話,我會在兼顧代碼可讀性的情況下,盡量減少第三方依賴。所以,整個框架會比較輕量。

另外,代碼也會盡量寫直白點,不故意秀技。我也會將自己寫這個簡易的 HTTP 框架學(xué)到的東西分享出來。當(dāng)然啦!大家想要看源碼的話,我也會將其開源。

寫這個東西只是自己個人的興趣愛好使然,主要也是為了提高自己的編碼能力。推薦小伙伴們也要盡量能夠?qū)⒆约旱南敕ǜ吨T于行動。

理論固然重要,但是脫離于實踐的理論并不可靠。

相比于 CRUD ,自己造個輪子,肯定是更有意思,也更能鍛煉自己的編程能力和解決問題的能力。

目前的想法是,第 1 版至少是能夠讓其正確處理 Get 請求 和 Post 請求。目前的話,我基本已經(jīng)寫完了。相比于之前實現(xiàn)的 RPC 框架來說,這個總體來看,還是稍微簡單一些。

 

 

用自己寫的框架處理了一次Post請求

 

責(zé)任編輯:武曉燕 來源: JavaGuide
相關(guān)推薦

2021-09-26 07:37:33

前端技術(shù)編程

2013-08-14 10:23:22

創(chuàng)業(yè)個人創(chuàng)業(yè)互聯(lián)網(wǎng)創(chuàng)業(yè)

2020-11-04 07:56:19

工具Linux 翻譯

2024-11-08 14:11:09

2024-02-04 09:19:00

Nacos動態(tài)化線程池

2020-09-15 11:40:37

Spring Boot代碼Java

2012-04-17 09:55:29

云計算分布式

2021-09-13 08:41:52

職場互聯(lián)網(wǎng)自閉

2022-05-16 08:42:26

Pandasbug

2020-11-13 07:08:51

Spring Boot應(yīng)用Spring

2021-10-09 07:10:30

Github 開發(fā)資源庫

2021-02-21 09:25:41

開源技術(shù) 工具

2022-06-06 08:42:04

spring-boo開發(fā)接口防盜刷

2022-03-09 09:43:01

工具類線程項目

2021-08-31 15:19:16

美團(tuán)面試快排

2022-05-31 08:35:05

RocketMQACK客戶端

2018-08-15 10:51:01

JavaSpring MVC框架

2024-11-11 14:57:56

JWTSession微服務(wù)

2021-09-28 13:42:55

Chrome Devwebsocket網(wǎng)絡(luò)協(xié)議

2022-06-08 08:14:27

Dubbo數(shù)據(jù)包源代碼
點贊
收藏

51CTO技術(shù)棧公眾號