有時候我們會有這樣的需求,我們需要取得相對於當前所在目錄的祖父兄弟目錄(暫且稱呼為叔公目錄)的絕對路徑,如果我們已經知道叔公目錄的絕對路徑永遠不變,當然就直接 Hard Code 取用就好,但是這種狀況是少之又少,大多數情況是整個家族目錄會因需要而搬家,在已知叔公目錄名稱的條件下,要得知叔公目錄的絕對路徑,我們可以這樣做,找到曾祖父目錄之後,把叔公目錄名稱合併在後面就可以了,而我們要怎麼用 C# 找到曾祖父目錄呢?
[食譜好菜] AngularJS 的 ngModel 雙向資料綁定及 $http 服務
之前提到的 ngBind、{{ }}、ngBindHtml、ngBindTemplate 資料綁定 是屬於單向資料綁定,也就是說在畫面上修改的值,不會回寫到 Model,當我們需要把使用者輸入的訊息回寫到 Model 時,可以使用 ngModel
這個雙向資料綁定的 Directive。
[食譜好菜] 用 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 攔截器
之前在[料理佳餚] 使用 Decorator Pattern 分離參數檢查與資料處理這篇文章有提到我想要用 AOP 的方式來把參數的條件檢查分離出來,當時還沒有什麼好的做法,但是在遇到 FluentValidation 之後有了新的想法,只要搭配 Autofac 及 Autofac.Extras.DynamicProxy2 就可以實現參數條件檢查的 AOP 攔截器。
[料理佳餚] C# ServiceStack.Redis 使用 Redis 的 Cache 及 Message Broker 服務
之前有介紹過[料理佳餚] C# StackExchange.Redis 使用 Redis Message Broker 服務,StackExchange.Redis 稍嫌美中不足,以目前來講 Failover 要自己控制,當然自己控制是沒有什麼問題的,不過既然有其他工具可以幫我們 handle 這一切,當然就讓工具來協助我們。
[料理佳餚] 使用 Redis-Sentinel 打造 Redis 的 HA
Redis 到目前為止都還是以單執行緒的方式在執行,要多個 Redis 就要多設定幾個 instance,這樣如果 Redis crash 了怎麼辦?預設我們可以從 master 的設定檔去設定 slave 是誰,但是 slave 預設是 read-only,而且當 master crash 的時候,不手動做 master、slave 的身份互換,slave 是無法接手 master 的工作,這時候我們可以利用 Redis 內建的 Redis-Sentinel 的工具來解決 failover 的問題。
[料理佳餚] 在 CentOS 7 安裝 Redis(方法二)
在 CentOS 上安裝 Redis 有第二個方法,也是官網上所寫的方法,我也比較推崇這種方式,整個過程雖然修修改改,不過我也藉著這樣繁瑣的步驟了解到 Linux 對於 Daemon Service 的一些基本概念,而且敲很多指令很潮 XD。