[小菜一碟] SQL Server 帶入任意的起迄日期,產生起迄日期之間的每個日期。

假定老闆提了一個需求,他想要看每個分店每天的銷售額,如果當天沒有銷售額的分店則銷售額顯示為 0,這個需求我們從訂單資料庫裡面彙總出來就可以呈現了,但是它有一個點在於萬一某個分店在某天沒有訂單,那麼該分店在訂單資料庫是沒有資料的,則該分店的該天銷售額必須標為 0,類似這樣的需求經常在我的程式設計生涯中出現。

...繼續閱讀 »

[小菜一碟] C# 中的奇門遁甲 - 隱含轉換(implicit)

  • 1290
  • 0
  • C#
  • 2019-04-28

在 C# 中常常因為需要配合參數而動態地產生相對應的 SQL 查詢條件字串,StringBuilder 應該是公認能兼顧字串串接效能的解法,不過加號(+)還真是好用啊!相較於使用 StringBuilder,用加號來串接字串簡單又直接,因此我利用隱含轉換(implicit)來搞一個用加號串接字串,但背後其實是 StringBuilder 的解法。

...繼續閱讀 »

[桌邊服務] DateTime 本身有沒有包含時區的資訊?

  • 6298
  • 0
  • C#
  • 2019-04-15

雖然我們大部分的服務對象是在台灣,不過我們會揭露一些國際上的資訊給使用者知曉,關於時區的問題,沒有被砸過腳還真的不會去仔細研究,尤其某些時區還會實施日光節約時間,所以千萬不要再用加減小時法來處理時區轉換的問題,有興趣的朋友可以參考我過去的文章,今天要來討論的是 DateTime 本身有沒有包含時區的資訊?

...繼續閱讀 »

[料理佳餚] C# 使用 Google APIs 來控制 GCE(Google Compute Engine)VM 的開啟跟關閉

  • 3232
  • 0
  • GCP
  • 2019-03-31

如果我們明確地知道我們的服務尖峰及離峰時間,那麼我們可以在離峰時間關閉一些機器來節省一點成本,GCE 沒有提供排程開關機的設定,所以我們只好自己寫,Google APIs 的文件告訴我們可以選擇純 HTTP 方式,或是使用 Google APIs Client Library 來控制 VM 的開關機,底下我就用 Google APIs Client Library for .NET 來撰寫控制 VM 開關機的程式。

...繼續閱讀 »

[桌邊服務] 將 ASP.NET MVC 的 View 依使用者角色來拆分可以減少邏輯分支

各位朋友應該都有碰過一種需求,就是有一個頁面,這個頁面服務的是廣大的 User,在這群廣大的 User 中有分好幾群,有的群要顯示這個不能顯示那個、有的群要顯示那個不能顯示這個、...,這是很典型的需求,你我的公司裡面應該都存在著這樣的頁面,而且裡面的 if...else... 錯綜複雜,我們冷靜想想,其實這種需求的設計是可以更簡單的。

...繼續閱讀 »

[小菜一碟] 將 2 的 n 次方加總結果再拆解回來

  • 1412
  • 0
  • C#
  • 2019-03-18

在狀態表達的設計手法中,有一種是以 2 的 n 次方來設計,例如:Status1 = 1、Status2 = 2、Status3 = 4、...依此類推,當我們得知某物件的 Status = 5,我們就知道它包含了 Status1 以及 Status3(因為 5 = 1 + 4),.NET Framework 中有一個列舉型別 System.Reflection.BindingFlags 就是這樣設計的,那重點來了,我們要怎麼知道任意一個正整數可以由哪些 2 的次方加總結果呢?

...繼續閱讀 »