PTT評價

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

看板Soft_Job標題[請益] 代問:如何寫出讓人看不懂的Python程式碼?作者
ruthertw
(督人無數就是我)
時間推噓32 推:36 噓:4 →:73

繼上集,
https://www.ptt.cc/Gossiping/M.1628230251.A.F0C

朋友被指導教授要求給博後論文草稿和實驗程式碼之後,

朋友除了使用推文有建議的拖,慢,等戰術讓博後拿不到,

78博後對我朋友出了新招,

博後要求近期和我朋友一起坐在電腦前面交接程式碼,

也要我朋友講解程式碼給他聽,

跑程式給博後看.


我朋友想出一招,

盡量寫出讓博後看不懂的Python程式碼,



講解時亂唬爛一通,

讓博後完全看不懂,也搞不懂整個實驗程式內容.


但是大家都知道Python語言的特性就是程式碼簡單,易懂,能快速理解,

要寫的隱諱艱深難懂,

似乎沒這麼容易?


我朋友拉著我找了很久,

我們都找不到怎麼才能把Python寫的難懂,

而且還可以跑實驗.


所以,


有沒有

世界上存在一本高手秘笈,

可以把Python寫的讓博後完全看不懂?


先代朋友感謝大家的幫忙~

--

※ PTT 留言評論
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 111.71.215.133 (臺灣)
PTT 網址

MOONY13508/12 14:07我不知道該表示甚麼 該說這跟軟體版無關嗎

MOONY13508/12 14:09只要他說一句他看不懂 你就不要想畢業了 就那麼簡單

MOONY13508/12 14:09砸自己的寶貴時間陪他玩是最笨的做法

BlacksPig08/12 14:10八卦板不是很多人回了?

MacPerson08/12 14:11不註記type hint, docstring, annotation 日子一久 連

MacPerson08/12 14:11我本人都不知道當初在寫什麼

joekaojoekao08/12 14:16用一堆蝦機巴 decorator 和 wrapper 保證懵

acgotaku08/12 14:20開源架構的重要性,用架構有時不會更好,但強制架構一制性

ntpuisbest08/12 14:38浪費自己時間,我程式碼都放在HACKMD開放的

viper970908/12 14:50推一樓

DarkIllusion08/12 14:56同意一樓 你在浪費時間

Murasaki011008/12 15:13結局就是他多凹你3天講到他懂

DCTmaybe08/12 15:14這一篇有13p我覺得太多了

aaa123413608/12 15:14編譯後再反編譯 程式碼再交出去

lturtsamuel08/12 15:31教你大絕 把方法用closure存在一個map裡面 要呼叫的

lturtsamuel08/12 15:31時候就用字串查找出來 而且字串不要是字面常量 最好

lturtsamuel08/12 15:31傳遞好多層中間拼接或取代搞得面目全非

sxy6723008/12 15:31decorator跟wrapper又不難懂,應該說真的有心沒有難懂

sxy6723008/12 15:31的東西啦

lturtsamuel08/12 15:33更高級方法 用higher order function把多個閉包組合

lturtsamuel08/12 15:33起來 傳來傳去 讓人無法從code想像現在呼叫哪個函式

Kazimir08/12 15:33python要寫得很難懂 就是要深刻的練習一行文的精髓

sxy6723008/12 15:35只要IO明確,說真的有能力的蝦雞巴的code都可以看得懂,

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

sxy6723008/12 15:35樣也會一直找你找到你煩。

followwar08/12 15:37幹嘛搞自己 畢業咖實在 你還可以收集證據

lturtsamuel08/12 15:44另一個思路 去看一下什麼是 Fragile base class prob

lturtsamuel08/12 15:44lem,一個物件導向的經典失敗案例,把你的類別架構弄

lturtsamuel08/12 15:44得很容易發生那種問題

lturtsamuel08/12 15:45讓父類別的函式無意義地修改自身狀態 這麼一來只要繼

lturtsamuel08/12 15:45承者呼叫函式的順序稍微有錯就會導致很難debug的問題

gs861378908/12 15:52把OOP用的超級複雜,每個function都封裝一堆,同樣的

gs861378908/12 15:52變數名字一堆不同型態

NCUking08/12 15:53超長函式加上破英文命名就夠了啦

lturtsamuel08/12 15:55上面兩種思路組合起來 所謂內部狀態 是不是也可以是

lturtsamuel08/12 15:55閉包呢? ^^

testPtt08/12 15:56import ctypes and call asm

Louis521308/12 16:07變數都用123abc

elements08/12 16:13不要以為自己寫的 quality 好到人家看的懂,就算一行一

elements08/12 16:13行教過還是會忘記啦

Cprimer08/12 16:27不如認真寫leetcode :D

sherees08/12 16:34https://youtu.be/MTCYhbfSAuA

sherees08/12 16:47雖然我是覺得不要搞自己 趕緊畢業比較實在啦

hpyhacking08/12 16:58請購買忍者程式碼一書

sooge08/12 16:58這裡都python 大神是不是一堆奇奇怪怪的東西

