近期在 GIX4 專案進行效能優化工作,為了沉澱經驗並與團隊分享,決定將相關技術要點整理成系列文章。這些技巧雖不複雜,卻是在面向領域模型的應用程式中反覆驗證、極具實戰價值的核心模式。
回顧過往專案經驗:上一個 Web 系統同樣採用豐富領域模型,非核心場景使用 LINQ to SQL 實現資料存取,核心高效能場景則改用手寫 SQL。無論採用何種資料存取技術,優化核心手法始終一致。此次在 GIX4 中再次應用同樣策略,證明了其普適性。
Aggregate Model SQL
Why? Senarios.
Shortcoming of lazy load
SQL Design
How to integrate it into our system.
SQL Columns Generate
Load TableInfo
Static SQL format definition
Data Read Design
Algorithm
IGTable
Factory Method
naming convention
How to write codes in these methods
Develop progress
This design is used to refactor.
ForeAsyncLoader
Parallel Server for CSLA
ThreadSafe field
ThreadHelper.AsyncPrincipalWrapper()
Class design
Two ways for creating loading delegate for loader.(Data Load Region)
Summary
Questions remain
Paging?
Refactoring...
系列將分兩大主線推進:前半部聚焦聚合 SQL 的設計與整合,後半部深入預載入機制與 CSLA 服務端多線程改造。預計分多篇發布,歡迎持續關注與交流。