注意事項 - louderzone/neruko-project GitHub Wiki

為確保各位志願者可以成功合作,有以下幾項需要注意:

密碼/密鑰管理

絕對絕對,不要將密碼push到git

基本上,密碼只要push過上來,就完蛋了。如果你不小心做了,請馬上更改密碼。

問:為什麼不要將密碼直接加在源碼上面?很方便惹。

首先,這個專案是徹底開源的,世界上任何人都能看見。你push上來,就先感謝你的密碼了。

問:那我push了之後,刪了不就好嗎?

git的每個commit都記錄著你做過了什麼,就算你發一個新的commit刪掉密碼,任何人都可以追溯歷史,看到你的密碼。

問:那Force push呢?不是連歷史也可以改寫嗎?

首先,你不知道你push了之後,到底有多少人pull過,就算你Force push,也可能已有部份人取得了你的密碼。

問:那我肯肯定在我push之後沒有人pull過,應該安全了吧?

表面上是這樣的。不過git的設計理念就是盡量不丟失源碼,就算你Force push了,她背後還是有某種程度到歷史保留,雖然要取得就比較難了,但不是不可能。

最後告誡一下

資安的世界,不存在僥倖。
問自己:「這安全嗎?」,如果答案是「應該吧」,那肯定是不安全的。

命名慣例

本程式以微軟ASP.NET Core開發為主,微軟有為自己的程式語言設計一套嚴格的編程慣例,為免各位開發者出現主觀的爭論,以編碼慣例做主方為良策。

持續整合軟件

image

問:這是什麼?

開發最常遇到的問題之一:我的電腦可以跑,為什麼到別人的電腦就跑不動了???

持續整合軟件,就是在每次開發者push後,即時產生一個(或數個)全新的預設環境,確保每位開發者的編碼都能在該環境下成功運行。

本專案將會使用Azure Pipeline進行持續整合,ねるこ的健康狀態可以見此

編碼質素

建議:安裝Sonarlint

編碼質素包含運行效率、Bugs、資安等,還有編碼安排這種主觀的範疇,所以有頭腦的工程師們設立了社團,討論程式怎樣安排才不會覺得太亂。除了視覺上的影響,當中還包括各種常見的資安、編碼錯誤等分析,避免一些常犯錯誤。

image

本專案會使用SonarCloud (SonarQube雲端版)來進行分析,建議安裝的SonarLint工具包含了大部份Sonar分析工具的規則,可以在你push以前就提示你錯誤,免得浪費時間。不過SonarLint也不是萬能的,例如SonarQube的分析器可以發現多個檔案之間的重複代碼,但SonarLint基本上只能在單個檔案中搜尋。

所以,如果如果你不滿意工具的條件,請不要找我,找他們。當然,程式的掃描的能始終是有限的,如果你是為了解決某種問題而觸發規則的話,可以交給我們評估。