看板 Soft_Job 關於我們 聯絡資訊
※ 引述《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://www.ptt.cc/bbs/Soft_Job/M.1638510605.A.DCB.html
masturbateee: 真正的「解決不了問題就解決製造問題的人」 12/03 13:54
tbpfs: 你認真了,網路查一下這個ID,就知道是廢文產生機 12/03 13:55
tbpfs: 然後他應該也看不懂你在寫什麼 12/03 13:56
nh60211as: 別這麼火爆 12/03 13:57
loadingN: 我覺得你的例子很好 12/03 14:14
dati: 你舉的例子真超好,但粗暴語言 DUCK不必 12/03 14:18
bill0205: 你幹嘛認真XDD 12/03 14:22
airtsubasa: 這例子不是僅在view且display做替換就好? 12/03 14:34
Firstshadow: 好好笑== 不過例子就是鮮明實在點好 12/03 15:55
(づ′・ω・)づ 你的推文怎麼沒有這個了? ※ 編輯: gasbomb (1.34.216.106 臺灣), 12/03/2021 16:11:42
Firstshadow: 在Job版要專業一點ㄚ 對ㄚ== 12/03 16:20
Firstshadow: (づ′・ω・)づ .. 12/03 16:23
sniper2824: 為什麼要回廢文 這人就是來鬧的而已 12/03 17:03
DarkIllusion: workaround 的例子舉得很好 滿分 12/03 17:05
Nonegrame: 笑死 我要看到血流成河 12/03 17:26
ricky155030: 推你的workaround 12/03 18:01
Raymond0710: XD 廢文也能吊出認真文 好例子給推 12/03 18:38
VF84: 他要是去寫 Rust,大概會想直接登出人生 www 12/03 18:54
andy831020: 讚讚讚 12/03 19:07
argc: 好例子 12/03 19:30
BigCockman: 最後一段XD 12/03 19:53
zero11995: 哈哈哈哈哈 12/03 20:14
superpandal: 例子很好??? 這是人的問題吧 應該要有自我要求寫出好 12/03 20:56
superpandal: code 12/03 20:56
superpandal: python就是這樣動態語言黑魔法消失了 12/03 20:57
superpandal: 一個語言不會因為有了規範就不會被人寫成一駝屎 12/03 21:06
lturtsamuel: 有ㄚ 如果你用rust不可變引用傳進去看你怎麼改 12/03 22:26
lturtsamuel: 不像c強制轉型一下就好了 codereview看起來也不明顯 12/03 22:27
viper9709: 推這篇 12/03 22:48
jhjhs33504: 這例子破綻其實一樣沒分是get還set實務上語言規範會擋 12/03 23:07
Lhmstu: 寫實workaround 12/04 08:52
ADEMAIN: 笑死 12/04 08:54
rog43: 你好兇喔 但是我喜歡 12/04 09:14
kkes0001: 凶 12/04 12:15
sjensen: 推例子 12/04 12:39
vi000246: XDDDDDDD 12/04 13:54
charliebitme: 好兇lol 真的人如其名gasbomb 12/05 00:31
claymath: 好派 12/05 04:46
a731977: 推 12/05 17:33
ftrhalcyon: 專業舉例 12/05 20:20
cha122977: Workaround滿分 12/05 22:10
GTX9080: 好兇 但我喜歡XD 12/06 01:11
amiwry: 舉例很好,這陣子也被類似事情雷到,哎 12/06 12:18
superpandal: 引用也很常見 12/06 21:35
shooter555: 這只是套用進最差的使用情況 12/07 09:26
shooter555: 在functional的程式設計中 不改動原值 確保重複執行某 12/07 09:29
shooter555: func所得的值是相同 但OOP裡面沒這麼強調的情況 改動 12/07 09:31
shooter555: 原值是常見的作法 12/07 09:31
shooter555: 另外一方面 改動原值可以不用重複的挖取記憶體 12/07 09:32
shooter555: 以此篇例子不管有沒有字串有沒有保護 解法應該都不是 12/07 09:40
shooter555: 改動原本字串 原本的名子字串只有在真的改名的時候才 12/07 09:41
shooter555: 會修改 12/07 09:41
flash5408: 這種code review 跟 test都沒抓出來是整個公司的問題 12/08 17:19
flash5408: 吧 12/08 17:19
MartinJ40: 嗆 我喜歡 12/08 18:06
Jonny5: 笑死 12/30 18:34