[小菜一碟] 預熱 ASP.NET MVC 的 View

ASP.NET MVC 的 View 預設是 Load on Demand(按需加載),也就是說 View 第一次要 Render 的時候才會去載入跟編譯,這個就會造成一個現象,即使 Web 應用程式已經完成啟動,在瀏覽頁面的時候也是會感覺到一點延遲,尤其 Web 應用程式部署在 Azure App Service 上更為明顯,既然這樣,那我們就在 Web 應用程式啟動時候,把所有 View 載入跟編譯,然後 Render 一次就行了,我們來看看怎麼做?

...繼續閱讀 »

[小菜一碟] 談談物件導向設計原則中 DIP(依賴反轉原則)中的 Inversion(反轉)

上一篇文章提到依賴,依賴也無所不在,而 DIP 要我們將依賴做「反轉」,是要反轉什麼?反過來依賴嗎? 當然不是,而是解除直接依賴的關係轉而去依賴於抽象介面,使得位於較低層次的類別依賴關係的方向反了過來,大致上看起來就會像這樣。

...繼續閱讀 »

[小菜一碟] 談談物件導向設計原則中 DIP(依賴反轉原則)中的 Dependency(依賴)

DIP - Dependency Inversion Principle(依賴反轉原則)說:

  1. 高層次的模組不應該依賴於低層次的模組,兩者都應該依賴於抽象介面。
  2. 抽象介面不應該依賴於具體實現。而具體實現則應該依賴於抽象介面。

如果是初次接觸到這段說明的朋友可能會有一個感覺,就是裡面每個字都看得懂,但是它在講什麼?要了解 DIP 要先清楚它這邊提到的依賴是什麼?我就以我個人的理解來分享我的心得。

...繼續閱讀 »

[創意料理] 學會物件導向程式設計從「處理需求變化」開始

憶起第一次執行自己寫的程式的感動,到現在都還記得,當時用的語言是 VB,在 IDE 上開了一個 Form 拉了一個 Button,按下去之後跳出 MsgBox 顯示 "Hello World",內心不斷地給自己鼓掌「哇!我也會寫程式了。」,至今有沒有曾經後悔過走這條路已經忘記了,但是程式設計「賜我吃、賜我穿、賜我借錢可以還。」是個事實,講這些跟這篇文章的主題有什麼關係?

...繼續閱讀 »

[創意料理] Xamarin.Forms(iOS)一個 App 提交送審被 Apple 退件拒絕的經驗分享

開發 iOS 的 App 想上架到 App Store 送審被拒絕個幾次可說是稀鬆平常的,即使我們把 App Store Review Guidelines 讀得滾瓜爛熟,還是有被拒絕的可能,而且被拒絕的理由百百種,有跟 Apple 審核團隊交手過的朋友應該就有 fu,我就我這次 App 送審被 Apple 退件拒絕的經驗做個記錄。

...繼續閱讀 »

[食譜好菜] 替 Selenium WebDriver 加上 Proxy 的設定來加快測試的速度

我們使用 Selenium WebDriver 在做 Web Testing 的時候,測試對象往往已經是接近 Production 的狀態,多少會使用一些外部資源,像是 cdnjs.cloudflare.com、ajax.googleapis.com 的 CDN 服務,萬一網路不給力,整個測試行程 run 下來會多很多時間,這時候我想到可以架設 Proxy Server 來專門服務 Selenium,藉由 Proxy Server 降低存取外部資源的延遲時間,如果我們公司內部已經有架好的 Proxy Server 當然就不需要我們自己動手了。

...繼續閱讀 »