# 程式命名規則 ## 變數命名規則 [參考](https://docs.microsoft.com/zh-tw/dotnet/csharp/fundamentals/coding-style/coding-conventions) - class name     - Pascal 大小寫     - struct name     - Pascal 大小寫 - interface name     - Pascal 大小寫 - public 類型的成員(例如欄位、屬性、事件、方法和區域函數)     - C# Pascal 大小寫     - PHP Camel 大小寫 - private 欄位     - C# Camel 大小寫 ex: _xxx     - PHP Camel 大小寫 - protected 欄位     - C# Pascal 大小寫     - PHP Camel 大小寫 - const - C# Pascal 大小寫 - PHP UpperCamelCase - private 或 internal 欄位時,使用 camel 大小寫 ( "_camelcasing" ) ,並在前面加上前置 _ 詞 - 使用 或 的欄位時,請使用 s_ 前置詞和 執行緒靜態使用 t_ 。 privateinternal static   - PHP Camel 大小寫 - method parameter name - C# 方法參數時,請使用 Camel 大小寫     ```C# public T SomeMethod<T>(int someNumber, bool isValid) { } ``` ## 物件組成 1. 程式資料夾若是重複就命名複數,但資料夾物件沒有繼承該物件就不用特別加上該資料夾贅詞,除控制器 `Controllers` 跟模組層 `Models`、服務層 `Services`、知識層 `Repositories`、政策層 `Policies`。 ex: Requests/xxx.php 沒有主要 `Request 父物件`就不用去寫 XXXRequest.php 這樣。 ## 網頁路由守則 1. API 就走 restful api。 2. SSR 顯示路由畫面若是 GET 有在表單畫面都走名詞組成,例如 `/tourist-spots` or `/backstage/news/addition`,若有帶參數的話,理論上前一個單字會是複數,例如 `backstage/pages/(:num)`。 3. 另外在控制器要使用 show ... form,若是 POST 功能沒畫面則用名詞/動名詞。 4. 若是 SSR 有畫面方法控制器名稱取動名詞。 5. 網址參數 ?productName=123 走小駝峰。 6. POST form data 走小駝峰或是 snake case,例如 `scheme/shopping/addShoppingCart`。 7. 注意縮寫單字,`ec`、`line` 這類的單字,若走大小駝峰**理論上不應該是** `Ec`、`Line`。