[小菜一碟] 取得往上第 n 個階層的目錄路徑

有時候我們會有這樣的需求,我們需要取得相對於當前所在目錄的祖父兄弟目錄(暫且稱呼為叔公目錄)的絕對路徑,如果我們已經知道叔公目錄的絕對路徑永遠不變,當然就直接 Hard Code 取用就好,但是這種狀況是少之又少,大多數情況是整個家族目錄會因需要而搬家,在已知叔公目錄名稱的條件下,要得知叔公目錄的絕對路徑,我們可以這樣做,找到曾祖父目錄之後,把叔公目錄名稱合併在後面就可以了,而我們要怎麼用 C# 找到曾祖父目錄呢?

...繼續閱讀 »

[食譜好菜] 用 SonarQube 分析 C# 程式碼品質

之前將 SonarQube 裝在 CentOS 上,裝完後發現它無法跟我的幻想一樣地分析 C# Code,要分析 C# Code 還是得要在 Windows 的環境才行,因此我把 SonarQube 移到 Windows Server 上,資料庫就延用 MySQL,執行分析的步驟跟在 CentOS 環境上有一點不一樣,我們就來看看 SonarQube 在 Windows 環境怎麼分析 C# Code。

...繼續閱讀 »

[料理佳餚] 從 ng-iScroller 來探究 Directive 這個 AngularJS 接地氣的神器

過去我們收集了很多 JavaScript 或是 jQuery 很好用的第三方元件,而用了 AngularJS 之後,這些第三方元件就廢掉了? - 非也。

AngularJS 是用 JavaScript 寫成的框架,並沒有限制與其他用 JavaScript 預先寫好的程式碼做結合,只是我們必須要 follow AngularJS 框架本身的 rule 而已。

我們可以將這些很好用的第三方元件做成 Directive 繼續延用,我就以一個別人寫好的 iScroll Directive 來做為範例,說明一下怎樣把第三方元件做成 Directive。

...繼續閱讀 »

[食譜好菜] AngularJS 的神兵利器之一 - Directive

[食譜好菜] AngularJS 基本術語及生命週期裡面有介紹到 Directive 主要分成兩種類型:行為的修飾詞(Modifier)、可重用的元件(Component),目的是給我們產生有意義的宣告,簡單來講就是實現抽象化,Directive 的使用者不需要也不必了解項目的運作方式,只要關注最終的結果就行了,我們來看一下如何建立 Directive?以及它有哪些基本的屬性?

...繼續閱讀 »

[食譜好菜] AngularJS 基本術語及生命週期

這篇講的是 AngularJS 1.x,寫文章的當下 AngularJS 2.0 已經 RC5 了,已知 AngularJS 2.0 是不會向下相容 1.x 的。

那我為什麼還要寫 AngularJS 1.x 的文章呢? - 用來幫助我回憶的!

以前花時間閱讀跟學習的技術,隨著時間以及很少用到,記憶會慚慚淡化,趁現在還記得幾分趕快做個筆記,尤其是技術背後本身的概念及限制,這些都會影響到我們掌握一門技術的程度。

...繼續閱讀 »

[料理佳餚] FluentValidation + Autofac.Extras.DynamicProxy2 實現參數條件檢查的 AOP 攔截器

  • 1004
  • 0
  • C#
  • 2016-07-05

之前在[料理佳餚] 使用 Decorator Pattern 分離參數檢查與資料處理這篇文章有提到我想要用 AOP 的方式來把參數的條件檢查分離出來,當時還沒有什麼好的做法,但是在遇到 FluentValidation 之後有了新的想法,只要搭配 AutofacAutofac.Extras.DynamicProxy2 就可以實現參數條件檢查的 AOP 攔截器。

...繼續閱讀 »

[料理佳餚] 使用 Redis-Sentinel 打造 Redis 的 HA

Redis 到目前為止都還是以單執行緒的方式在執行,要多個 Redis 就要多設定幾個 instance,這樣如果 Redis crash 了怎麼辦?預設我們可以從 master 的設定檔去設定 slave 是誰,但是 slave 預設是 read-only,而且當 master crash 的時候,不手動做 master、slave 的身份互換,slave 是無法接手 master 的工作,這時候我們可以利用 Redis 內建的 Redis-Sentinel 的工具來解決 failover 的問題。

...繼續閱讀 »