Re: [問卦] 代問:如何寫出讓人看不懂的Python程式碼?
你/你朋友需要的是「Ninja Code」
這裡有參考
https://javascript.info/ninja-code
雖然是JavaScript
但有句話說得好
語言只是工具,重點是怎麼解決問題(或是製造問題)
有簡中可以選,英文不好可以加減看
裏面引用了道德經
融合道家思想
讓你寫的程式碼沒人可以追隨
「Many try to follow ninja path, few succeed.」
不過我看下來可以整理出幾個重點
——————
1. 越簡短越好
盡可能使用大量的one-line comprehension
return "win" if dealer.score < player.score else "lose"
其中判別式的部分也可以自由地加入各種不同邏輯
同時將變數名稱拉長,可以讓該句可讀性變差,讚的
——————
2. 使用縮寫
dealer -> dr
player -> pr
score -> s
不過這方法用在one-line comprehension未必可以造成最佳效果
因為會讓語句變短
更好理解
return "win" if dr.s < pr.s else "lose"
這狀況應該是用在重複出現時盡可能使用
trace code時會因為要轉換這些變數名稱而迷失方向
——————
3. 抽象化
這裏不是指把類別抽象化
是把變數名稱抽象畫
[print(team, score) for team, score in score_board.items()]
何不把他變成
[print(obj, val) for obj, val in map_.items()]
——————
4. 注意力測試!
data 和 date 是不是很像呢
用吧!
——————
5. 同義詞
display_message 跟 show_message
是不是字面上一樣意思呢?
給他們不同功能吧!
——————
6. 重複使用變數名稱
並不是指 global / local variable 混用
但如果跑得過也沒關係
是指
def f(elem):
# 20 lines working with elem
elem = do_something(elem)
# 20 more lines working with elem
一樣容易迷失
——————
7. 為了好玩加底線
後綴底線主要為了避免跟保留字衝突
list_, dict_, ...
前綴則是社群共識
用來做為private
但你可以
_player
__dealer
讓人誤會有什麼特殊作用,其實沒有
——————
8. 展現你的愛
加一些詞彙讓你的物件看起來更厲害
mega_func
super_instance
magic_number
——————
裡面還有一些我沒提到你可以再研究看看
之前被臉書炒的 The Techlead
也有教你怎麼增加自己在公司的重要性
就是寫難以trace 的code
一時找不到可以請版友協助貼連結
下台一鞠躬,祝順心
-----
Sent from JPTT on my iPhone
--
廢文局 Bureau of Nonsense
服務項目:金曲點播戰南北戰學校戰男女不知所云耳包耍基歌曲導唱帶風向反串名著導讀做白日夢生日討拍誇大不實卡通懷舊消夜文犀利嘴砲吊書櫥故意錯字討論串續命買曝光度 局長:chshh1515 副局長:a234john168 人資主任:dweabybnye 高級幹員:tnfsh5566 特聘僱問:balahaha 打掃阿姨:heygoyours 希望之星總召:lovechen239
*~~~誠摯為您服務~~~*
--
變數都用il11llil1l111iii這種的
優喔,不過原來我code已經夠ninja了
離職前寫的 code 差不多就這樣了
乾XDDDD 這真的很妨礙閱讀
讚 報復社會
你是不是常常這麼幹
1
ice 大請去看 Brainfuck / jsfuck。 python 的話,稍微 Google有 pyrhon-brianfuck 提供模組可引入。 然後盡可能背下來各區段之類的。 只要說:『博後應該要有閱讀程式的能力』之類的唬爛過去就好。 對於為何要這樣寫,就說:這是最佳化的結果,別的寫法可能到我畢業都還沒跑完。85
首Po繼上集, 朋友被指導教授要求給博後論文草稿和實驗程式碼之後, 朋友除了使用推文有建議的拖,慢,等戰術讓博後拿不到, 78博後對我朋友出了新招,
爆
[爆卦] 青鳥行動設計師: 被利用和背叛+踢出群組爆
Re: [問卦] 做訪談節目,把內容剪輯哪裡不對?爆
Re: [爆卦] 青鳥行動設計師: 被利用和背叛+踢出群組爆
[問卦] 范琪斐才是那個最匪夷所思的吧?!77
[問卦] 印尼街景長這樣?66
[問卦] 第一次歐洲自由行會推薦哪個國家?58
[問卦] 北部學校教丟粽子進河是給魚吃?56
Re: [新聞] 「AI發展會讓一半醫師失業!」柯文哲要大學生「學好這個41
[問卦] 怎麼解釋新蓋的核電廠比舊的危險?爆
[問卦] 開口閉口藍白、雜草的是什麼樣的人40
[問卦] 淡水河發現鯊魚 台灣人會怎麼做98
Re: [爆卦] 范姐出新片澄清35
[問卦] 汪精衛勸降廣告:中日有和平的可能38
[問卦] 房間要幾坪才夠大?34
[問卦] 為什麼古中國各朝代沒想打日本?31
Re: [新聞] 為何綠執政8年不做國會改革?沈伯洋竟扯爆
[問卦] 有沒有隨便一個路人都能電爆呱吉的八卦啊50
[問卦] 神盾app是最屌的app吧?28
[問卦] 刺槍術為什麼一堆擁護者21
Re: [新聞] 「AI發展會讓一半醫師失業!」柯文哲要大學生「學好這個20
[問卦] 正常KTV要怎麼唱到10萬?90
[問卦] 為什麼執意要廢核24
[問卦] 德國是最適合窮遊的歐洲國家嗎?22
Re: [爆卦] 青鳥行動設計師: 被利用和背叛+踢出群組21
[問卦] YouTuber小施汽車54.4萬訂閱過氣了嗎?73
[問卦] 中國人:對方道謝會回不會的就是台灣人21
[問卦] 藥局買壯陽藥如何很自然的開口21
[問卦] 安機不耐用是都市傳說嗎?3
[參選] BlueBird5566 八卦擴權 民主已死-青鳥陣線20
[問卦] 要如何一禮拜快速增重?80>100