Re: [討論] 怎樣算是一個合格的junior cpp programme

作者: strlen (strlen)   2022-08-22 12:11:33
※ 引述《musashi023 (太陽魚)》之銘言:
: Senior:
: 1. 能設計軟體架構
: 2. 活用design pattern
先說
我不會寫C++
但是關於軟體架構和Design Pattern我可以補充一下
軟體架構實際上在台灣多數職場裡的狀況
大概可以用一句話來形容
理想很飽滿、現實很骨感
學習怎麼設計架構和Design Pattern當然是一件好事
這些工具放入你的工具箱裡
不只代表你會使用這些工具
而且你還具備了「知道這世界上存在這些工具」的概念
看起來好像是廢話
但其實這麼多年看下來
很多工程師甚至連有Design Pattern這些工具都不知道
或者只是稍微聽過但因為各種原因沒有深入理解
你看到這裡可能會覺得奇怪
你明明問的是學這些算不算senior
但我怎麼開始提「其它人」或「職場狀況」?
因為
其實重點就在「其它人」身上
我挑明了說
軟體架構和Design Pattern
絕大部份時間不是工程問題
是政治問題
除非你進的公司只有你一個工程師
或你是帶頭的底下只有一兩個工程師
而且他們唯你是從
不然你要討論架構
或是什麼地方該用哪一種DP
我的經驗是
到最後都會淪為某種形式的政治角力
如果組織大一點
一切都要看那些資深老屁股們願不願意聽你的話
你如果想把一個模組重構
最好是先說服其它人再開始幹
事實上
所有關於這類架構方面的東西
通通都是需要團隊先溝通過
大家都OK願意照著開會所訂出來的規範走
最後才可能會有比較好的結果
不然很可能會變成最常見的狀況
就是大家各自為政
想怎麼改就怎麼改
每個人都自成一派
架構就變得亂七八糟
而做review的人很可能也不具備判斷其它工程師設計的架構到底是好是壞的能力
所以就亂review一通
最後系統變得四不像
每個地方的寫法慣例都不一樣
然後主管看導入這些有的沒的根本沒有比較好
接著就放棄繼續使用DP或其它一些架構方面的工具了
這也才是架構與DP最困難也最精華的地方
不是學習怎麼使用
是學習什麼時候什麼場合該用
甚至是學習怎麼說服別人一起來使用
你要真正學好這些東西
你永遠都要把這個概念放在心底
架構永遠是人的問題
不會只是工具的問題
解決人的問題就解決八成了
剩下的就是執行面的細節而已
這真的簡單多了
作者: wulouise (在線上!=在電腦前)   2022-08-22 12:17:00
design pattern是用來降低溝通成本的,用之前大家都要會
作者: forself (無所得、故有)   2022-08-22 13:03:00
問題是在於讓所有人信仰同一種design pattern本身就是巨大的溝通成本與風險實務上常常會變成核心共用部分可能協調成功,但其他部分依然是各種信仰與無信仰的展示
作者: eric21489 (Calpis)   2022-08-22 13:11:00
推ID
作者: chinggoo (Leo)   2022-08-22 15:11:00
推理想飽滿,現實骨感
作者: sanctitysky (常自在)   2022-08-22 17:54:00
老鳥一句別找麻煩 整個東西就不用玩了
作者: wulouise (在線上!=在電腦前)   2022-08-22 19:09:00
大家都知道就是好的開始,爭執那個對就算了
作者: v9290026 (CH)   2022-08-22 19:18:00
作者: pttano (pttano)   2022-08-22 19:52:00
一天到晚都在重構,你的績效怎麼打?
作者: labbat (labbat)   2022-08-22 21:19:00
資深同事會用自創名詞迷惑眾人,溝通手段就是讓所有人轉暈目的就可偷渡達成了
作者: AvatarH (Avatar Hsieh)   2022-08-23 21:43:00
推 "政治問題" 這句
作者: leo5916267 (小葉)   2022-08-24 00:20:00
真的 溝通是最難的而且通常工程師的個性都是比較固執的 與其練design pattern 還不如練情商
作者: peter98 (新兵)   2022-08-24 09:06:00
說真的 重構沒績效 還是做新features比較快升官
作者: nmns0110 (奶油塔)   2022-08-24 15:00:00
推政治問題
作者: superpandal   2022-08-25 22:00:00
這東西其實就是battle用 雖然我幾乎不battle 只在乎一個架構或工具能不能讓自己做一天休息好幾天 不能的話只能說gg多數都是不能 都用的很痛苦...

Links booklink

Contact Us: admin [ a t ] ucptt.com