剛結束了三天的【C#進階設計-#重構出高易用性與高擴充性API】
其中的一部分精華,就是上課的進行方式。
能寫出會動的程式真的只是剛入門的菜鳥等級,怎麼樣寫出好用、好懂、好改的 API,而且透過重構來達到剛好才是最好的設計,避免 over design,避免 code smell,才是進階的開發人員必須具備的技能。
三天讓大家練習超過 20 個 lab,還要讓每個人跟得上,在過程中把那堆 generic, delegate, lambda, 以及 code smells, 重構的技巧,工具生產力的優化,內化於無形,是我對這門培訓在設計上最自豪的一點。
※ 上完前兩天的課,大家對看到下面這樣的方法簽章,只會覺得這再自然不過了。
public static IEnumerable
this IEnumerable
IEnumerable
Func
Func
IEqualityComparer
Func
※ 下一梯次在八月,名額有限,卡位要快:https://dotblogs.com.tw/…/2…/02/18/csharp-advance-api-design
這週用了三天時間參與 Joey Chen 所開的 C#進階設計-《從重構學會高易用性、高彈性的 API 設計》課程。課程依舊保有令人腦洞大開、不斷燒腦、充滿羞辱、香焦🤣的風格,總是能得到許多當頭棒喝。
這三天的課是以測試->紅燈->寫 code -> 綠燈-> 重構 -> 綠燈->加需求-> 寫 code -> 綠燈 -> 重構 這樣的模式讓我們試著去寫出近似於 Linq 的程式,可以不斷的練習重構的技巧外,每一次寫 code 的過程中不斷的去思考該寫出什麼樣的程式來滿足需求?我該做什麼樣的重構讓 API 能夠更容易使用?
這是一門挺燒腦的課程,也要不斷動手寫 Code 並專注在課程中,一幌神就有可能跟不上進度。專心聽課真的比邊聽邊做筆記要有效得多。只要撐過去,肯定能得到可以立馬用在工作中的靈感。
這三天的課有幾個體悟
1. 要想設計出好的 API,需要掌握語言內建的資料結構以及其特性。在不同的應用場景、需求,使用正確的物件能讓程式簡單易讀,其效能會比總是用 List 來得好很多。
2. Linq 很好用,會用 Linq 並不算什麼,能夠搞懂 Linq 背後的實作方式更能夠讓自己有能力去依產品需求去客制出高彈性、易用的 API。沒有掌握這樣的能力,就只能在工作中寫出雙層迴圈或三層迴圈。
3. 以前以為延遲執行只是在執行用到時才會執行,它更是 IEnumerable、Enumerator 的靈魂,這也才懂為什麼 Linq 可以串一堆的 method 而它的效能卻能夠這麼的好。
#持續改善
今井正明在《改善—日本企業成功的關鍵》一書中提出的,Kaizen意味著改進,涉及每一個人、每一環節的連續不斷的改進。
持續改善應從自己開始先做起,也並非負面的看待自己,要求他人改善是不現實的,而是讓改善的精神融入生活哲學中,不斷的追求極致,讓自己可以做得更好進而影響週遭。
上課絕對是偷學、持續改善最快的方法!
重構出高易用性與高擴充性api 在 C#進階設計- 重構出高易用性與高彈性的API 示範影片 - YouTube 的推薦與評價
好的設計都是 重構 出來的, 重構 除了對工具的熟悉度,對壞味道的辨識,還有一個是對 API 易用性 與彈性的設計。這個範例先用最原始的方法滿足最原本的需求 ... ... <看更多>
重構出高易用性與高擴充性api 在 phodal/migration: 《系统重构与迁移指南》手把手教你 ... - GitHub 的推薦與評價
API 设计合理性评估; 模块分层架构; 架构合理度评估与对应的改进方案; 公共代码的拆分策略; 面向过程代码转面向对象 ... ... <看更多>
重構出高易用性與高擴充性api 在 #重構出高易用性與高擴充性api - Explore | Facebook 的推薦與評價
能寫出會動的程式真的只是剛入門的菜鳥等級,怎麼樣寫出好用、好懂、好改的API,而且透過重構來達到剛好才是最好的設計,避免over design,避免code smell,才是進階的 ... ... <看更多>