🔥 PTT.BEST 熱門專區 💬 八卦 Gossiping 😊 希洽 C_Chat 💰 股票 Stock 🏠 房屋 home-sale 🏀 美國職籃 NBA ⚾ 棒球 Baseball 👛 省錢 Lifeismoney 🚗 汽車 car 😡 政黑 HatePolitics 💻 電蝦 PC_Shopping 🥰 韓星 KoreaStar ✨ 英雄聯盟 LoL 🍿 電影 movie 🪖 軍事 Military 📡 通訊 MobileComm 🏀 台籃 basketballTW 🍼 寶媽 BabyMother 🇯🇵 日旅 Japan_Travel 🏭 科技 Tech_Job 👧 女孩 WomenTalk 👻 媽佛 marvel 💳 卡版 creditcard 👉 NS NSwitch 👉 PS5 PlayStation 👉 大氣 TY_Research 👉 婚姻 marriage 👉 台南 Tainan 👉 台中 TaichungBun 👉 Steam Steam 👉 高雄 Kaohsiung 👉 羽球 Badminton 👉 超商 CVS 👉 米哈遊 miHoYo 👉 iOS 👉 兄弟 Elephants 👉 日劇 Japandrama 👉 玄幻 CFantasy 👉 ES e-shopping 👉 WOW 👉 遊戲交易 Gamesale 👉 4X BaseballXXXX 👉 Lakers 👉 韓劇 KoreaDrama 👉 汽車買賣 CarShop 👉 機車 biker 👉 新竹 Hsinchu 👉 美保 BeautySalon 👉 串流 OTT 👉 歐美影集 EAseries 👉 手機交易 mobilesales 👉 健身 MuscleBeach 👉 MacShop 👉 Lions 👉 FGO FATE_GO 👉 中劇 China-Drama 👉 數位貨幣 DigiCurrency 👉 暗黑 DIABLO 👉 實習教師 studyteacher 👉 航空 Aviation 👉 藝文票券轉售 Drama-Ticket 👉 韓綜 KR_Entertain 👉 美妝 MakeUp 👉 速食 fastfood 👉 手錶 watch 👉 體適能 FITNESS 👉 攝影 DSLR 👉 Headphone 👉 嘻哈 Hip-Hop 👉 轉珠 PuzzleDragon 👉 美食 Food 👉 蔚藍 BlueArchive 👉 數位相機交易 DC_SALE 👉 筆電蝦 nb-shopping 👉 軟工 Soft_Job 👉 汪踢 Wanted 👉 台綜 TW_Entertain 👉 坂道閒聊 SakaTalk 👉 貓咪 cat 👉 日GO BabyProducts 👉 TypeMoon 👉 MLB 👉 職場 Salary 👉 臺劇 TaiwanDrama 👉 海賊王 ONE_PIECE 👉 PMGO PokemonGO 👉 國營 Gov_owned 👉 碧航 AzurLane 👉 家電 E-appliance 👉 布蘭德 Brand 👉 DMMG DMM_GAMES 👉 贈送 give 👉 神魔 ToS 👉 銀行服務板 Bank_Service 👉 原創 YuanChuang 👉 期權 Option 👉 重機 SuperBike
※ 引述《neo5277 (I am an agent of chaos)》之銘言: : 純粹對工作上來說 : 好抽換,好接手(易閱讀),好維護(包含升級,測試 好接手,易閱讀… 我想到一個故事 幾年前有個同事,號稱國中時期就開始接案寫代碼 clean code,DDD滾瓜爛熟,對coding極度潔癖 印象比較深的是入職時說了句:我看到不規範的代碼會非常生氣 上工第一案子,設計一個工具網站,拆了七個GitHub repo Micro services, grpc當年流行的工具全套了一輪 說是將低耦合,高內聚做到極致 其中一個repo 甚至只放了一個utils 後來來了另一個人接手 改個功能要先看懂七個repo之間關聯,跟找大秘寶似的 在review code階段,還埋個彩蛋,發現了隱藏的第八個repo 新來的同事說改不動了,就算加個menu都很麻煩 心一橫,提案該網站功能也不複雜,全部打掉重做 就自己埋頭花了兩週重做了那個網站加遷移 工程師追求的很簡單,(自己)好閱讀,(自己)好維護就行了 ----- Sent from JPTT on my iPhone -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 123.194.179.86 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/Soft_Job/M.1746572988.A.7B5.html
marra: 推"尋寶遊戲"!XD 05/07 07:23
nh60211as: 確實,設計得亂七八糟但是連文件都不寫 05/07 07:27
lianpig5566: 尋寶XDD 05/07 08:11
gname: 哇... 高內聚低耦合已經不知道多少年沒聽到了... 05/07 08:35
Ekmund: 那依然是個很好的概念 只是要知道 過猶不及R 05/07 09:30
Lordaeron: [自己] 是對的。 05/07 09:43
kurtsgm: 這種就Overengineering 我之前遇過一個同事也這樣 05/07 09:50
kurtsgm: 要維護這種code有夠痛苦 跟義大利麵code半斤八兩 05/07 09:51
VScode: 我最後trace code是用全域搜尋 懶得找定義了 根本找不到 05/07 10:32
ypps6055: 這種設計以我的認知,根本不算好閱讀好維護,有些人曲 05/07 11:21
ypps6055: 解這個意思了 05/07 11:21
ypps6055: 過度拆分本身就導致維護管理困難,要跨一堆專案來看更 05/07 11:24
ypps6055: 稱不上好閱讀,有的人會因為書上或個人的強迫症導致變 05/07 11:24
ypps6055: 成這樣然後認為自己的東西很簡潔乾淨 05/07 11:24
accessdenied: 現在一堆人跟風什麼都 DI,全部都是 interface 找 05/07 11:44
accessdenied: 不到實作,找到後也會發現99%根本只有一個 class 05/07 11:44
accessdenied: 實作,浪費後人多少生命時間。 05/07 11:44
accessdenied: 而且 DI 的存在不就是為了單元測試隔離相依?結果這 05/07 11:44
accessdenied: 99%寫 DI 的專案裡根本完全沒有單元測試的專案!媽 05/07 11:45
accessdenied: 的寫心酸的喔? 05/07 11:45
TPAsavelove: 老實說我是覺得開發時程吃緊根本不用做什麼interface 05/07 12:21
TPAsavelove: 功能穩定跟拆多少沒太多關係... 05/07 12:21
lonelytea: 這篇真的有寫實 05/07 12:39
zyxx: 沒文件的專案都是大便 文件很爛的專案跟大便沒兩樣 05/07 12:40
ck237: 推 尋寶遊戲 05/07 12:45
stepnight: 太真實 05/07 12:51
Lhmstu: 尋寶遊戲,笑死 05/07 13:04
Lipraxde: over design 了 05/07 13:07
k7ji91ab5m: 確實是過油不及啦 還是要抓平衡 05/07 14:09
kuosos520: 我最怕遇到接手一大堆搞自動化Gen code的神人專案 05/07 14:13
kuosos520: ,每次要改都不知道從哪裡改,結論就是一路擺爛到 05/07 14:13
kuosos520: 重構 05/07 14:13
tofuflower: 如果改一個功能七個 repo 都要動,那叫做高耦合。高 05/07 14:42
tofuflower: 內聚低耦合不是這樣搞的 05/07 14:42
ssccg: DI並不需要拆interface,最基本的用途應該是讓物件生命週期 05/07 14:42
ssccg: 能跟著某個context又不用自己new,倒不完全是為了測試 05/07 14:42
ssccg: interface都是等有第二種實作再重構抽的 05/07 14:43
SHANGOYANYI: 他可能以前是寫ejb的… 05/07 14:48
kattte: 我也遇過一個,做了三個月,產出0,整天跟人吵架 05/07 15:50
devilkool: .NET的Mock Library幾乎都只能Mock interface跟 05/07 17:38
devilkool: virtual method,不然我也不想弄這麼多interface 05/07 17:39
strlen: 改個東西要了解七大密寶叫什麼低耦合?這完全是人的問題 05/07 17:55
strlen: 低耦合的標準 其實就看程式語言本身的功能就懂啦 05/07 17:56
strlen: 每天都在用一堆內建函式 完全不需要理解函式怎麼運作的吧 05/07 17:59
strlen: 只要知道用它會發生啥事就好 每個模組就應該設計成這樣 05/07 17:59
strlen: 沒辦法達成這種效果 低耦合都馬自己講 05/07 18:00
strlen: 所以之前才說 要搞敏捷 搞agile 搞clean code 搞設計模式 05/07 18:00
strlen: 不是你說了算 你說clean就clean?是要大家來吵架決定的 05/07 18:01
strlen: 真正好維護的code 就是團隊緊密溝通(吵架)才弄得出來的 05/07 18:02
strlen: 但是齁 基本上工程師都馬文人相輕啦 看不起別人 都覺得別 05/07 18:02
strlen: 人寫得都垃圾 又自以為最聰明 其它人都低能 大頭症工程師 05/07 18:02
strlen: 滿街都是 這樣態度要合作?要吵架?有得吵了 呵呵 05/07 18:03
strlen: 吵到最後還有EQ不好的開始砍人勒 怕爆 05/07 18:03
qwe78971: 兩週的工作量 可以弄到8個 也是人才 05/07 18:56
luke72: 這個設計是為了以後團隊成長到幾萬人在開發這個專案 05/07 20:05
internetms52: 很同意前幾樓說的,DI本來可以方便測試,結果一個 05/07 20:07
internetms52: 測試也沒見到,XD 05/07 20:07
luke72: 8個repo算少了,我接手過一個single page app快100 repo 05/07 20:08
luke72: 大量的DI,說要重複使用,各種抽換 05/07 20:10
luke72: 結果連angular升版都做不到,整個砍掉重做 05/07 20:11
luke72: (原作者做不到) 05/07 20:11
abccbaandy: 拆越多通常問題也越多,比那種幾千行的還難維護 05/07 21:50
brianwu1201: 尋寶遊戲,笑死 05/07 22:12
superpandal: 功能本來就要做成顯示調用 隱藏實作細節的沒有不是垃 05/07 22:54
shooter555: 等到規模夠大才有差 05/07 22:56
superpandal: 圾的 難以追蹤也學不到東西 很可惜很多語言的DI是隱 05/07 22:56
superpandal: 式的 好的程式就是minimal外加不寫死保留點彈性 05/07 22:58
superpandal: 簡單來講就是可愛 但不利不被取代 主要是做成lib而非 05/07 23:02
superpandal: 弄微服務 這東西多數人用不到 全用http也很驚悚 05/07 23:04
viper9709: 這種就標準過度設計,殺雞用牛刀... 05/08 00:20
umidaisuki: 這篇很寫實XD 05/08 00:22
yuidzeon: 我超討厭微服務的 服務夠大就會拆部門了啊 等到那時候再 05/08 00:23
yuidzeon: 拆就好了 除非是業務需求需要切出去 (例如某個服務預期 05/08 00:23
yuidzeon: 會有大量流量要擴展) 現在一堆為拆而拆的 真的找 log 都 05/08 00:23
yuidzeon: 跟在找大秘寶一樣... 05/08 00:23
saladim: 會寫function+struct就很神了 真的 不止寫code 還有一堆 05/08 02:52
saladim: 流程之神 加個三層檢查才能進code, 解個bug開新branch 搞 05/08 02:54
saladim: 很多毛 有兩層做的有效的話就很好了 05/08 02:55
leftless: cleancode前幾頁就說寫程式是社交活動 然後他只會生氣 05/08 03:04
leftless: 叫他會去重看 05/08 03:05
marra: "是要大家來吵架決定的" XD 05/08 04:17
strlen: 我自己是覺得不要眼高手低啦 能讓你慢慢吵架寫一個超讚程 05/08 10:28
strlen: 式的環境幾乎不存在 大家平常忙死了誰要管你啊 如果你是香 05/08 10:29
strlen: 香妹子工程師那還願意花點時間跟你交流交流 但平常遇到都 05/08 10:29
strlen: 馬肥宅佔九成 說個話都能聞到口臭 誰想蕉流 05/08 10:30
strlen: 所以還是照著團隊的寫法跟著寫 絕不會錯 05/08 10:30
strlen: 大家怎麼寫 你就模仿大家怎麼寫 不要在那邊亂 標新立異 05/08 10:31
strlen: 要搞東搞西你的理想國自己side project愛怎玩就怎玩 05/08 10:31
gino0717: 桑原老師說過 架是要兩個人才能吵的 05/08 11:55
Suleika: 這就是標準的over design看過書不可能做出這種東西 05/08 12:36

👉 軟工 Soft_Job 版:熱門文章

👉 軟工 Soft_Job 版:更多文章