前言
Coding Style 其實是一個大題目,但因為學校普遍比較不注重這個,
因此很多人都是到職場才學或甚至沒學過,
它的重要性其實甚至比好的演算法還重要,
就好比今天在職場上大家互相合作 debug,
- coding style 好:看起來就像是一篇舒服的文章,人人都可以快速理解,甚至很願意幫你 debug
- coding style 爛:看起來就像是一篇雜亂無章的文章,人人都避之唯恐不及,不要拿那種恐怖的東西給我看好嗎?
而且,除了同事要理解,後續維護/交接的人,或甚至是「未來的你」,看到雜亂無章的 coding style,
「只要未來的你有機會恨過去的自己是在寫三X」,你就應該好好的培養 coding style 的習慣。
即使算法差,但未來的你學會了更多更好的算法,回頭來看過去曾經寫的東西,還是會覺得「舒服容易理解」,
基本上那就是成功了! 這就是好 coding style,無關乎算法好壞,但可能比好的算法還更重要
01 起手式 – 變數命名
命名本身要「具有意義」,這個是基本中的基本,
你應該不會想要拿到別人的 code 之後看到他的變數命名是 「a,b,c,d,e…」然後你還會想幫他 debug 吧?
我學習的 Coding style 為 Google 開源專案風格指南,感謝大大整理出的中文版
有興趣可以參考:https://tw-google-styleguide.readthedocs.io/en/latest/google-python-styleguide/python_style_rules.html
另外 Coding style 並非只有一套,學習自己喜歡的即可。
讓人痛苦的 Coding style
我只是想示範怎麼樣會讓人頭痛而已
def this_is_funcion1():
pass
def ThisIsFuncion2():
pass
def THIS_IS_FUNCTION_3():
pass
我不能說他有錯,但拿這種程式請別人幫忙 debug,你可能會先讓那個人瘋掉…
先學一些基本的就好
完整的表可以去官網查:https://tw-google-styleguide.readthedocs.io/en/latest/google-python-styleguide/python_style_rules.html
但我這個實用導向,然後慢慢學,慢慢優化,
所以我先學幾個基本的來用,
function name
我標題應該不是下得很好,反正是我要看的(喂
- 記憶點:只有 ClassName 比較特別。其他都是 lower_with_under 的格式。
module_name
package_name
ClassName
method_name
function_name
variable name
- 記憶點:只有 GLOBAL_VAR_NAME 比較特別。其他都是 lower_with_under 的格式。
GLOBAL_VAR_NAME
instance_var_name
function_parameter_name
local_var_name
小結
蛤? 你說這就沒了嗎?
欸不是,這種類似習慣的東西慢慢學,慢慢優化就好,沒有一天在那邊大爆學的啦!
相信我,你一天大爆學,大概明天就全忘光還不會實作,
習慣就是慢慢地去改就好XD