Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
為何技術老人這樣想那樣做?
Search
Caesar Chi
August 12, 2023
Technology
1
2.5k
為何技術老人這樣想那樣做?
從技術前輩的視角理解技術決策,從技術前輩的視角理解技術決策,技術世界的不斷變化,工程師的智慧決策之道,理解工程師心路歷程通道,從技術架構到技術選題的考量,邁向真正的資深工程師。
Caesar Chi
Caesar Chi
August 12, 2023
Tweet
Share
More Decks by Caesar Chi
See All by Caesar Chi
你所知道或不知道的 LINE Scheme
clonn
0
34
從 Gemini API 到 LINE Bot
clonn
0
510
Other Decks in Technology
See All in Technology
適材適所の技術選定 〜GraphQL・REST API・tRPC〜 / Optimal Technology Selection
kakehashi
1
150
Lambda10周年!Lambdaは何をもたらしたか
smt7174
2
110
ExaDB-D dbaascli で出来ること
oracle4engineer
PRO
0
3.8k
EventHub Startup CTO of the year 2024 ピッチ資料
eventhub
0
110
Incident Response Practices: Waroom's Features and Future Challenges
rrreeeyyy
0
160
AWS Lambda のトラブルシュートをしていて思うこと
kazzpapa3
2
170
元旅行会社の情シス部員が教えるおすすめなre:Inventへの行き方 / What is the most efficient way to re:Invent
naospon
2
330
【Startup CTO of the Year 2024 / Audience Award】アセンド取締役CTO 丹羽健
niwatakeru
0
860
CysharpのOSS群から見るModern C#の現在地
neuecc
1
3.1k
Shopifyアプリ開発における Shopifyの機能活用
sonatard
4
250
AIチャットボット開発への生成AI活用
ryomrt
0
170
iOSチームとAndroidチームでブランチ運用が違ったので整理してます
sansantech
PRO
0
120
Featured
See All Featured
Rails Girls Zürich Keynote
gr2m
94
13k
A Philosophy of Restraint
colly
203
16k
Bootstrapping a Software Product
garrettdimon
PRO
305
110k
Docker and Python
trallard
40
3.1k
Mobile First: as difficult as doing things right
swwweet
222
8.9k
Facilitating Awesome Meetings
lara
50
6.1k
How to Ace a Technical Interview
jacobian
276
23k
5 minutes of I Can Smell Your CMS
philhawksworth
202
19k
Speed Design
sergeychernyshev
24
610
Why You Should Never Use an ORM
jnunemaker
PRO
54
9.1k
Into the Great Unknown - MozCon
thekraken
32
1.5k
Adopting Sorbet at Scale
ufuk
73
9.1k
Transcript
Caesar Chi 2023/08 為何技術老⼈這樣想那樣做? 從技術前輩的視⾓理解技術決策
Caesar Chi clonncd
Caesar Chi 2.0 @clonncd @clonn
AI for Dev 社群
議題 • 技術世界的不斷變化 • ⼯程師的智慧決策之道 • 理解⼯程師⼼路歷程通道 • 從技術架構到技術選題的考量 •
邁向真正的資深⼯程師
技術世界的不斷變化
None
None
None
⼈⽣唯⼀不變的 就是變
⼈⽣唯⼀不變的 就是變 擁抱改變,邁向改變
追求卓越,擁抱改變
None
遠離惡,迎向善 ⾒賢思⿑,⾒不賢內⾃省
舉例 Github
10 年前: 全球最⼤⼯程師交友網站
前端摩爾定律
前端摩爾定律 每隔 18 個⽉ 前端複雜度將會增加⼀倍
https://www.monocubed.com/blog/best-front-end-frameworks/
前端摩爾定律 每隔 18 個⽉ 前端複雜度將會增加⼀倍 擁抱改變,邁向卓越
理解⼯程師⼼路歷程
每個卓越⼯程師都是如此的與眾不同
⼀個 AM ⼀個 FM,⼤家的頻道都不同 因此⼤家的頻率也有所不同
對於同⼀個服務,要怎麼架構 ⼀百個⼈⼼中有⼀百個哈姆雷特
對於同⼀個服務,要怎麼架構 總有不同看法
客觀⾓度,採⽤『比較舉證』分析
主觀評斷同時也存在著 客觀⾓度,採⽤『比較舉證』分析
主觀評斷同時也存在著
主觀評斷同時也存在著
同時也存在著主觀評斷
同時也存在著主觀評斷
同時也存在著主觀評斷 更不⽤說那⼀切的不理智 及理智
同時也存在著主觀評斷 更不⽤說那⼀切的不理智
不理智 及理智 • 項⽬需求與⽬標 • 技術成熟度 • 相容性 • 可擴展性與靈活性
• 成本效益 • ⼈才與技能匹配 • 法規與合規性 • 社群與供應商⽀援 • 未來可持續發展性 • 測試和部署的便利性 更不⽤說那⼀切的
⾝為⼯程師,我們都很希望⽤ 全新技術,打造最威的服務
⾝為⼯程師,我們都很希望⽤ 全新技術,打造最威的服務 無奈現實不允許
None
Junior Developer 持續學習技術,實踐技術
Junior Developer: 像海綿般,持續吸收 滿⾜安全需求,實現⾃我
Senior Developer: 被需要感,被尊重感,⾃我實現
Senior Dev: 試著向上(下)提案 企圖實現⾃我
提案者與決議者思考⾓度
⾝為提案者 • 有需要改 • 專注細節 • 如何執⾏ • 個⼈利益,團隊利益 ⾝為決議者
• 有無需要改? • 專注戰略 • 如何永續 • 資源分配,成本效益
⾝為提案者 • 有需要改 • 專注細節 • 如何執⾏ • 個⼈利益,團隊利益 ⾝為決議者
• 有無需要改? • 專注戰略 • 如何永續 • 資源分配,成本效益 當兩者談不下去時 容易陷入僵局
⾝為提案者 • 有需要改 • 專注細節 • 如何執⾏ • 個⼈利益,團隊利益 ⾝為決議者
• 有無需要改? • 專注戰略 • 如何永續 • 資源分配,成本效益 對⽅是⽩癡 對⽅是⽩癡
⾝為提案者 • 有需要改 • 專注細節 • 如何執⾏ • 個⼈利益,團隊利益 ⾝為決議者
• 有無需要改? • 專注戰略 • 如何永續 • 資源分配,成本效益 如何換位思考,進⾏說服
⾝為提案者 • 有需要改 • 專注細節 • 如何執⾏ • 個⼈利益,團隊利益 ⾝為決議者
• 有無需要改? • 專注戰略 • 如何永續 • 資源分配,成本效益 如何換位思考,進⾏說服 提案者要建構⾜夠信任
何謂信任感?
⾝為提案者 • 我是誰 • 企劃規劃,盤點規劃 • 現有資源,執⾏步驟 • 建立⼝碑,完成使命 ⾝為決議者
• 你是誰? • 你想做什麼? • 你做得到嗎? • 交給你有風險嗎?
有的時候不是提案不好
有的時候不是提案不好 是,你不好
有的時候不是提案不好 是,你不好 • 信任度 • 成熟度 • 穩定度 • 執⾏度
因此 同樣的提案 不同的⼈提議,會有不同效果
每個⼈說話份量,本就不同 命,本就不由我
運,掌握於我
如果你真的很愛這⾨技術 超級想推廣此技術
思考的⽅式 『如何達到⽬的』
思考的⽅式 如何達到⽬的 ⽽不是 如何,我,達到⽬的 找到適合的切入點
1. 找到適合的切入點 2. 找到『適合的⼈』 3. 或者擔任那位『沒有⼈』 看準時機,找到出⼿點
那些技術債 所不愛的東⻄
每個上線的服務 背後總有說不清的⾎淚
到處都是壞味道 Bad smell
到處都是壞味道 Bad smell
知道就是要改
知道就是要改 我也知道...
無奈真的太多
要改的東⻄太多 那就改天吧
None
時空背景 技術迭代 架構選題
時空背景 技術迭代 架構選題
當然 無知 或 視⽽不⾒ 也是肇因之⼀ 《知識的假象》:無知並不可怕,⾃我感覺良好的幻覺才是
當然 無知 或 視⽽不⾒ 也是肇因之⼀ 但,這群⼈不在我們今天討論範圍
既有架構的改變流程
1. 取得共識, 讓夥伴認同,⼀起進⾏改善 2. 改變⾃⼰, 從⾃⾝習慣做起,影響他⼈ 3. 改變他⼈, 讓共識得以持續 你可以這麼做
1. 取得共識, 讓夥伴認同,⼀起進⾏改善 2. 改變⾃⼰, 從⾃⾝習慣做起,影響他⼈ 3. 改變他⼈, 讓共識得以持續 你可以這麼做
1. 取得共識, 讓夥伴認同,了解調整到 Model 層 的好處以及這是現在及未來趨勢。 2. 改變⾃⼰, 經⼿ feature
相關檔案,直接進⾏ Model 調整,讓其他⼈ Code review 3. 改變他⼈, 將 Model 的調整視為 Spec 之⼀, 當 code review 或者程式交付時,讓 Model 的 整理成為嚴守底線 舉例: 讓儲存的統⼀於 Model 層
上述項⽬需要取得上層授權 同時取得集體共識 此時建議要具備成本結構
None
嬰兒期: 可⾏,快速因應調整 成長期: 思考,需拿捏改動時機點,機會成本考量 成熟期: 可⾏,持續進⾏優化,企圖尋找擴張點 衰退期: 不可⾏,產品進入退縮階段,優化效益過低
⾯對架構改善, 試著思考幾個問題 1. 有沒有比這個更重要,更急的事情? 2. 現在做了會有什麼影響? 3. 現在不做會有什麼影響? 4. 有沒有更簡單的做法?
最佳程式碼 • 技術架構到技術選題的考量
最佳程式碼 Short Code is better
最佳程式碼 Short Code is better NO Code is the BEST
AI ⽣成,從多語⾔到程式語⾔ 程式語⾔可能不需要透過各位編寫
開發⼈員更需要具備抽象轉為具象的思考 執⾏項⽬前進⾏具體 PDCA
https://githubnext.com/projects/copilot-voice/ Type less, code more
邁向真正的無碼化 程式碼都透過 AI ⽣成 開發者真正的價值在於抽象與具象化之間轉換
技術者 終其⼀⽣都在追求
https://www.moedict.tw/%E7%A5%9E%E4%B9%8E%E5%85%B6%E6%8A%80
神乎 其技 DDD Deadline driven Development
任務難度 拖延程度 筏值 筏值 放棄
任務難度 拖延程度 筏值 筏值 放棄
避免讓⾃⼰陷入放棄
先從已知的已知建立起習慣
先從已知的已知建立起習慣 已知的未知
None
隨⼿清理程式債(垃圾) 養成好習慣
隨⼿清理程式債(垃圾) 隨⼿做功德
學習 n 項技術 技術⽂件程式碼閱讀
學習的歷程
Online Course 老⼈: 書籍 年輕: 影⾳,線上課程,Tiktok
從⽂字年代到影⾳年代 老實說,⾃⼰也還在適應
程式會改版,⽂件也會 但,課程可能不會
我們會透過 Google 茫茫⼤海的尋找⽅向
⽂件通常有最佳解 https://vuejs.org/guide/introduction.html https://vuejs.org/api/ https://react.dev/learn https://react.dev/reference/react
⽂件與程式碼有差異 Issue & Source code 能求解 https://github.com/vuejs/core/issues
⽂件與程式碼有差異 Issue & Source code 能求解 https://github.com/vuejs/core/issues
⽂件與程式碼有差異 Issue & Source code 能求解 https://github.com/vuejs/core/issues
習慣,感受 閱讀程式碼的快樂
Source code + git log
Source code + git log
None
Source code + git log
Source code + git log
因此 讀書的重要性 ⼼中從有碼到無碼之路 只有從深入閱讀,才能了解技術之美
試著 閱讀程式碼 開放⾃⼰的程式碼 ⼼中從有碼到無碼之路 只有從深入閱讀,才能了解技術之美
最後總結
⼀,命 ⼆,運 三,風⽔ 四,積陰德 五,讀書
⼀命,天⽣註定但努⼒可調 ⼆運,掌握在⾃⼰⼿上,努⼒爭取 三風⽔,了解整體局⾯,找到適合切入點 四積陰德,隨⼿修代碼,留給更好的下⼀代 五讀書,⽂件程式碼的閱讀,⾃我修養的成長 Junior Dev Senior Dev
Q&A Thank you AI for Dev jsdc.tw FB: Coding bear
AI for Dev 社群