[請益] 代問:如何寫出讓人看不懂的Python程式碼?

看板Soft_Job (軟體人)作者 (督人無數就是我)時間4年前 (2021/08/12 14:03), 編輯推噓32(36473)
留言113則, 50人參與, 4年前最新討論串1/1
繼上集, https://www.ptt.cc/bbs/Gossiping/M.1628230251.A.F0C.html 朋友被指導教授要求給博後論文草稿和實驗程式碼之後, 朋友除了使用推文有建議的拖,慢,等戰術讓博後拿不到, 78博後對我朋友出了新招, 博後要求近期和我朋友一起坐在電腦前面交接程式碼, 也要我朋友講解程式碼給他聽, 跑程式給博後看. 我朋友想出一招, 盡量寫出讓博後看不懂的Python程式碼, 講解時亂唬爛一通, 讓博後完全看不懂,也搞不懂整個實驗程式內容. 但是大家都知道Python語言的特性就是程式碼簡單,易懂,能快速理解, 要寫的隱諱艱深難懂, 似乎沒這麼容易? 我朋友拉著我找了很久, 我們都找不到怎麼才能把Python寫的難懂, 而且還可以跑實驗. 所以, 有沒有 世界上存在一本高手秘笈, 可以把Python寫的讓博後完全看不懂? 先代朋友感謝大家的幫忙~ -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 111.71.215.133 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/Soft_Job/M.1628748218.A.0D6.html

08/12 14:07, 4年前 , 1F
我不知道該表示甚麼 該說這跟軟體版無關嗎
08/12 14:07, 1F

08/12 14:09, 4年前 , 2F
只要他說一句他看不懂 你就不要想畢業了 就那麼簡單
08/12 14:09, 2F

08/12 14:09, 4年前 , 3F
砸自己的寶貴時間陪他玩是最笨的做法
08/12 14:09, 3F

08/12 14:10, 4年前 , 4F
八卦板不是很多人回了?
08/12 14:10, 4F

08/12 14:11, 4年前 , 5F
不註記type hint, docstring, annotation 日子一久 連
08/12 14:11, 5F

08/12 14:11, 4年前 , 6F
我本人都不知道當初在寫什麼
08/12 14:11, 6F

08/12 14:16, 4年前 , 7F
用一堆蝦機巴 decorator 和 wrapper 保證懵
08/12 14:16, 7F

08/12 14:20, 4年前 , 8F
開源架構的重要性,用架構有時不會更好,但強制架構一制性
08/12 14:20, 8F

08/12 14:38, 4年前 , 9F
浪費自己時間,我程式碼都放在HACKMD開放的
08/12 14:38, 9F

08/12 14:50, 4年前 , 10F
推一樓
08/12 14:50, 10F

08/12 14:56, 4年前 , 11F
同意一樓 你在浪費時間
08/12 14:56, 11F

08/12 15:13, 4年前 , 12F
結局就是他多凹你3天講到他懂
08/12 15:13, 12F

08/12 15:14, 4年前 , 13F
這一篇有13p我覺得太多了
08/12 15:14, 13F

08/12 15:14, 4年前 , 14F
編譯後再反編譯 程式碼再交出去
08/12 15:14, 14F

08/12 15:31, 4年前 , 15F
教你大絕 把方法用closure存在一個map裡面 要呼叫的
08/12 15:31, 15F

08/12 15:31, 4年前 , 16F
時候就用字串查找出來 而且字串不要是字面常量 最好
08/12 15:31, 16F

08/12 15:31, 4年前 , 17F
傳遞好多層中間拼接或取代搞得面目全非
08/12 15:31, 17F

08/12 15:31, 4年前 , 18F
decorator跟wrapper又不難懂,應該說真的有心沒有難懂
08/12 15:31, 18F

08/12 15:31, 4年前 , 19F
的東西啦
08/12 15:31, 19F

08/12 15:33, 4年前 , 20F
更高級方法 用higher order function把多個閉包組合
08/12 15:33, 20F

08/12 15:33, 4年前 , 21F
起來 傳來傳去 讓人無法從code想像現在呼叫哪個函式
08/12 15:33, 21F

08/12 15:33, 4年前 , 22F
python要寫得很難懂 就是要深刻的練習一行文的精髓
08/12 15:33, 22F

08/12 15:35, 4年前 , 23F
只要IO明確,說真的有能力的蝦雞巴的code都可以看得懂,
08/12 15:35, 23F

08/12 15:35, 4年前 , 24F
還不如不要搞自己,至於沒能力的你就算寫得很好,他一
08/12 15:35, 24F

08/12 15:35, 4年前 , 25F
樣也會一直找你找到你煩。
08/12 15:35, 25F

08/12 15:37, 4年前 , 26F
幹嘛搞自己 畢業咖實在 你還可以收集證據
08/12 15:37, 26F

08/12 15:44, 4年前 , 27F
另一個思路 去看一下什麼是 Fragile base class prob
08/12 15:44, 27F

08/12 15:44, 4年前 , 28F
lem,一個物件導向的經典失敗案例,把你的類別架構弄
08/12 15:44, 28F

08/12 15:44, 4年前 , 29F
得很容易發生那種問題
08/12 15:44, 29F

08/12 15:45, 4年前 , 30F
讓父類別的函式無意義地修改自身狀態 這麼一來只要繼
08/12 15:45, 30F

08/12 15:45, 4年前 , 31F
承者呼叫函式的順序稍微有錯就會導致很難debug的問題
08/12 15:45, 31F

08/12 15:52, 4年前 , 32F
把OOP用的超級複雜,每個function都封裝一堆,同樣的
08/12 15:52, 32F

08/12 15:52, 4年前 , 33F
變數名字一堆不同型態
08/12 15:52, 33F

