Dependency Injection,不是控制,而是放手
森林的深處...LSP實作IOCLanguage
森林的深處,有一間小木屋。每當霧氣升起,樹葉發出細碎的聲響,動物們會緩緩走進這裡
一隻老貓躺在椅上,望著壁爐裡跳動的火光,輕輕說:「我們啊,無法事事都靠自己。」
這裡的每一份溫暖,都不是自己製造的,而是來自彼此的信任與協作,柴火是兔子帶來的,窗簾是松鼠縫的,茶是隔壁小鹿泡的
就如同我們不在類別中自行建構一切,也不強求自己了解每個細節,我們只需要設計出一個能被好好照顧的服務,然後放手交給外界,注入我們所需的一切
🪵 依賴功能性、而非實體
小時候為了玩遊戲、上網找攻略,寬頻連不上網路時,打中華電信打到哭
直到 ISP 的人被我煩到受不了終於親自出馬,他換了個小烏龜、在電腦上喬一喬設定就好了,你再次連上了網路,像是再次擁有了全世界
而這招就是所謂的 Dependency Injection,我不去了解網路的細節,不懂自己實作與測試,只靠著 哀求注入法 將外部服務注入進來解決我那空虛的童年
這裡與工作人員之間的互動,是依賴「抽象(角色)」,而不是「具體(人名)」
我並不在乎中華電信派來的人是誰,我只關心是否有實作 II ...
Asynchronous - 第一章:雲端中的未竟之事
震動響起那一刻...await 的意義Task 實驗洗內褲的故事Throughput
咖啡廳裡,播放著熟悉的爵士樂,氣味是熱牛奶與咖啡豆交融後的溫暖。呼叫器還沒響,但我確定店員剛剛有聽見我點了那杯厚拿鐵
我不確定她現在是不是正在打奶泡,或是還在處理上一張訂單;但我不需起身確認,我選擇坐著,等待震動響起地那一刻
🎵 段落一:傳訊以後的沉默
這是一段將備份資料上傳到 S3 的程式碼
12345678910111213private async Task UpdateS3DataAsync(string s3RecordData, string s3Path){ using var stream = new MemoryStream(Encoding.UTF8.GetBytes(s3RecordData)); var request = new PutObjectRequest { BucketName = this._bucketName, InputStream = stream, Key = s3Path }; var re ...


