Upgrade to Pro — share decks privately, control downloads, hide ads and more …

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

Caesar Chi
August 12, 2023

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

從技術前輩的視角理解技術決策,從技術前輩的視角理解技術決策,技術世界的不斷變化,工程師的智慧決策之道,理解工程師心路歷程通道,從技術架構到技術選題的考量,邁向真正的資深工程師。

Caesar Chi

Caesar Chi

August 12, 2023
Tweet

Other Decks in Technology

Transcript

  1. Caesar Chi
    2023/08
    為何技術老⼈這樣想那樣做?
    從技術前輩的視⾓理解技術決策

    View Slide

  2. Caesar Chi
    clonncd

    View Slide

  3. Caesar Chi
    2.0
    @clonncd
    @clonn

    View Slide

  4. AI for Dev 社群

    View Slide

  5. 議題
    • 技術世界的不斷變化

    • ⼯程師的智慧決策之道

    • 理解⼯程師⼼路歷程通道

    • 從技術架構到技術選題的考量

    • 邁向真正的資深⼯程師

    View Slide

  6. 技術世界的不斷變化

    View Slide

  7. View Slide

  8. View Slide

  9. View Slide

  10. ⼈⽣唯⼀不變的


    就是變

    View Slide

  11. ⼈⽣唯⼀不變的


    就是變
    擁抱改變,邁向改變

    View Slide

  12. 追求卓越,擁抱改變

    View Slide

  13. View Slide

  14. 遠離惡,迎向善
    ⾒賢思⿑,⾒不賢內⾃省

    View Slide

  15. 舉例
    Github

    View Slide

  16. 10 年前: 全球最⼤⼯程師交友網站


    View Slide

  17. 前端摩爾定律

    View Slide

  18. 前端摩爾定律
    每隔 18 個⽉
    前端複雜度將會增加⼀倍

    View Slide

  19. https://www.monocubed.com/blog/best-front-end-frameworks/

    View Slide

  20. 前端摩爾定律
    每隔 18 個⽉
    前端複雜度將會增加⼀倍
    擁抱改變,邁向卓越

    View Slide

  21. 理解⼯程師⼼路歷程

    View Slide

  22. 每個卓越⼯程師都是如此的與眾不同

    View Slide

  23. ⼀個 AM ⼀個 FM,⼤家的頻道都不同
    因此⼤家的頻率也有所不同

    View Slide

  24. 對於同⼀個服務,要怎麼架構
    ⼀百個⼈⼼中有⼀百個哈姆雷特

    View Slide

  25. 對於同⼀個服務,要怎麼架構
    總有不同看法

    View Slide

  26. 客觀⾓度,採⽤『比較舉證』分析

    View Slide

  27. 主觀評斷同時也存在著
    客觀⾓度,採⽤『比較舉證』分析

    View Slide

  28. 主觀評斷同時也存在著

    View Slide

  29. 主觀評斷同時也存在著

    View Slide

  30. 同時也存在著主觀評斷

    View Slide

  31. 同時也存在著主觀評斷

    View Slide

  32. 同時也存在著主觀評斷
    更不⽤說那⼀切的不理智
    及理智

    View Slide

  33. 同時也存在著主觀評斷
    更不⽤說那⼀切的不理智

    View Slide

  34. 不理智
    及理智
    • 項⽬需求與⽬標

    • 技術成熟度

    • 相容性

    • 可擴展性與靈活性

    • 成本效益

    • ⼈才與技能匹配

    • 法規與合規性

    • 社群與供應商⽀援

    • 未來可持續發展性

    • 測試和部署的便利性
    更不⽤說那⼀切的

    View Slide

  35. ⾝為⼯程師,我們都很希望⽤
    全新技術,打造最威的服務

    View Slide

  36. ⾝為⼯程師,我們都很希望⽤
    全新技術,打造最威的服務
    無奈現實不允許

    View Slide

  37. View Slide

  38. Junior Developer
    持續學習技術,實踐技術

    View Slide

  39. Junior Developer:
    像海綿般,持續吸收
    滿⾜安全需求,實現⾃我

    View Slide

  40. Senior Developer:
    被需要感,被尊重感,⾃我實現

    View Slide

  41. Senior Dev:
    試著向上(下)提案
    企圖實現⾃我

    View Slide

  42. 提案者與決議者思考⾓度

    View Slide

  43. ⾝為提案者
    • 有需要改

    • 專注細節

    • 如何執⾏

    • 個⼈利益,團隊利益
    ⾝為決議者
    • 有無需要改?

    • 專注戰略

    • 如何永續

    • 資源分配,成本效益

    View Slide

  44. ⾝為提案者
    • 有需要改

    • 專注細節

    • 如何執⾏

    • 個⼈利益,團隊利益
    ⾝為決議者
    • 有無需要改?

    • 專注戰略

    • 如何永續

    • 資源分配,成本效益
    當兩者談不下去時
    容易陷入僵局

    View Slide

  45. ⾝為提案者
    • 有需要改

    • 專注細節

    • 如何執⾏

    • 個⼈利益,團隊利益
    ⾝為決議者
    • 有無需要改?

    • 專注戰略

    • 如何永續

    • 資源分配,成本效益
    對⽅是⽩癡 對⽅是⽩癡

    View Slide

  46. ⾝為提案者
    • 有需要改

    • 專注細節

    • 如何執⾏

    • 個⼈利益,團隊利益
    ⾝為決議者
    • 有無需要改?

    • 專注戰略

    • 如何永續

    • 資源分配,成本效益
    如何換位思考,進⾏說服

    View Slide

  47. ⾝為提案者
    • 有需要改

    • 專注細節

    • 如何執⾏

    • 個⼈利益,團隊利益
    ⾝為決議者
    • 有無需要改?

    • 專注戰略

    • 如何永續

    • 資源分配,成本效益
    如何換位思考,進⾏說服
    提案者要建構⾜夠信任

    View Slide

  48. 何謂信任感?

    View Slide

  49. ⾝為提案者
    • 我是誰

    • 企劃規劃,盤點規劃

    • 現有資源,執⾏步驟

    • 建立⼝碑,完成使命
    ⾝為決議者
    • 你是誰?

    • 你想做什麼?

    • 你做得到嗎?

    • 交給你有風險嗎?

    View Slide

  50. 有的時候不是提案不好

    View Slide

  51. 有的時候不是提案不好
    是,你不好

    View Slide

  52. 有的時候不是提案不好
    是,你不好 • 信任度

    • 成熟度

    • 穩定度

    • 執⾏度

    View Slide

  53. 因此
    同樣的提案
    不同的⼈提議,會有不同效果

    View Slide

  54. 每個⼈說話份量,本就不同
    命,本就不由我

    View Slide

  55. 運,掌握於我

    View Slide

  56. 如果你真的很愛這⾨技術
    超級想推廣此技術

    View Slide

  57. 思考的⽅式
    『如何達到⽬的』

    View Slide

  58. 思考的⽅式
    如何達到⽬的
    ⽽不是
    如何,我,達到⽬的
    找到適合的切入點

    View Slide

  59. 1. 找到適合的切入點
    2. 找到『適合的⼈』
    3. 或者擔任那位『沒有⼈』
    看準時機,找到出⼿點

    View Slide

  60. 那些技術債


    所不愛的東⻄

    View Slide

  61. 每個上線的服務
    背後總有說不清的⾎淚

    View Slide

  62. 到處都是壞味道
    Bad smell

    View Slide

  63. 到處都是壞味道
    Bad smell

    View Slide

  64. 知道就是要改

    View Slide

  65. 知道就是要改
    我也知道...

    View Slide

  66. 無奈真的太多

    View Slide

  67. 要改的東⻄太多
    那就改天吧

    View Slide

  68. View Slide

  69. 時空背景
    技術迭代
    架構選題

    View Slide

  70. 時空背景
    技術迭代
    架構選題

    View Slide

  71. 當然
    無知 或 視⽽不⾒
    也是肇因之⼀
    《知識的假象》:無知並不可怕,⾃我感覺良好的幻覺才是

    View Slide

  72. 當然
    無知 或 視⽽不⾒
    也是肇因之⼀
    但,這群⼈不在我們今天討論範圍

    View Slide

  73. 既有架構的改變流程

    View Slide

  74. 1. 取得共識, 讓夥伴認同,⼀起進⾏改善
    2. 改變⾃⼰, 從⾃⾝習慣做起,影響他⼈
    3. 改變他⼈, 讓共識得以持續
    你可以這麼做

    View Slide

  75. 1. 取得共識, 讓夥伴認同,⼀起進⾏改善
    2. 改變⾃⼰, 從⾃⾝習慣做起,影響他⼈
    3. 改變他⼈, 讓共識得以持續
    你可以這麼做

    View Slide

  76. 1. 取得共識, 讓夥伴認同,了解調整到 Model 層
    的好處以及這是現在及未來趨勢。
    2. 改變⾃⼰, 經⼿ feature 相關檔案,直接進⾏
    Model 調整,讓其他⼈ Code review
    3. 改變他⼈, 將 Model 的調整視為 Spec 之⼀,
    當 code review 或者程式交付時,讓 Model 的
    整理成為嚴守底線
    舉例: 讓儲存的統⼀於 Model 層

    View Slide

  77. 上述項⽬需要取得上層授權
    同時取得集體共識
    此時建議要具備成本結構

    View Slide

  78. View Slide

  79. 嬰兒期: 可⾏,快速因應調整


    成長期: 思考,需拿捏改動時機點,機會成本考量


    成熟期: 可⾏,持續進⾏優化,企圖尋找擴張點


    衰退期: 不可⾏,產品進入退縮階段,優化效益過低

    View Slide

  80. ⾯對架構改善,
    試著思考幾個問題
    1. 有沒有比這個更重要,更急的事情?
    2. 現在做了會有什麼影響?
    3. 現在不做會有什麼影響?
    4. 有沒有更簡單的做法?

    View Slide

  81. 最佳程式碼


    • 技術架構到技術選題的考量

    View Slide

  82. 最佳程式碼
    Short Code is better

    View Slide

  83. 最佳程式碼
    Short Code is better
    NO Code is the BEST

    View Slide

  84. AI ⽣成,從多語⾔到程式語⾔
    程式語⾔可能不需要透過各位編寫

    View Slide

  85. 開發⼈員更需要具備抽象轉為具象的思考
    執⾏項⽬前進⾏具體 PDCA

    View Slide

  86. https://githubnext.com/projects/copilot-voice/

    Type less, code more

    View Slide

  87. 邁向真正的無碼化
    程式碼都透過 AI ⽣成
    開發者真正的價值在於抽象與具象化之間轉換

    View Slide

  88. 技術者


    終其⼀⽣都在追求

    View Slide

  89. https://www.moedict.tw/%E7%A5%9E%E4%B9%8E%E5%85%B6%E6%8A%80

    View Slide

  90. 神乎
    其技
    DDD


    Deadline driven Development

    View Slide

  91. 任務難度
    拖延程度
    筏值
    筏值
    放棄

    View Slide

  92. 任務難度
    拖延程度
    筏值
    筏值
    放棄

    View Slide

  93. 避免讓⾃⼰陷入放棄

    View Slide

  94. 先從已知的已知建立起習慣

    View Slide

  95. 先從已知的已知建立起習慣
    已知的未知

    View Slide

  96. View Slide

  97. 隨⼿清理程式債(垃圾)
    養成好習慣

    View Slide

  98. 隨⼿清理程式債(垃圾)
    隨⼿做功德

    View Slide

  99. 學習 n 項技術


    技術⽂件程式碼閱讀

    View Slide

  100. 學習的歷程

    View Slide

  101. Online Course
    老⼈: 書籍


    年輕: 影⾳,線上課程,Tiktok

    View Slide

  102. 從⽂字年代到影⾳年代


    老實說,⾃⼰也還在適應

    View Slide

  103. 程式會改版,⽂件也會


    但,課程可能不會

    View Slide

  104. 我們會透過 Google


    茫茫⼤海的尋找⽅向

    View Slide

  105. ⽂件通常有最佳解


    https://vuejs.org/guide/introduction.html


    https://vuejs.org/api/


    https://react.dev/learn


    https://react.dev/reference/react


    View Slide

  106. ⽂件與程式碼有差異


    Issue & Source code 能求解


    https://github.com/vuejs/core/issues


    View Slide

  107. ⽂件與程式碼有差異


    Issue & Source code 能求解


    https://github.com/vuejs/core/issues


    View Slide

  108. ⽂件與程式碼有差異


    Issue & Source code 能求解


    https://github.com/vuejs/core/issues


    View Slide

  109. 習慣,感受


    閱讀程式碼的快樂

    View Slide

  110. Source code + git log


    View Slide

  111. Source code + git log


    View Slide

  112. View Slide

  113. Source code + git log


    View Slide

  114. Source code + git log


    View Slide

  115. 因此


    讀書的重要性
    ⼼中從有碼到無碼之路
    只有從深入閱讀,才能了解技術之美

    View Slide

  116. 試著


    閱讀程式碼


    開放⾃⼰的程式碼
    ⼼中從有碼到無碼之路
    只有從深入閱讀,才能了解技術之美

    View Slide

  117. 最後總結

    View Slide

  118. ⼀,命
    ⼆,運
    三,風⽔
    四,積陰德
    五,讀書

    View Slide

  119. ⼀命,天⽣註定但努⼒可調
    ⼆運,掌握在⾃⼰⼿上,努⼒爭取
    三風⽔,了解整體局⾯,找到適合切入點
    四積陰德,隨⼿修代碼,留給更好的下⼀代
    五讀書,⽂件程式碼的閱讀,⾃我修養的成長
    Junior Dev Senior Dev

    View Slide

  120. Q&A
    Thank you
    AI for Dev jsdc.tw FB: Coding bear

    View Slide

  121. AI for Dev 社群

    View Slide