軟體開發的過程當中,針對傳遞進方法中的參數避免不了一定要做一些像是邊界值、限定值、特殊值…等一堆你想得到的檢查,如果我們把條件檢查跟資料處理放在同一個程式碼區塊,同一區塊的程式碼長度就會增長,自然就會降低閱讀的順暢度。
我也想過用 AOP 的方式來解決,但是沒有想出來一個比較好的設計去處理不同的參數個數、不同的參數型態,以及要檢查的邏輯,想來想去 Decorator Pattern 雖然會多出一些類別,但能做好「關注點分離」,這一點點的 effort 是可以接受的。
軟體開發的過程當中,針對傳遞進方法中的參數避免不了一定要做一些像是邊界值、限定值、特殊值…等一堆你想得到的檢查,如果我們把條件檢查跟資料處理放在同一個程式碼區塊,同一區塊的程式碼長度就會增長,自然就會降低閱讀的順暢度。
我也想過用 AOP 的方式來解決,但是沒有想出來一個比較好的設計去處理不同的參數個數、不同的參數型態,以及要檢查的邏輯,想來想去 Decorator Pattern 雖然會多出一些類別,但能做好「關注點分離」,這一點點的 effort 是可以接受的。
被問到「你能不能講一下什麼是 C# 中的泛型?」,這個時候我突然覺得泛型離我好遠、好遠…,明明平常用很多,常常見面啊!為什麼現在講不出來!? Orz…
原來我平常只懂得用,其實對於它的定義、限制不是很了解,稱得上是不學無術,今天被問到這個問題算是有一個機會可以讓我了解「泛型」這個好朋友,特此記錄,以示提醒。
「你如何預防 SQL Injection?」這個問題已經成為了一個顯學,現在我們寫程式如果沒有把解決 SQL Injection 的方式變成習慣,我們就絕對是個不及格的程式設計師,一個領域如果夠成熟,那這個領域會累積一定厚度的必學項目,像 SQL Injection 的問題就是累積來的,面試也常常會問。
「你怎麼避免 CSRF?」這個題目也是面試時的常客,通常會跟著 XSS 一起出現,也是一個很基本的網站安全問題,網路上的相關文章俯拾即是,我將其整理下來給自己參考。
「XSS 你怎麼防範?」這道題目絕對是面試時的常客,也是最基本的資安問題,.Net 早已提供非常方便的防範方式,網路上也有很多前輩們的文章在介紹這些防範方式,我整理起來提供給我自己參考用。
目前我常聽到估算需求複雜度的方法有 Dog Point Game、T-Shirt Size,還有一個叫 Planning Poker,曾經玩過幾次 Planning Poker 不過我總覺得費氏數列的那些數字不是很親切,所以我想做一點改變,讓它變得親切一點,就變成下面這樣,我叫它「Manday Card」。
自從微軟開源之後,自己也意識到微軟的改變,進而去了解在開源社群有哪些替代性的工具,RabbitMQ 是我拿來準備成為 Microsoft Message Queue 的另一個替代方案,這邊記錄一下整個安裝的過程。
我們偶爾需要使用 ASP.NET MVC 5 的 Action 回傳一個 FilePathResult,今天一如往常地我回傳一個 FilePathResult,contentType 是 video/mp4,可是在 Google Chrome 卻無法跳轉,變這樣…
前些日子我們有一個需求,需要將一個 Web Api 開放給另一個也是在 intranet 但是不同 domain 的網頁呼叫,在拜完 Google 大神後寫了一個跨域呼叫的 Sample,但是過程當中卻遇到了一些問題…
之前有介紹過[料理佳餚] C# StackExchange.Redis 使用 Redis Message Broker 服務,StackExchange.Redis 稍嫌美中不足,以目前來講 Failover 要自己控制,當然自己控制是沒有什麼問題的,不過既然有其他工具可以幫我們 handle 這一切,當然就讓工具來協助我們。