###### tags: `封存` # NinjaCode # 講解程式碼風格 --- #### 何謂CodingStyle? ---- ##### 統一的規則 - 命名風格 - 函式/變數 - 私有方法/變數 - 常數 - 排版 - 是否開啟編輯器內建的排版 - Javascript - 是否要分號 - 嚴謹模式('use strict') --- #### 我們為何需要CodingStyle? - 可維護性 - 易讀性 ---- #### 參考: - PSR CodingStyle - Clean Code #### 借鏡: - NinjaCode --- # Ninja Code ---- ``` celsius = int(input("Enter Celcius")) fah = celsius*(9/5)+32 print("Farenheit:",fah) ``` ---- ``` c = int(input("Enter Celcius")) f = c*(9/5)+32 print("Farenheit:",f) ``` ---- ``` f = int(input("Enter Celcius"))*(9/5)+32 print("Farenheit:",f) ``` ---- ``` print("Farenheit:",int(input("Enter Celcius"))*(9/5)+32) ``` --- ### NinjaCode: 更短總是更好,將想表達的意思"藏起來" ---- #### 單個字母的取名方式 - a,b,c,d... ---- #### 團隊CodingStyle不允許的處理方式: 使用縮寫 - list ->lst - data -> dta - date -> dte - usercode -> uscode ---- #### 試著用抽象的取名方式 - data - value - obj - elem - item - str - num 不夠用就在後面加個編號!! ---- #### 用容易搞混的單字當變數名稱 - data&date --- #### 使用同義詞 - displayA(): 將結果顯示在螢幕上 - showB(): 將結果顯示在螢幕上 - renderC(): 將結果顯示在螢幕上 ---- #### 同個詞賦予不同的功能 - printA(): 顯示在螢幕 - printB(): 使用列表機列印出來 - printC(): 顯示在新的視窗上!! --- #### 重複利用同個變數 ``` str = "顯示這段文字在螢幕上"; ... str = "顯示這段文字在新的視窗"; ... ``` --- #### 多用底線,即使那沒有意義! ``` var _name = "Peter"; var __name = "John"; var value = "Firefighter"; ... ``` --- #### 發揮你的想像力!! ``` MegaPowerRender() var NiceUseList ``` ---- #### 甚至在把它簡寫!! ``` MGPRender() var NUL ``` --- #### 重疊外部變數 ``` var user = "something"; function LoginIn(){ var user = "anotherThing"; ... ... <-- 當有人想在這裡用user的時候... } ``` --- #### 副作用(Side-effects)無所不在! ``` isLoginIn() isExist() checkPermission() ``` ##### 回傳想不到的結果! --- #### 強大的函式! ``` function validateEmail(email){ ... } ``` - 檢查信箱格式錯誤 - 顯示錯誤訊息 - 要求重新輸入 - 註冊功能 - 導向網頁 --- ### 遵循部分,你的程式碼會變得充滿驚奇。 --- ## 遵循多數,你的程式碼會真正成為你的程式碼,沒有人會想改變它。 --- # 遵循全部 # 你的程式碼將成為年輕開發者尋求啟發的寶貴案例。
{"metaMigratedAt":"2023-06-15T02:21:40.819Z","metaMigratedFrom":"Content","title":"NinjaCode","breaks":true,"contributors":"[{\"id\":\"01dbc9ce-76fe-490f-951f-b641bcbdf374\",\"add\":1976,\"del\":45}]"}
    319 views