hpyhacking08/12 17:00https://lenchen.medium.com/忍者程式碼-ninja-code-c

hpyhacking08/12 17:00c5e4a70bafc

bheegrl08/12 17:12自信點,就算你認真寫他也不一定看得懂

zxcasdjason108/12 17:40這篇在幹嘛 快被笑死 XD

brianhsu08/12 17:41搞自己幹嘛,快點畢業才是是正途

wahaha27908/12 17:47去讀ninja code

BRN08/12 18:05生命應該要浪費在更爽的事情上面 XDDD

xoy23208/12 18:30cython 搭配編譯特殊指令配c++

MOONY13508/12 18:45天下第一印*大會正式開始

soccer10308/12 18:52看了前文:112理工讀到博士

soccer10308/12 18:52還走台灣前端..實在浪費教學資源

soccer10308/12 18:52前文看完覺得隨便交接不要亂

soccer10308/12 18:52反正他一定也看不懂

WaterLengend08/12 19:25認真回,我公司外包給中國碼農的案子的特點是不會

WaterLengend08/12 19:25用DI,不會用interface,到處都用複製的一大堆,del

WaterLengend08/12 19:25ivery/usecase/repository全部混在一起,裡面還會包

WaterLengend08/12 19:25private variable當作flag去做判斷,最後封裝起來

WaterLengend08/12 19:25給外層使用,給你參考,不用謝了。

brianhsu08/12 19:28真的,曾經有份工作要接手對岸的程式碼,本來進去前也覺

brianhsu08/12 19:28得沒什麼,但我看到程式碼後就下定決心要離職了。

WaterLengend08/12 19:35對了,還有用一堆public var宣告在最外層,大家都

WaterLengend08/12 19:35用得到,struct裡面指標包著另一個sturct包了好幾層

WaterLengend08/12 19:35,裡面還會有陣列,動不動就index out of range。從

WaterLengend08/12 19:35package name到variable name可以命名的全部亂命名

WaterLengend08/12 19:35,有縮寫,有羅馬拼音。到處都用hash map沒看程式碼

WaterLengend08/12 19:35真不知道資料結構是什麼。一個package可以搞定的事

WaterLengend08/12 19:35情複製成好幾份,最後隨便要改就是import cycle,連

WaterLengend08/12 19:35complier都不行,啾咪。

lukelove08/12 20:26class convention把他弄的像function 實作讓他call起來

lukelove08/12 20:26亂七八糟 data handler讓他其慢無比 能向量化的全讓他fo

lukelove08/12 20:26r loop

charliebitme08/12 20:30用pycrypto把專案大包小包 騙博後那是call外部的?

newking76108/12 20:59把他改成C++

pttano08/12 21:01把關鍵function build成so file不給看啊

splitline08/12 21:54改到看不懂很簡單啊,難在你要讓別人看不出你在刻意讓

splitline08/12 21:54他看不懂

chuegou08/12 22:11

viper970908/12 22:20推文的經驗好恐怖XD

Gaogaigar08/12 23:55光是命名用羅馬拼音+縮寫就很屌了 因為跟台灣拼法不同

Gaogaigar08/12 23:56還是而且還是C++

mathrew08/13 05:11坦白說,你正常寫,對方也不見得看得懂,你該做的是收集

mathrew08/13 05:11證據,然後畢業後再去檢舉

k79897686908/13 07:38先畢業最重要 要掛就給他掛啊 年輕人就是年輕人

baileegunlin08/13 07:48 obfuscator

hasroten08/13 08:56ninja style

ssd860505da08/13 09:18文件開起來只有一行 所有斷行都用 \

ssd860505da08/13 09:18變數名稱取超級長、亂碼

ssd860505da08/13 09:19加無意義的混亂code

ssd860505da08/13 09:19所有code style違反PEP8

ssd860505da08/13 09:20保證看了直接爆氣

ssd860505da08/13 09:21但是其實可以black .直接校正就是了

ssd860505da08/13 09:25或是把code分散在很多module,import來import去,分

ssd860505da08/13 09:25很多nested,加深trace code的難度

ssd860505da08/13 09:25然後import * 讓他不知道你在import什麼

a198221308/13 11:12你朋友要畢業了嗎 如果是的話 反正講了不會還是不會 就

a198221308/13 11:12只教那一遍就好

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

abola92108/13 16:27給修哲學的博後來review就好,應該不會討論扣

r4049110108/14 18:35可是看不懂,通常都是交接的人的問題……很難歸類到被

r4049110108/14 18:35交接人的智商問題……多半是交接人的無意或是蓄意……Q

r4049110108/14 18:35Q

bmiss08/14 19:27即便簡單,只要長一點,腦子就不靈光了

superpandal08/16 00:49以上可以證明這行在表現上很看機運的 大家都不希望被

superpandal08/16 00:49人坑

superpandal08/16 00:51當然隨便解是可以的 只是就與寫文檔一樣 不喜歡寫文

superpandal08/16 00:51檔也不喜歡別人不寫文檔

superpandal08/16 01:05這也是需要閉源的原因之一 誰會幫助曾經整蠱過自己的

superpandal08/16 01:06