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
32
從 Gemini API 到 LINE Bot
clonn
0
490
Other Decks in Technology
See All in Technology
寒冷地稲作の歴史にみるコミュニティ
miu_crescent
2
120
エムスリー全チーム紹介資料 / Introduction of M3 All Teams
m3_engineering
1
330
Amazon CloudWatchで小さく始めるWebサービスのオブザーバビリティ / How to start Observability for Web Sevices with Amazon CloudWatch
sms_tech
3
110
Applied NLP with LLMs: Beyond Black-Box Monoliths
inesmontani
PRO
0
100
テクニカルライターのチームで「目標」をどう決めたか / MVV for a Team of Technical Writers
lycorptech_jp
PRO
3
130
それでもやっぱり ExpressRoute が好き!
skmkzyk
0
410
【㈱アイモバイル】エンジニア向け会社説明資料
imobile
0
470
Cosmos DB で持続可能な RAG を実現しよう!~ AOAI Dev Day ふりかえりを添えて / Sustainable RAG with Cosmos DB with recap AOAI Dev Day
miyake
0
130
これはPerl? それともRuby? クイズ〜〜〜〜〜!!!- Perl or Ruby Quiz
moznion
2
2k
Databricks Appのご紹介
databricksjapan
0
400
Webセキュリティのあるきかた
akiym
32
11k
シェルとPerlの使い分け、 そういった思考の道具は、どこから来て、どこへゆくのか?v1.1.0
fmlorg
0
570
Featured
See All Featured
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
355
29k
Pencils Down: Stop Designing & Start Developing
hursman
119
11k
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
92
16k
Docker and Python
trallard
40
3k
It's Worth the Effort
3n
183
27k
Building Applications with DynamoDB
mza
90
6k
Why Our Code Smells
bkeepers
PRO
334
57k
Documentation Writing (for coders)
carmenintech
65
4.4k
The Invisible Side of Design
smashingmag
297
50k
Atom: Resistance is Futile
akmur
261
25k
What the flash - Photography Introduction
edds
67
11k
Writing Fast Ruby
sferik
626
60k
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 社群