08/12 15:53, 4年前 , 34F
超長函式加上破英文命名就夠了啦
08/12 15:53, 34F

08/12 15:55, 4年前 , 35F
上面兩種思路組合起來 所謂內部狀態 是不是也可以是
08/12 15:55, 35F

08/12 15:55, 4年前 , 36F
閉包呢? ^^
08/12 15:55, 36F

08/12 15:56, 4年前 , 37F
import ctypes and call asm
08/12 15:56, 37F

08/12 16:07, 4年前 , 38F
變數都用123abc
08/12 16:07, 38F

08/12 16:13, 4年前 , 39F
不要以為自己寫的 quality 好到人家看的懂,就算一行一
08/12 16:13, 39F
還有 34 則推文
08/12 20:26, 4年前 , 74F
class convention把他弄的像function 實作讓他call起來
08/12 20:26, 74F

08/12 20:26, 4年前 , 75F
亂七八糟 data handler讓他其慢無比 能向量化的全讓他fo
08/12 20:26, 75F

08/12 20:26, 4年前 , 76F
r loop
08/12 20:26, 76F

08/12 20:30, 4年前 , 77F
用pycrypto把專案大包小包 騙博後那是call外部的?
08/12 20:30, 77F

08/12 20:59, 4年前 , 78F
把他改成C++
08/12 20:59, 78F

08/12 21:01, 4年前 , 79F
把關鍵function build成so file不給看啊
08/12 21:01, 79F

08/12 21:54, 4年前 , 80F
改到看不懂很簡單啊,難在你要讓別人看不出你在刻意讓
08/12 21:54, 80F

08/12 21:54, 4年前 , 81F
他看不懂
08/12 21:54, 81F

08/12 22:11, 4年前 , 82F
08/12 22:11, 82F

08/12 22:20, 4年前 , 83F
推文的經驗好恐怖XD
08/12 22:20, 83F

08/12 23:55, 4年前 , 84F
光是命名用羅馬拼音+縮寫就很屌了 因為跟台灣拼法不同
08/12 23:55, 84F

08/12 23:56, 4年前 , 85F
還是而且還是C++
08/12 23:56, 85F

08/13 05:11, 4年前 , 86F
坦白說,你正常寫,對方也不見得看得懂,你該做的是收集
08/13 05:11, 86F

08/13 05:11, 4年前 , 87F
證據,然後畢業後再去檢舉
08/13 05:11, 87F

08/13 07:38, 4年前 , 88F
先畢業最重要 要掛就給他掛啊 年輕人就是年輕人
08/13 07:38, 88F

08/13 07:48, 4年前 , 89F
obfuscator
08/13 07:48, 89F

08/13 08:56, 4年前 , 90F
ninja style
08/13 08:56, 90F

08/13 09:18, 4年前 , 91F
文件開起來只有一行 所有斷行都用 \
08/13 09:18, 91F

08/13 09:18, 4年前 , 92F
變數名稱取超級長、亂碼
08/13 09:18, 92F

08/13 09:19, 4年前 , 93F
加無意義的混亂code
08/13 09:19, 93F

08/13 09:19, 4年前 , 94F
所有code style違反PEP8
08/13 09:19, 94F

08/13 09:20, 4年前 , 95F
保證看了直接爆氣
08/13 09:20, 95F

08/13 09:21, 4年前 , 96F
但是其實可以black .直接校正就是了
08/13 09:21, 96F

08/13 09:25, 4年前 , 97F
或是把code分散在很多module,import來import去,分
08/13 09:25, 97F

08/13 09:25, 4年前 , 98F
很多nested,加深trace code的難度
08/13 09:25, 98F

08/13 09:25, 4年前 , 99F
然後import * 讓他不知道你在import什麼
08/13 09:25, 99F

08/13 11:12, 4年前 , 100F
你朋友要畢業了嗎 如果是的話 反正講了不會還是不會 就
08/13 11:12, 100F

08/13 11:12, 4年前 , 101F
只教那一遍就好
08/13 11:12, 101F

08/13 11:58, 4年前 , 102F
浪費人生在搞這些沒有比較賺啦,到最後一定是你最輸
08/13 11:58, 102F

08/13 16:27, 4年前 , 103F
給修哲學的博後來review就好,應該不會討論扣
08/13 16:27, 103F

08/14 18:35, 4年前 , 104F
可是看不懂,通常都是交接的人的問題……很難歸類到被
08/14 18:35, 104F

08/14 18:35, 4年前 , 105F
交接人的智商問題……多半是交接人的無意或是蓄意……Q
08/14 18:35, 105F

08/14 18:35, 4年前 , 106F
Q
08/14 18:35, 106F

08/14 19:27, 4年前 , 107F
即便簡單,只要長一點,腦子就不靈光了
08/14 19:27, 107F

08/16 00:49, 4年前 , 108F
以上可以證明這行在表現上很看機運的 大家都不希望被
08/16 00:49, 108F

08/16 00:49, 4年前 , 109F
人坑
08/16 00:49, 109F

08/16 00:51, 4年前 , 110F
當然隨便解是可以的 只是就與寫文檔一樣 不喜歡寫文
08/16 00:51, 110F

08/16 00:51, 4年前 , 111F
檔也不喜歡別人不寫文檔
08/16 00:51, 111F

08/16 01:05, 4年前 , 112F
這也是需要閉源的原因之一 誰會幫助曾經整蠱過自己的
08/16 01:05, 112F

08/16 01:06, 4年前 , 113F
08/16 01:06, 113F
文章代碼(AID): #1X5Bcw3M (Soft_Job)
文章代碼(AID): #1X5Bcw3M (Soft_Job)