張BCの隨筆
2024年8月12日 星期一
[.Net/Memory] managed heap裡的Class+<>c是什麼?
›
前言: 有一次在記憶體snapshot中發現某個ClassName+<>c的物件,如下圖紅框處: 第一次看到有點不知所以,查了一下,這是compiler建立用來執行lambda的class。 To be continued... 參考資料: https://blog...
2023年8月9日 星期三
[C#] 沒有取消訂閱(unsubscribe)事件(event)會導致memory leak?
›
Publisher物件可提供事件供其他subscriber物件做訂閱,且一般也會在適當的時機點取消訂閱, 但如果只訂閱但沒有取消訂閱,會讓程式memory leak嗎? 我將情境分為以下4種: 1. Publisher生命週期較subscriber長,subscriber有取消...
2023年4月16日 星期日
[UML] UML的關聯(association)、依賴(dependency)與差異
›
關聯(association)與依賴(dependency)是UML類別圖常用來描述類別間的關係。 關聯的表示如下,Customer關聯Order,用實線指到目標類別: 依賴的表示如下,MessageBroker依賴MessageFormat,虛線表示: 會覺得好像有點像? ...
2022年12月25日 星期日
[C#] 讓event handler method不因event多次觸發而重複執行
›
前言: 最近遇到一個情境,物件的某個event trigger會多次, 但訂閱的event handler method只需要處理該event trigger的第一次, 該怎麼做呢? 作法: 如下圖的Document類別,有一個Loaded事件,當呼叫Open方法時會觸發Loa...
2021年10月31日 星期日
[SQL Server] 如何使用執行計畫(execution plan)判斷statement效能
›
前言: 提到資料庫存取,大多會擔心撰寫的statement是否有效能問題, 雖然公司可能會有DBA來review開發人員的statement, 但開發人員仍需初步判斷所寫的statement執行的狀況。 以SQL Server來說,會使用SSMS(SQL Server Mana...
2021年5月31日 星期一
[Design Pattern] 狀態模式(State Pattern)
›
前陣子開發電子化表單相關的程式,剛好使用到狀態模式(State Pattern)。 需求是每張表單有其狀態,每個狀態有對應的處理動作, 因此直覺上可以使用狀態模式的概念來處理。 先上個類別圖: 這邊使用抽象類別StateBase,下方的類別就是實際的狀態, 以請假表單來說,會有初...
2021年1月19日 星期二
[Web] OAuth Authorization code flow筆記與取得google userinfo範例
›
Authorization Code是OAuth的其中一種授權方式, 可以讓client程式取得使用者(resource owner)外部的資源,需要使用者輸入帳密, 流程如下: ● 觸發驗證流程後,client程式將使用者的瀏覽器導向authorization server...
›
首頁
查看網路版