Ryan

不務正業 全端 開發記事

MongoDB - 比較查詢運算子 Comparison Query Operators

Bson types 的比較順序 練習 我們將使用 MongoDB 官方提供的一個 restaurants 範例資料庫來進行練習。 為了讓大家有語法的提示可以練習,建議安裝 NoSQL Booster for MongoDB 這套工具 這套工具具有語法高亮、檢查的功能,至少可以讓自己慢慢習慣 MongoDB 的查詢語法 稍微讓大家看一下 restaurants 中的一個 documen......

MongoDB 簡易安裝指南

環境 Windows 10 企業版 (1709) 安裝步驟 MongoDB download center 選擇 Community Server 進行安裝 安裝方式就是一直下一步,就不特別截圖了 安裝完畢之後記得將 C:\Program Files\MongoDB\Server\[DB_VERSION]\bin 加入環境變數 開啟命令提示字元(建議使用最高管理者......

S.O.L.I.D 物件導向設計原則 - 相依反轉原則 Dependency Inversion Principle

High-level modules should not depend on low-level modules. Both should depend on abstractions. 高層模組不應該依賴低層模組,兩者皆應依賴於抽象。 Abstractions should not depend on details. Details should depend on abst......

使用 PowerShell 控制 IIS

以往在能夠碰到機器的情況底下(實體機器、虛擬機器…),我們通常都會選擇使用 IIS 的管理介面來幫助我們設定 IIS 的組態 由於最近在接觸 CI/CD,很多原本可以使用 UI 設定的組態都改用指令的方式來操作,讓我們在不透過任何人工的情況下,操作 IIS。 今天就用簡單的例子來介紹,我們怎樣使用 PowerShell 來幫助我們做到以下的工作。 取得目前所有的站台 取得所有應用程式集區 ......

產生假資料的利器 ObjectFiller.NET

緣起 在開發網站的時候,是不是常常會遇到後端有些功能還沒做完,但是要產生假資料顯示在畫面上。大部分的人會選擇自己簡單的建立幾筆資料,再不然就是寫個迴圈將資料後面串上索引,不過這些方法還是讓你的資料看起來沒有什麼真實的感覺,今天這篇文章要介紹這個套件 ObjectFiller.NET 讓你可以透過套件來產生更貼近真實資料的假資料來源,讓你不管是在畫面上還是做測試上,都能夠省去更多手動建立假資料......

S.O.L.I.D 物件導向設計原則 - ISP (Interface Segregation Principle)

解釋 The interface-segregation principle (ISP) states that no client should be forced to depend on methods it does not use. 意思就是說一個類別不應該被強迫實作一個它不需要的方法。 其實換句話說是限制你不要過度膨脹介面中定義的方法,盡量是能夠滿足使用的情境即可,別想要把全......

如何在 FluentValidation 的 Validator 中注入自訂的 Service

緣起 最近在工作上使用了 FluentValidation 套件幫助我做比較彈性化的模型驗證,不過在自訂模型驗證的時,需要借助其他已經定義好的 Service 來取得一些額外的資訊,剛好專案裡面使用到了 Autofac 作為 DI 的容器。 這篇文章會展示如何在 Validator 中注入其他 Service。 環境 Visual Studio 2017 ASP.NET MVC 5 專案 ......

S.O.L.I.D 物件導向設計原則 - LSP (Liskov Substitution Principle)

Subtypes must be substitutable for their base types. (出自 Robert C. Martin aka Uncle Bob) 翻譯:基底類別應該要能夠被他的衍生類別給替代而不影響原本的功能 在今天的這個主題裡面我將要用實際例子來說明何謂 LSP 原則,也就是 里氏替換原則 經典範例 矩形 v.s. 正方形 在數學中我們可以知道 正方形 ......

S.O.L.I.D 物件導向設計原則 - OCP (Open-Closed Principle)

對修改封閉,對擴充開放 接下來講到第二個物件導向的設計原則 OCP 或稱為 開閉原則,以往我們在幫系統加上 Log 的時候,會有檔案類型的Log、資料庫類型Log、甚至只是單純在Debug時呈現在Console的Log。 這些都是儲存 Log 的方式,可是我們要怎麼樣在程式裡面完成這件事情,以下請看第一個例子 第一個例子 123456789101112public class Logge......

S.O.L.I.D 物件導向設計原則 - SRP (Single Responsibility Principle)

我很不會說話,但是我很實在 前言 第一次寫到這個物件導向設計原則的主題,我想到的是上面那一句廣告的台詞,因為 S.O.L.I.D 原則本身光看字面你可能還無法了解他代表的意義,最好的方式應該是將這幾個原則實務的應用到專案上面,你就能夠感覺到 SOLID 原則 實在 的地方。 首先我們討論到單一職責原則,以下會使用比較貼近生活的例子來讓大家有一點感覺。 SRP (Single Respon......