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
33
從 Gemini API 到 LINE Bot
clonn
0
490
Other Decks in Technology
See All in Technology
次は君だ。~Japan AWS Jr. Champions 受賞までの奇跡~
fukuchiiinu
0
120
最新のWasm事情
askua
5
2.5k
JAWS-UG 事務局 の「これまで」から みんなで「ここから」を考えよう
miu_crescent
2
140
RSGT Walk Through
kawaguti
PRO
2
400
テクニカルライターのチームで「目標」をどう決めたか / MVV for a Team of Technical Writers
lycorptech_jp
PRO
3
160
Covariance, Contravariance & Diamond
alexdaubois
1
120
Oracle Cloud Infrastructure:2024年10月度サービス・アップデート
oracle4engineer
PRO
0
190
RDS for Db2 データ移行編 - Part2:S3経由のバックアップ・リストアでデータ移行 /20241011-RDSforDb2-dojo
mayumihirano
0
140
エンジニア向け会社紹介資料
caddi_eng
14
270k
俺とVSCode Python Debugger Extension
sat
PRO
1
150
Oracle Base Database Service 技術詳細
oracle4engineer
PRO
5
48k
VueとViteで作るUIコンポーネントライブラリ ~デザインシステムとプロダクトの理想的な分離を目指して~ / 20241019_cloudsign_VueFesJapan2024_1
bengo4com
8
4.5k
Featured
See All Featured
Agile that works and the tools we love
rasmusluckow
327
21k
Practical Orchestrator
shlominoach
186
10k
Raft: Consensus for Rubyists
vanstee
136
6.6k
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
504
140k
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
327
21k
XXLCSS - How to scale CSS and keep your sanity
sugarenia
246
1.3M
Music & Morning Musume
bryan
46
6.1k
A Philosophy of Restraint
colly
203
16k
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
4
260
GraphQLとの向き合い方2022年版
quramy
43
13k
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
31
2.6k
Bootstrapping a Software Product
garrettdimon
PRO
305
110k
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 社群