SlideShare a Scribd company logo
1 of 121
Download to read offline
Caesar Chi
2023/08
為何技術老⼈這樣想那樣做?
從技術前輩的視⾓理解技術決策
Caesar Chi
clonncd
Caesar Chi
2.0
@clonncd
@clonn
AI for Dev 社群
議題
• 技術世界的不斷變化
• ⼯程師的智慧決策之道
• 理解⼯程師⼼路歷程通道
• 從技術架構到技術選題的考量
• 邁向真正的資深⼯程師
技術世界的不斷變化
⼈⽣唯⼀不變的
就是變
⼈⽣唯⼀不變的
就是變
擁抱改變,邁向改變
追求卓越,擁抱改變
遠離惡,迎向善
⾒賢思⿑,⾒不賢內⾃省
舉例
Github
10 年前: 全球最⼤⼯程師交友網站
所不愛的東⻄
每個上線的服務
背後總有說不清的⾎淚
到處都是壞味道
Bad smell
到處都是壞味道
Bad smell
知道就是要改
知道就是要改
我也知道...
無奈真的太多
要改的東⻄太多
那就改天吧
時空背景
技術迭代
架構選題
時空背景
技術迭代
架構選題
當然
無知 或 視⽽不⾒
也是肇因之⼀
《知識的假象》:無知並不可怕,⾃我感覺良好的幻覺才是
當然
無知 或 視⽽不⾒
也是肇因之⼀
但,這群⼈不在我們今天討論範圍
既有架構的改變流程
1. 取得共識, 讓夥伴認同,⼀起進⾏改善
2. 改變⾃⼰, 從⾃⾝習慣做起,影響他⼈
3. 改變他⼈, 讓共識得以持續
你可以這麼做
1. 取得共識, 讓夥伴認同,⼀起進⾏改善
2. 改變⾃⼰, 從⾃⾝習慣做起,影響他⼈
3. 改變他⼈, 讓共識得以持續
你可以這麼做
1. 取得共識, 讓夥伴認同,了解調整到 Model 層
的好處以及這是現在及未來趨勢。
2. 改變⾃⼰, 經⼿ feature 相關檔案,直接進⾏
Model 調整,讓其他⼈ Code review
3. 改變他⼈, 將 Model 的調整視為 Spec 之⼀,
當 code review 或者程式交付時,讓 Model 的
整理成為嚴守底線
舉例: 讓儲存的統⼀於 Model 層
上述項⽬需要取得上層授權
同時取得集體共識
此時建議要具備成本結構
嬰兒期: 可⾏,快速因應調整
成長期: 思考,需拿捏改動時機點,機會成本考量
成熟期: 可⾏,持續進⾏優化,企圖尋找擴張點
衰退期: 不可⾏,產品進入退縮階段,優化效益過低
⾯對架構改善,
試著思考幾個問題
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
任務難度
拖延程度
筏值
筏值
放棄
任務難度
拖延程度
筏值
筏值
放棄
避免讓⾃⼰陷入放棄
先從已知的已知建立起習慣
先從已知的已知建立起習慣
已知的未知
隨⼿清理程式債(垃圾)
養成好習慣
隨⼿清理程式債(垃圾)
隨⼿做功德
學習 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
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 社群

More Related Content

More from Caesar Chi

Morden F2E Education - Think of Progressive Web Apps
Morden F2E Education - Think of Progressive Web AppsMorden F2E Education - Think of Progressive Web Apps
Morden F2E Education - Think of Progressive Web AppsCaesar Chi
 
codecept.js introduce - front end test E2E tool introduce
codecept.js introduce - front end test E2E tool introducecodecept.js introduce - front end test E2E tool introduce
codecept.js introduce - front end test E2E tool introduceCaesar Chi
 
遠端團隊專案建立與管理 remote team management 2016
遠端團隊專案建立與管理 remote team management 2016遠端團隊專案建立與管理 remote team management 2016
遠端團隊專案建立與管理 remote team management 2016Caesar Chi
 
Introduce Angular2 & render & firebase flow
Introduce Angular2 & render & firebase flowIntroduce Angular2 & render & firebase flow
Introduce Angular2 & render & firebase flowCaesar Chi
 
如何提昇技術力 - 參與技術社群之經驗分享
如何提昇技術力 - 參與技術社群之經驗分享如何提昇技術力 - 參與技術社群之經驗分享
如何提昇技術力 - 參與技術社群之經驗分享Caesar Chi
 
html5 & phonegap
html5 & phonegaphtml5 & phonegap
html5 & phonegapCaesar Chi
 
From devOps to front end Ops, test first
From devOps to front end Ops, test firstFrom devOps to front end Ops, test first
From devOps to front end Ops, test firstCaesar Chi
 
Docker with Cloud Service GCPUG
Docker with Cloud Service  GCPUGDocker with Cloud Service  GCPUG
Docker with Cloud Service GCPUGCaesar Chi
 
從失敗中學習打造技術團隊
從失敗中學習打造技術團隊從失敗中學習打造技術團隊
從失敗中學習打造技術團隊Caesar Chi
 
Docker with Cloud Service
Docker with Cloud ServiceDocker with Cloud Service
Docker with Cloud ServiceCaesar Chi
 
