走出體制,並非逃離體制,而是解開體制的束縛,重新進入體制。

軟體廚房」正式成立公司了,主要的服務項目還是圍繞在軟體專案的諮詢規劃設計開發,與其在體制內來來去去的,不如跳脫體制,解開體制的束縛,重新進入體制,從供應商的角度來去思考,如何協助客戶把軟體開發的工作做得更好?

...繼續閱讀 »

[創意料理] 單純對資料表簡單的 CRUD 讓 Chef.DbAccess.SqlServer 來協助我們

Chef.DbAccess.SqlServer 這個套件是小弟本人開發的,在 ORM 工具盛行的現在,後端工程師能有一套像是 Entity Framework 的資料庫存取框架來協助開發工作,是件很幸福的事情,但是無奈因為環境的關係、政策的關係、仇恨的關係、...blah blah 的,無法盡如人意,在這種情況之下只好自立自強,於是這個套件就誕生了。

...繼續閱讀 »

[創意料理] 介紹一個不要臉的 jQuery 擴充函式 - jquery-model

這個不要臉的 jQuery 擴充函式 - jquery-model 是在下的拙作,原本是我個人用 jQuery 在開發前端程式時所使用的,同事也拿去用了之後受到好評,應該也可以推薦給大家,它不是一個什麼高大上的東西,只是讓我在將 UI 上的內容兜成 JSON 物件時可以少寫一些程式碼。

...繼續閱讀 »

[廚餘回收] 解決因參數嗅探(Parameter Sniffing)導致使用到錯誤執行計劃的方法之一 - 加入註解。

遇到參數嗅探(Parameter Sniffing)出問題的時候真的會讓人無力,我們為了避免 SQL Injection,所以參數化查詢變成了通則,而正是因為參數化查詢才會有參數嗅探,如果我們是使用 Adhoc 或 Prepared 的方式在下 SQL 語句的話,倒是有一個方法能夠避免因參數嗅探使用到錯誤執行計劃的問題,那就是加入註解

...繼續閱讀 »

[小菜一碟] 已知有一個固定值的集合,在 SQL Server 怎麼把它變成 Table?

這個標題聽起來像是廢話,我們有一個集合,怎麼把它變成 Table? 啊不就 INSERT INTO 就好了?我要介紹的不是只有 INSERT INTO 而已,我們在寫 SQL 的時候,偶爾會遇到一種場景,我們手上有一個集合,這個集合的值是固定的,比如說年份 2011 ~ 2020、月份 1 ~ 12、...等,這個集合我們會拿去跟現有的資料做 JOIN,進行一些統計運算,我們把這個集合變成 Table,在操作上就會比較方便一點,我就我所知的四種方法來跟大家分享。

...繼續閱讀 »

[小菜一碟] 利用 window.navigator.sendBeacon() 在使用者關閉網頁視窗時發送記錄

我們在追蹤客戶端行為時,多多少少會遇到一個場景,就是要在使用者把網頁視窗關閉時,將記錄送回伺服器端,做法上我們可能會想在網頁視窗觸發 unload 事件的時候,發送 AJAX Request 回伺服器端就好了,但是這個方法在一些瀏覽器上(比如:Firefox)不 Work,取而代之 Web APIs 提供了更好的 API - sendBeacon()

...繼續閱讀 »

[小菜一碟] 使用 Cloudflare 的 Transform Rules 功能協助我們輕鬆判定友好爬蟲(Bot、Crawler)

在跟爬蟲的戰爭之中,很容易打到一些友好的爬蟲,像是 Google、Bing、...等搜尋引擎,還有像是 Ahrefs 這種 SEO 的輔助工具,我們要在自己的應用程式當中去過濾出所有的友好爬蟲,是一件苦差事,不過如果我們有使用 Cloudflare 的話,Cloudflare 有自己維護友好爬蟲的清單,再搭配他們自家的 Transform Rules 服務,我們就可以很輕鬆地過濾出友好的爬蟲。

...繼續閱讀 »

[小菜一碟] Visual Studio 2019 16.11 版本的一個大亮點 - .NET Hot Reload

今年(2021 年)5 月的時候 .NET Blog 發佈了一篇文章 - Introducing the .NET Hot Reload experience for editing code at runtime,在介紹 Visual Studio 2019 16.11 的新功能 - .NET Hot Reload,當時 Visual Studio 2019 16.11 還在 Preview 1,最近終於正式更新了,我立即將 Visual Studio 2019 更新到 16.11 來體驗一下。

...繼續閱讀 »