$30 off During Our Annual Pro Sale. View Details »
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
As an Engineers, let's build the CRM system via LINE Official Account 2.0
clonn
1
590
你所知道或不知道的 LINE Scheme
clonn
0
52
從 Gemini API 到 LINE Bot
clonn
0
540
Other Decks in Technology
See All in Technology
AWS re:Invent 2024 予選落ちのBedrockアプデをまとめて解説!
minorun365
PRO
2
230
241130紅白ぺぱ合戦LT「編集の技術」
toya524287
5
570
RDRAとLLM
kanzaki
4
490
データ共有による新しい価値の創造
iotcomjpadmin
0
300
Postman Flowsで作るAPI連携LINE Bot
miura55
0
220
レガシーシステムへのDatadog APM導入奮闘記
mtakeya4062
0
130
全社員に向けて生成AI活用を促進!~電通総研の生成AI活用ロードマップ~
iotcomjpadmin
0
290
マルチプロダクト、マルチデータ基盤での Looker活用事例 〜BQじゃなくてもLookerはいいぞ〜
gappy50
0
120
Entra ID の基礎(Japan Microsoft 365 コミュニティ カンファレンス 2024)
murachiakira
3
2.1k
GPUと画像生成AIが拓くマーケティングとビジネスの未来:次世代の可能性
iotcomjpadmin
0
300
サービスの拡大に伴うオペレーション課題に立ち向かう / 20241128_cloudsign_pdm
bengo4com
0
770
徹底解説!Microsoft 365 Copilot の拡張機能 / Complete guide to Microsoft 365 Copilot extensions
karamem0
1
1.6k
Featured
See All Featured
Rebuilding a faster, lazier Slack
samanthasiow
79
8.7k
Code Reviewing Like a Champion
maltzj
520
39k
How GitHub (no longer) Works
holman
310
140k
Navigating Team Friction
lara
183
15k
Faster Mobile Websites
deanohume
305
30k
Measuring & Analyzing Core Web Vitals
bluesmoon
4
150
Being A Developer After 40
akosma
87
590k
5 minutes of I Can Smell Your CMS
philhawksworth
202
19k
The Illustrated Children's Guide to Kubernetes
chrisshort
48
48k
Into the Great Unknown - MozCon
thekraken
33
1.5k
Making the Leap to Tech Lead
cromwellryan
133
8.9k
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
28
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 社群