JCConf 2023

Your locale preferences have been saved. We like to think that we have excellent support for English in pretalx, but if you encounter issues or errors, please contact us!

帶你用模式語言的高效思路解析 Spring Framework 原始碼,並從中學習如何設計一個 IoC Container
2023-10-06 , 401

身為後端工程師,既然在未來的路上我們必須大量使用 Spring Framework 相處,為何不給自己一個機會好好地了解一下 Spring Framework 的內涵,來當它的知心朋友呢?

大家好,我是水球潘,我專精設計模式並喜愛分享軟體設計學。
這次我想要煮一道比較硬核的菜色送給大家:「帶你用模式語言的高效思路解析 Spring Framework 原始碼,並從中學習如何設計一個 Web Framework」

我會在這場演講中,讓你認識以下這幾個話題:
1. Java 的技術堆疊:Web Framework 的技術價值主張是什麼?
2. 不同種類的 Web Framework:Register-based vs. IoC-based
3. Recap:探究 Spring Autowiring Mechanism 中的各種 Annotation
4. AnnotationConfigApplicationContext:來注入一個 Bean 吧!
5. ClassPathBeanDefinitionScanner 認識這個幫你掃包的掃地僧
6. DefaultListableFactory -- IoC 容器的大主角:getBean 是怎麼運作的?
7. createBean 到底是怎麼運作的?如何選擇最適配的建構子?
8. BeanFactory 設計: 看看 Spring 是如何遵守介面隔離原則的。
9. 看看 Spring 是如何擴充 @Configuration 功能的 -- BeanDefinitionRegistryPostProcessor
10. Zoom out! IoC-Based Container 模式語言:照著這個模式語言的思路進行,你就能自幹出另一個有著特定性質的 IoC Container。

高效率的思路能帶著你解析複雜的大型系統,而這正是我學習軟體設計時最意外的收穫。
希望能藉這個機會分享給大家,我們不見不散!!


Link to Slide

https://drive.google.com/file/d/19cW_kI95nuMnCnMyKetd6y7PfFRl5OCd/view

Link to Reference

https://miro.com/app/board/uXjVMHi0vgY=/?share_link_id=374881352087

大家好,我是水球潘。

我主修軟體設計模式、模式語言、軟體架構學以及軟體工程(+領域驅動設計)。
目前正全職創業中,本身為台灣領域驅動設計社群的志工,並且我創辦了「水球軟體學院」社群(裡頭有 5600 多位軟體圈夥伴)。眼下的目的是希望能建立一個新型態的軟體社群,將人們凝聚在一塊,並從中一起解放雙手的力量!

我每週都會在「水球軟體學院」社群中分享軟體工程等方法論 ^^
平均每次都會有 100 多位觀眾參加,就這樣維持了一年多了。分享知識對我來說是一件樂趣,我喜歡花很多時間,將最複雜的知識,透過某種技巧,將它變得簡單,然後講給所有願意與我一起欣賞知識、學習知識和落地知識的夥伴們。

這幾年開始踴躍參加 Jcconf,畢竟我現在是一位無業遊民(i.e., 創業中),比較有時間能做菜給大家吃,歡迎大家與我交流,謝謝。