看板 Soft_Job 關於我們 聯絡資訊
繼上集, 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
MOONY135: 我不知道該表示甚麼 該說這跟軟體版無關嗎 08/12 14:07
MOONY135: 只要他說一句他看不懂 你就不要想畢業了 就那麼簡單 08/12 14:09
MOONY135: 砸自己的寶貴時間陪他玩是最笨的做法 08/12 14:09
BlacksPig: 八卦板不是很多人回了? 08/12 14:10
MacPerson: 不註記type hint, docstring, annotation 日子一久 連 08/12 14:11
MacPerson: 我本人都不知道當初在寫什麼 08/12 14:11
joekaojoekao: 用一堆蝦機巴 decorator 和 wrapper 保證懵 08/12 14:16
acgotaku: 開源架構的重要性,用架構有時不會更好,但強制架構一制性 08/12 14:20
ntpuisbest: 浪費自己時間,我程式碼都放在HACKMD開放的 08/12 14:38
viper9709: 推一樓 08/12 14:50
DarkIllusion: 同意一樓 你在浪費時間 08/12 14:56
Murasaki0110: 結局就是他多凹你3天講到他懂 08/12 15:13
DCTmaybe: 這一篇有13p我覺得太多了 08/12 15:14
aaa1234136: 編譯後再反編譯 程式碼再交出去 08/12 15:14
lturtsamuel: 教你大絕 把方法用closure存在一個map裡面 要呼叫的 08/12 15:31
lturtsamuel: 時候就用字串查找出來 而且字串不要是字面常量 最好 08/12 15:31
lturtsamuel: 傳遞好多層中間拼接或取代搞得面目全非 08/12 15:31
sxy67230: decorator跟wrapper又不難懂,應該說真的有心沒有難懂 08/12 15:31
sxy67230: 的東西啦 08/12 15:31
lturtsamuel: 更高級方法 用higher order function把多個閉包組合 08/12 15:33
lturtsamuel: 起來 傳來傳去 讓人無法從code想像現在呼叫哪個函式 08/12 15:33
Kazimir: python要寫得很難懂 就是要深刻的練習一行文的精髓 08/12 15:33
sxy67230: 只要IO明確,說真的有能力的蝦雞巴的code都可以看得懂, 08/12 15:35
sxy67230: 還不如不要搞自己,至於沒能力的你就算寫得很好,他一 08/12 15:35
sxy67230: 樣也會一直找你找到你煩。 08/12 15:35
followwar: 幹嘛搞自己 畢業咖實在 你還可以收集證據 08/12 15:37
lturtsamuel: 另一個思路 去看一下什麼是 Fragile base class prob 08/12 15:44
lturtsamuel: lem,一個物件導向的經典失敗案例,把你的類別架構弄 08/12 15:44
lturtsamuel: 得很容易發生那種問題 08/12 15:44
lturtsamuel: 讓父類別的函式無意義地修改自身狀態 這麼一來只要繼 08/12 15:45
lturtsamuel: 承者呼叫函式的順序稍微有錯就會導致很難debug的問題 08/12 15:45
gs8613789: 把OOP用的超級複雜,每個function都封裝一堆,同樣的 08/12 15:52
gs8613789: 變數名字一堆不同型態 08/12 15:52
NCUking: 超長函式加上破英文命名就夠了啦 08/12 15:53
lturtsamuel: 上面兩種思路組合起來 所謂內部狀態 是不是也可以是 08/12 15:55
lturtsamuel: 閉包呢? ^^ 08/12 15:55
testPtt: import ctypes and call asm 08/12 15:56
Louis5213: 變數都用123abc 08/12 16:07
elements: 不要以為自己寫的 quality 好到人家看的懂,就算一行一 08/12 16:13
elements: 行教過還是會忘記啦 08/12 16:13
Cprimer: 不如認真寫leetcode :D 08/12 16:27
sherees: https://youtu.be/MTCYhbfSAuA 08/12 16:34
sherees: 雖然我是覺得不要搞自己 趕緊畢業比較實在啦 08/12 16:47
hpyhacking: 請購買忍者程式碼一書 08/12 16:58
sooge: 這裡都python 大神是不是一堆奇奇怪怪的東西 08/12 16:58
hpyhacking: https://lenchen.medium.com/忍者程式碼-ninja-code-c 08/12 17:00
hpyhacking: c5e4a70bafc 08/12 17:00
bheegrl: 自信點,就算你認真寫他也不一定看得懂 08/12 17:12
zxcasdjason1: 這篇在幹嘛 快被笑死 XD 08/12 17:40
brianhsu: 搞自己幹嘛,快點畢業才是是正途 08/12 17:41
wahaha279: 去讀ninja code 08/12 17:47
BRN: 生命應該要浪費在更爽的事情上面 XDDD 08/12 18:05
xoy232: cython 搭配編譯特殊指令配c++ 08/12 18:30
MOONY135: 天下第一印*大會正式開始 08/12 18:45
soccer103: 看了前文:112理工讀到博士 08/12 18:52
soccer103: 還走台灣前端..實在浪費教學資源 08/12 18:52
soccer103: 前文看完覺得隨便交接不要亂 08/12 18:52
soccer103: 反正他一定也看不懂 08/12 18:52
WaterLengend: 認真回,我公司外包給中國碼農的案子的特點是不會 08/12 19:25
WaterLengend: 用DI,不會用interface,到處都用複製的一大堆,del 08/12 19:25
WaterLengend: ivery/usecase/repository全部混在一起,裡面還會包 08/12 19:25
WaterLengend: private variable當作flag去做判斷,最後封裝起來 08/12 19:25
WaterLengend: 給外層使用,給你參考,不用謝了。 08/12 19:25
brianhsu: 真的,曾經有份工作要接手對岸的程式碼,本來進去前也覺 08/12 19:28
brianhsu: 得沒什麼,但我看到程式碼後就下定決心要離職了。 08/12 19:28
WaterLengend: 對了,還有用一堆public var宣告在最外層,大家都 08/12 19:35
WaterLengend: 用得到,struct裡面指標包著另一個sturct包了好幾層 08/12 19:35
WaterLengend: ,裡面還會有陣列,動不動就index out of range。從 08/12 19:35
WaterLengend: package name到variable name可以命名的全部亂命名 08/12 19:35
WaterLengend: ,有縮寫,有羅馬拼音。到處都用hash map沒看程式碼 08/12 19:35
WaterLengend: 真不知道資料結構是什麼。一個package可以搞定的事 08/12 19:35
WaterLengend: 情複製成好幾份,最後隨便要改就是import cycle,連 08/12 19:35
WaterLengend: complier都不行,啾咪。 08/12 19:35
lukelove: class convention把他弄的像function 實作讓他call起來 08/12 20:26
lukelove: 亂七八糟 data handler讓他其慢無比 能向量化的全讓他fo 08/12 20:26
lukelove: r loop 08/12 20:26
charliebitme: 用pycrypto把專案大包小包 騙博後那是call外部的? 08/12 20:30
newking761: 把他改成C++ 08/12 20:59
pttano: 把關鍵function build成so file不給看啊 08/12 21:01
splitline: 改到看不懂很簡單啊,難在你要讓別人看不出你在刻意讓 08/12 21:54
splitline: 他看不懂 08/12 21:54
chuegou: 08/12 22:11
viper9709: 推文的經驗好恐怖XD 08/12 22:20
Gaogaigar: 光是命名用羅馬拼音+縮寫就很屌了 因為跟台灣拼法不同 08/12 23:55
Gaogaigar: 還是而且還是C++ 08/12 23:56
mathrew: 坦白說,你正常寫,對方也不見得看得懂,你該做的是收集 08/13 05:11
mathrew: 證據,然後畢業後再去檢舉 08/13 05:11
k798976869: 先畢業最重要 要掛就給他掛啊 年輕人就是年輕人 08/13 07:38
baileegunlin: obfuscator 08/13 07:48
hasroten: ninja style 08/13 08:56
ssd860505da: 文件開起來只有一行 所有斷行都用 \ 08/13 09:18
ssd860505da: 變數名稱取超級長、亂碼 08/13 09:18
ssd860505da: 加無意義的混亂code 08/13 09:19
ssd860505da: 所有code style違反PEP8 08/13 09:19
ssd860505da: 保證看了直接爆氣 08/13 09:20
ssd860505da: 但是其實可以black .直接校正就是了 08/13 09:21
ssd860505da: 或是把code分散在很多module,import來import去,分 08/13 09:25
ssd860505da: 很多nested,加深trace code的難度 08/13 09:25
ssd860505da: 然後import * 讓他不知道你在import什麼 08/13 09:25
a1982213: 你朋友要畢業了嗎 如果是的話 反正講了不會還是不會 就 08/13 11:12
a1982213: 只教那一遍就好 08/13 11:12
NCTUFAIWEN: 浪費人生在搞這些沒有比較賺啦,到最後一定是你最輸 08/13 11:58
abola921: 給修哲學的博後來review就好,應該不會討論扣 08/13 16:27
r40491101: 可是看不懂,通常都是交接的人的問題……很難歸類到被 08/14 18:35
r40491101: 交接人的智商問題……多半是交接人的無意或是蓄意……Q 08/14 18:35
r40491101: Q 08/14 18:35
bmiss: 即便簡單,只要長一點,腦子就不靈光了 08/14 19:27
superpandal: 以上可以證明這行在表現上很看機運的 大家都不希望被 08/16 00:49
superpandal: 人坑 08/16 00:49
superpandal: 當然隨便解是可以的 只是就與寫文檔一樣 不喜歡寫文 08/16 00:51
superpandal: 檔也不喜歡別人不寫文檔 08/16 00:51
superpandal: 這也是需要閉源的原因之一 誰會幫助曾經整蠱過自己的 08/16 01:05
superpandal: 人 08/16 01:06