best practices


[Azure DevOps]如何設定Pull Request的預設文字模板(template)

[Azure DevOps]如何設定Pull Request的預設文字模板(template).jpg
圖片來源:https://pixabay.com/en/despair-alone-being-alone-archetype-513528/

Pull Request是一個非常好的Code Review方式,也是當初Github讓git火紅起來的其中一個原因之一。

在建立Pull Request的時候,一般會有一段訊息可以輸入,這個訊息主要描述了這一次Pull Request的一個主要目的。

但是,當團隊合作開發的時候,很有可能A工程師會輸入一種格式的内容,而B工程師又是另外一種。或者有時候有些條件需要符合才應該發起Pull Request,但是工程師忘記了,造成Reviewer需要花時間最後才發現根本最基本的條件都沒達到。

有沒有什麽方式可以提醒工程師在Pull Request發起的訊息要打好,並且該檢查的東西都要檢查過了呢?

這一篇,來看看在Azure DevOps裡面,如何透過建立template(範本)達到這個需求。


Script改Windows防火墻設定的正確寫法 - 如何能同時在Windows不同語系之間都能執行

Script改Windows防火墻設定的正確寫法 - 如何能同時在Windows不同語系之間都能執行.jpg
圖片來源:https://pixabay.com/en/key-tag-security-label-symbol-2114047/

最近在製作上傳到Azure的VHD的時候就遇到,需要開一些特定的port。

作爲coder,懶是一種美德,因此當然想要透過使用powershell的方式把整個動作自動化。

Azure官方文件有些範例script可以參考,但是實際使用起來卻有個但書,就是只能英文版的OS才有作用(畢竟是外國人寫的script),其他語系就gg了。

因爲這個原因,所以去找了一些資料,才發現原來要支援多語系的Windows沒有那麽直覺,因此這邊記錄一下以供未來參考。


[SQL]為什麼連不到MSSQL資料庫 - 故障排除指南

image
圖片來源:https://pixabay.com/en/key-tag-security-label-symbol-2114047/

任何一個比較大一點的系統都會需要使用到SQL,而以.Net開發為主最長用的資料庫基本上都是MSSQL。

不過MSSQL不一定是我們裝的,因此常遇到的問題就是給的資訊不夠完整,或者裝的時候缺少一些步奏,導致花費很多時間在找出為什麼MSSQL連線不到。

這篇希望提供一個故障排除指南,方便未來如果又連不到的時候可以依照這個項目來排除問題。

關鍵字:troubleshooting guide for MSSQL Database connection problem.

[jquery]jquery ajax post能夠正確Model Bind到Asp .net Mvc網站 - 三種不同情境的建議做法

image
圖片來源:https://pixabay.com/en/key-tag-security-label-symbol-2114047/

Model Binding是Asp .net Mvc裡面用來處理表單送出(Form Post)資料自動轉成強型別的機制。

一般來說,如果用HtmlHelper產生的html內容,在Post back的時候Model Binding基本上不會遇到什麼問題。

不過為了網站responsive更好,很多時候會希望Form Post是透過ajax來做。

這個時候依據不同做法,就很容易造成form post到asp .net mvc的時候Model Binding不到。

這篇將會建議不同情境的時候應該如何寫正確的Jquery Form post寫法,避免Model Binding不到的問題。

這篇文章相關的範例程式碼在:https://github.com/alantsai-samples/aspnetmvc-jquery-post-model-binding-sample,有用tag標註每一個不同的情境。

[iis]每個Server都應該做的資安防護 - 使用IIS Crypto一鍵設定該啟用和停用的SChannel (如SSL 3.0)和Cipher Suite (如MD5)

image
圖片來源:https://pixabay.com/en/key-tag-security-label-symbol-2114047/

資安是最需要注意也最容易忽視掉的一環,尤其是當有些資安是和系統設定有關的時候。

作為開發人員,程式開發上面的資安注意事項是一定要知道的,但是Server上面就不一定,但是有時候會需要開發者來管理Server,這時候知道一些Server資安要注意的設定就變得非常重要。

在這一篇將會提到一個Server常被忽視的地方,就是設定IIS https裡面可以使用的SChannel和Cipher Suite。如何透過IIS Crypto設定最佳建議的設定。


[git]repo、branch和tag取名建議和注意事項 - 怎麼取名比較不會有問題

image
圖片來源:https://pixabay.com/en/key-tag-security-label-symbol-2114047/

最近在和同事協同開發的時候,發生了一件事情:

由於我們還沒啟用CD(自動部署)但是更新測試機器又不一定是同一個人,為了好管控目前程式碼和目前測試機器上面的版本,我們使用了一個標籤叫做TestServer來記錄。

不過當我同事更新的時候,他使用了testserver作為標籤,結果我這邊發生了雖然local只有一個tagtestserver,但是在remote上面其實有兩個標籤:TestServertestserver

為什麼會發生這個事情呢?如果不處理,未來在看的時候非常混亂,這讓我想起來一直想要寫的一篇文章,為git repo、tag和branch取名的時候應該要注意什麼比較不會有問題,因此兩篇一起寫,算是不好好naming會帶來什麼問題的use case範例。

搜索關鍵字:naming guidance for git repo, tag and branch.


該怎麼開專案的資料夾結構?每個專案應該要有的資料夾結構和檔案

該怎麼開專案的資料夾結構?
圖片來源:https://pixabay.com/en/key-tag-security-label-symbol-2114047/

每當需要建立一個新的專案的時候,最長遇到的問題就是,我的 資料夾應該怎麼開有哪些檔案是必須要存在

對於初學者來說,可能會覺得這有什麼好難的,我就visual studio開起來,然後建立一個專案就可以開始工作了,範例不都是這樣開的嗎?

這個為什麼很重要呢?假設有些必要的檔案沒有建立,除了在開發上會造成負擔(例如缺少git忽略檔案),在之後自己回來看的時候就要花很多時間去找。例如文件在哪裡?專案的變更記錄在哪裡?ci的自動化build script在哪裡?

如果每個專案的結構和內容相近的話,不僅讓找資料更加方便,也能提醒自己有些東西需要補(例如萬惡的文件XD)。

這篇將會介紹每個專案應該要有的資料夾結構和應該要有的檔案,讓未來在建立專案的時候不會忘記。

最後,在實際進入之前,和任何軟體開發一樣,這個有很重的個人喜好(personal preference)在裡面,所以可能和各位習慣不同,由我先拋磚引玉,如果有不同想法和更好建議也歡迎提出來。

關鍵字:專案結構、開專案資料夾、project strcture、特殊檔案