作者gasbomb (虛空雷神獸)
看板Soft_Job
標題Re: [討論] 遇到問題就workaround真的好嗎?
時間Fri Dec 3 13:50:02 2021
※ 引述《applebg (Malicious Racist)》之銘言:
笑死人
一看就是沒有reference觀念的菜雞
immutable string就是要阻止你這種雷包寫出糞code啦
今天要是有人很衰小, 要跟你一起開發醫院的資訊系統
然後又很衰小的, 開發語言的string又是mutable的
那會發生什麼事情呢?
假設今天在開發掛號系統好了
你負責的是診間門口叫號機的程式
好不容易按照需求文件的設計把程式都完成了
不過需求上有一項"因應個資法, 病患姓名需要隱碼"
所以你就很直覺的寫下
patient.fullname[1] = "○"
好聰明好直覺喔
這樣病患的姓名就會顯示成"王○明", "張○華"了呢
然後就會發現
只要病患資料有經過你寫的程式處理過
姓名全部都變成"王○明", "張○華"了
因為你直接從病患的物件裡面取出病患姓名string的reference
然後在reference不變的情況下直接把string的value改掉
下場就是所有用到同一個reference的程式都會被你影響到
最後來談談什麼叫做workaround
寫出上面那種糞code
開除你叫做解決問題
公司不開除你
逼得大家以後pass reference給你的時候都要先自己deep copy一次
這才有資格叫workaround
--
╔═◢ ◣═╦╦═════╦═════╗
║
◤◤◤ ◥ ╠╣
飛鳥ももこ╠═╗ ║
║ ▇ ▇ ║╚═════╝ ╚═╦═╣
║ ▌ ● ● ▌ ║╔══════╗╔═╩═╣
║
◤ ◥
︺█◤
◥╠╣
Momoko Asuka╠╝ ║
╚◣◢ ▄▂▄ ◣◢╩╩══════╩════╝
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 1.34.216.106 (臺灣)
※ 文章網址: https://webptt.com/m.aspx?n=bbs/Soft_Job/M.1638510605.A.DCB.html
1F:推 masturbateee: 真正的「解決不了問題就解決製造問題的人」 12/03 13:54
2F:推 tbpfs: 你認真了,網路查一下這個ID,就知道是廢文產生機 12/03 13:55
4F:→ tbpfs: 然後他應該也看不懂你在寫什麼 12/03 13:56
5F:推 nh60211as: 別這麼火爆 12/03 13:57
6F:推 loadingN: 我覺得你的例子很好 12/03 14:14
7F:推 dati: 你舉的例子真超好,但粗暴語言 DUCK不必 12/03 14:18
8F:推 bill0205: 你幹嘛認真XDD 12/03 14:22
9F:→ airtsubasa: 這例子不是僅在view且display做替換就好? 12/03 14:34
10F:→ Firstshadow: 好好笑== 不過例子就是鮮明實在點好 12/03 15:55
(づ′・ω・)づ 你的推文怎麼沒有這個了?
※ 編輯: gasbomb (1.34.216.106 臺灣), 12/03/2021 16:11:42
11F:→ Firstshadow: 在Job版要專業一點ㄚ 對ㄚ== 12/03 16:20
12F:→ Firstshadow: (づ′・ω・)づ .. 12/03 16:23
13F:推 sniper2824: 為什麼要回廢文 這人就是來鬧的而已 12/03 17:03
14F:推 DarkIllusion: workaround 的例子舉得很好 滿分 12/03 17:05
15F:推 Nonegrame: 笑死 我要看到血流成河 12/03 17:26
16F:推 ricky155030: 推你的workaround 12/03 18:01
17F:推 Raymond0710: XD 廢文也能吊出認真文 好例子給推 12/03 18:38
18F:推 VF84: 他要是去寫 Rust,大概會想直接登出人生 www 12/03 18:54
19F:推 andy831020: 讚讚讚 12/03 19:07
20F:推 argc: 好例子 12/03 19:30
21F:推 BigCockman: 最後一段XD 12/03 19:53
22F:推 zero11995: 哈哈哈哈哈 12/03 20:14
23F:→ superpandal: 例子很好??? 這是人的問題吧 應該要有自我要求寫出好 12/03 20:56
24F:→ superpandal: code 12/03 20:56
25F:→ superpandal: python就是這樣動態語言黑魔法消失了 12/03 20:57
26F:→ superpandal: 一個語言不會因為有了規範就不會被人寫成一駝屎 12/03 21:06
27F:推 lturtsamuel: 有ㄚ 如果你用rust不可變引用傳進去看你怎麼改 12/03 22:26
28F:→ lturtsamuel: 不像c強制轉型一下就好了 codereview看起來也不明顯 12/03 22:27
29F:推 viper9709: 推這篇 12/03 22:48
30F:推 jhjhs33504: 這例子破綻其實一樣沒分是get還set實務上語言規範會擋 12/03 23:07
31F:推 Lhmstu: 寫實workaround 12/04 08:52
32F:推 ADEMAIN: 笑死 12/04 08:54
33F:推 rog43: 你好兇喔 但是我喜歡 12/04 09:14
34F:推 kkes0001: 凶 12/04 12:15
35F:推 sjensen: 推例子 12/04 12:39
36F:推 vi000246: XDDDDDDD 12/04 13:54
37F:推 charliebitme: 好兇lol 真的人如其名gasbomb 12/05 00:31
38F:推 claymath: 好派 12/05 04:46
39F:推 a731977: 推 12/05 17:33
40F:推 ftrhalcyon: 專業舉例 12/05 20:20
41F:→ cha122977: Workaround滿分 12/05 22:10
42F:推 GTX9080: 好兇 但我喜歡XD 12/06 01:11
43F:推 amiwry: 舉例很好,這陣子也被類似事情雷到,哎 12/06 12:18
44F:→ superpandal: 引用也很常見 12/06 21:35
45F:→ shooter555: 這只是套用進最差的使用情況 12/07 09:26
46F:→ shooter555: 在functional的程式設計中 不改動原值 確保重複執行某 12/07 09:29
47F:→ shooter555: func所得的值是相同 但OOP裡面沒這麼強調的情況 改動 12/07 09:31
48F:→ shooter555: 原值是常見的作法 12/07 09:31
49F:→ shooter555: 另外一方面 改動原值可以不用重複的挖取記憶體 12/07 09:32
50F:→ shooter555: 以此篇例子不管有沒有字串有沒有保護 解法應該都不是 12/07 09:40
51F:→ shooter555: 改動原本字串 原本的名子字串只有在真的改名的時候才 12/07 09:41
52F:→ shooter555: 會修改 12/07 09:41
53F:→ flash5408: 這種code review 跟 test都沒抓出來是整個公司的問題 12/08 17:19
54F:→ flash5408: 吧 12/08 17:19
55F:推 MartinJ40: 嗆 我喜歡 12/08 18:06
56F:推 Jonny5: 笑死 12/30 18:34