技術單兵作戰及團隊開發流程差異
技術單兵作戰及團隊開發流程差異技術單兵作戰及團隊開發流程差異
技術單兵作戰及團隊開發流程差異Caesar Chi
 
Developer team review of 2014
Developer team review of 2014Developer team review of 2014
Developer team review of 2014Caesar Chi
 
Web development, from git flow to github flow
Web development, from git flow to github flowWeb development, from git flow to github flow
Web development, from git flow to github flowCaesar Chi
 
2014 jsconf China, Sharing
2014 jsconf China, Sharing2014 jsconf China, Sharing
2014 jsconf China, SharingCaesar Chi
 
Node.js x Azure, cli usage, website deployment
Node.js x Azure, cli usage, website deploymentNode.js x Azure, cli usage, website deployment
Node.js x Azure, cli usage, website deploymentCaesar Chi
 
MVC way to introduce Sails.js - node.js framework
MVC way to introduce Sails.js - node.js frameworkMVC way to introduce Sails.js - node.js framework
MVC way to introduce Sails.js - node.js frameworkCaesar Chi
 
node.js app deploy to heroku PaaS
node.js app deploy to heroku PaaSnode.js app deploy to heroku PaaS
node.js app deploy to heroku PaaSCaesar Chi
 
Node realtime part
Node realtime partNode realtime part
Node realtime partCaesar Chi
 
Node basic training
Node basic trainingNode basic training
Node basic trainingCaesar Chi
 
Minute for students occupy Taiwan's Legislature To protest China pact 2014
Minute for students occupy Taiwan's Legislature  To protest China pact 2014Minute for students occupy Taiwan's Legislature  To protest China pact 2014
Minute for students occupy Taiwan's Legislature To protest China pact 2014Caesar Chi
 

More from Caesar Chi (20)

Morden F2E Education - Think of Progressive Web Apps
Morden F2E Education - Think of Progressive Web AppsMorden F2E Education - Think of Progressive Web Apps
Morden F2E Education - Think of Progressive Web Apps
 
codecept.js introduce - front end test E2E tool introduce
codecept.js introduce - front end test E2E tool introducecodecept.js introduce - front end test E2E tool introduce
codecept.js introduce - front end test E2E tool introduce
 
遠端團隊專案建立與管理 remote team management 2016
遠端團隊專案建立與管理 remote team management 2016遠端團隊專案建立與管理 remote team management 2016
遠端團隊專案建立與管理 remote team management 2016
 
Introduce Angular2 & render & firebase flow
Introduce Angular2 & render & firebase flowIntroduce Angular2 & render & firebase flow
Introduce Angular2 & render & firebase flow
 
如何提昇技術力 - 參與技術社群之經驗分享
如何提昇技術力 - 參與技術社群之經驗分享如何提昇技術力 - 參與技術社群之經驗分享
如何提昇技術力 - 參與技術社群之經驗分享
 
html5 & phonegap
html5 & phonegaphtml5 & phonegap
html5 & phonegap
 
From devOps to front end Ops, test first
From devOps to front end Ops, test firstFrom devOps to front end Ops, test first
From devOps to front end Ops, test first
 
Docker with Cloud Service GCPUG
Docker with Cloud Service  GCPUGDocker with Cloud Service  GCPUG
Docker with Cloud Service GCPUG
 
從失敗中學習打造技術團隊
從失敗中學習打造技術團隊從失敗中學習打造技術團隊
從失敗中學習打造技術團隊
 
Docker with Cloud Service
Docker with Cloud ServiceDocker with Cloud Service
Docker with Cloud Service
 
技術單兵作戰及團隊開發流程差異
技術單兵作戰及團隊開發流程差異技術單兵作戰及團隊開發流程差異
技術單兵作戰及團隊開發流程差異
 
Developer team review of 2014
Developer team review of 2014Developer team review of 2014
Developer team review of 2014
 
Web development, from git flow to github flow
Web development, from git flow to github flowWeb development, from git flow to github flow
Web development, from git flow to github flow
 
2014 jsconf China, Sharing
2014 jsconf China, Sharing2014 jsconf China, Sharing
2014 jsconf China, Sharing
 
Node.js x Azure, cli usage, website deployment
Node.js x Azure, cli usage, website deploymentNode.js x Azure, cli usage, website deployment
Node.js x Azure, cli usage, website deployment
 
MVC way to introduce Sails.js - node.js framework
MVC way to introduce Sails.js - node.js frameworkMVC way to introduce Sails.js - node.js framework
MVC way to introduce Sails.js - node.js framework
 
node.js app deploy to heroku PaaS
node.js app deploy to heroku PaaSnode.js app deploy to heroku PaaS
node.js app deploy to heroku PaaS
 
Node realtime part
Node realtime partNode realtime part
Node realtime part
 
Node basic training
Node basic trainingNode basic training
Node basic training
 
Minute for students occupy Taiwan's Legislature To protest China pact 2014
Minute for students occupy Taiwan's Legislature  To protest China pact 2014Minute for students occupy Taiwan's Legislature  To protest China pact 2014
Minute for students occupy Taiwan's Legislature To protest China pact 2014
 

為何技術老人這樣想那樣做?