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

軟體工作日常:成為工具人吧!

Ching Yi Chan
April 30, 2018
170

 軟體工作日常:成為工具人吧!

Ching Yi Chan

April 30, 2018
Tweet

Transcript

  1. 軟體⼯工作的⽇日常
    ϓމʈՈɛы!
    qrtt1/ / alan
    啟⌌痙㮳
    ū
    程沛科技

    View full-size slide

  2. 砒䷐テ粕ㄌ⻌,CXC䎛ℜ
    哋䴒54'&GX1RUテ粕ㄌ

    View full-size slide

  3. ৿ணd

    Ң݊ɓࡈ࡝ɝБٙʈ೻ࢪ
    㞵㊤EQFG⻌⃮⻌㉸ⓛ≧
    竮㏒EQFG䎛↡熝⛋⨉㓲䥥槜呇⃫叞Ⰱ悲!
    䎛↡熝掄熝⯻$7)
    㞵㊤䥥⑈⺚苌肪㽳同腩⻩礌⇆⯷䥥㎦⭤

    View full-size slide

  4. 啟⌌痙㮳
    http://bit.ly/2JAGaXc

    View full-size slide

  5. Ыٙʃଡ଼ɰϞЎࡐ෗k
    掄ⅼℎ腩䥥⇄剋創剫!
    䨀䥥征䠀䠃╼䥥桬䥝勦!

    View full-size slide

  6. ЎࡐνО੽λಏՑЎࡐλಏಏճk
    亂䛧懀臶桬䥝㤐综榽䥥苌聅⅀㤐䎛↡熝槡缙䅾聆哨聴䠉テ⑘

    View full-size slide

  7. ⃡⋬啟⌌碉㔬⃡⋬KUUWG苌
    不禈⼒㔴⹭㠗テ䥥祚䙨䎛
    Ўࡐλಏ
    Ⅽ⋬啟⌌EQYQTM⃡⋬KUUWG苌
    不禈⼒㔴⹭㠗テ䥥祚䙨䎛苋
    ⃪⋬啟⌌EQYQTM⃡⋬KUUWG苌
    不禈⼒㔴⹭㠗テ䥥祚䙨䎛苋


    ⌨崎KUUWGビ䃦㰻⹻劊

    View full-size slide

  8. Ўࡐঐᖢ֛ٙڭܵٙϓ̌ଟ෗
    啟⌌㊤㎦㧤㧪幫甙
    啟⌌㧤䠀䛧⌨
    啟⌌㧤ㄗ⻰⹊䧬撌䠀
    啟⌌䵢竅㓡砵Ⱂ㓡Ⅷ
    啟⌌䥥椠睦⚩缙䠀Ⅷ
    啟⌌㉸ㄗ彴彴⚜䧬䢦
    㧪ⅼ⑍⛙苌⅀㧪㚱≼䠘㌈䠀䛧⌨

    View full-size slide

  9. ༶͜ʈՈ̘ৰɛᗳБމٙʔᆽ֛׌
    年⚀㨍⌻⻮䥥Ⅼ㎦苌兝六㤐⻮䥥苌年倱㩽⛐⇆櫱䄍

    View full-size slide

  10. https://openwt.com/sites/default/files/devops.png
    ழ᜗ක೯͛ն඄ಂ
    &GX1RU缨熿

    View full-size slide

  11. https://openwt.com/sites/default/files/devops.png
    ழ᜗ක೯͛ն඄ಂ
    &GX1RU缨熿
    ō 䠃➢HGCVWTG㚱礌
    ō ⻌屰㬝㧙
    ō 桬KUUWG峯嶷⛥櫦⻇∽們亡
    ō ≾洸⼮⬒✫㚱ⓛ4QQV%CWUGⓧ㩱

    View full-size slide

  12. https://openwt.com/sites/default/files/devops.png
    ழ᜗ක೯͛ն඄ಂ
    &GX1RU缨熿
    ō ≠䠉䔩㨍㚈┗俜糺
    ō 聜嬭䥝∩䔩㨍亂䛧

    View full-size slide

  13. https://openwt.com/sites/default/files/devops.png
    ழ᜗ක೯͛ն඄ಂ
    &GX1RU缨熿
    ō ׇ㳺䅷甙׈⻩礌㇛剏禵粕

    View full-size slide

  14. https://openwt.com/sites/default/files/devops.png
    ழ᜗ක೯͛ն඄ಂ
    &GX1RU缨熿
    ō 聜嬭⢏␤䄍嵇
    ō 㡕⛩䄍嵇
    GG
    ō ⛐碉⚸㌈䄍嵇
    3#

    View full-size slide

  15. https://openwt.com/sites/default/files/devops.png
    ழ᜗ක೯͛ն඄ಂ
    &GX1RU缨熿
    ō 䥝∩⃡⋬㢑䔩㨍


    聆ㄙ㤐㗨㔴◦痙䥥䔩㨍

    View full-size slide

  16. https://openwt.com/sites/default/files/devops.png
    ழ᜗ක೯͛ն඄ಂ
    &GX1RU缨熿
    ō 揉紶㢑䔩㨍┑䧏㳺䥥䞑
    ⭤⃫珯

    View full-size slide

  17. https://openwt.com/sites/default/files/devops.png
    ழ᜗ක೯͛ն඄ಂ
    &GX1RU缨熿
    ō 筒聴⃫䥥⛥䴏ׇ夶䛧׈

    'Z俜糺崎⹻嶠㡕

    'Z&$㠦楽

    'Z傓惐⃮聆

    View full-size slide

  18. https://openwt.com/sites/default/files/devops.png
    ழ᜗ක೯͛ն඄ಂ
    &GX1RU缨熿
    ō 簬䄍⛥䴏磕⌝崶∑㧮甒
    ⍆㆘䖡㐬

    'Z㠩叞

    'Z㠗⑆

    忛昃䥥聋ㆇ

    縂昃䥥聋ㆇ

    View full-size slide

  19. Ⴉᗆਖ਼ࣩܔໄʈՈ
    䎛↡熝槡缙聅ⅼテ⑘❃獑

    View full-size slide

  20. *%&ঐൖމਖ਼ࣩܔໄʈՈ෗k

    View full-size slide

  21. ␩䠉+&'㔴桬#⻩礌苌

    䠃䠀#LCT珯
    ⑮㔴桬$⻩礌苌
    䠃䠀$LCT㵵珯
    竅砒苌㕫#$⻩礌䥥NKD
    䧏日⃬䥥㔡㧪LCT㵵
    综寞┑:>>5GTXGTU>
    >RTQF
    ☤縬┆聅熝⌻

    View full-size slide

  22. ൳εɛʈʧɝd൳࢙׸̈፹
    ㏔㏔P⋬啟⌌

    View full-size slide

  23. ਖ਼ࣩܔໄٙʈՈ
    • Java 專案建置⼯工具的演進

    • Ant

    • Maven

    • Gradle
    (QT,CXC

    View full-size slide

  24. Ant
    • 使⽤用⼿手冊:https://ant.apache.org/manual/index.html

    • 動機:

    • Java 應⽤用程式賣點是跨平台的

    • Java 缺少跨平台的專案建置⼯工具
    `

    View full-size slide

  25. Ant
    • 寫個 build file 吧:

    https://ant.apache.org/manual/using.html#buildfile

    • XML 結構

    • project

    • target

    • task
    `

    View full-size slide

  26. Ant
    • 缺點

    • 沒有標準化流程 (優點:可以寫得很 free style)

    • 沒有相依性管理理⼯工具

    • 直到 Apache Ivy 出現
    `
    https://issues.apache.org/jira/projects/IVY/issues/IVY-614?filter=allissues
    `

    View full-size slide

  27. http://www.codedata.com.tw/java/understanding-gradle-1-ant/
    ׉罜帹)TCFNG׊猺猻巼⛅䥥磢桴#RCEJG#PV

    View full-size slide

  28. Maven
    • https://maven.apache.org/what-is-maven.html

    • 起源於開發 Apache Turbine 專案時對於 Ant 的反思。

    • 標準化的專案建置流程

    • 輕巧的 XML 設定 (相對於 Ant)

    • Maven By Examples

    http://books.sonatype.com/mvnex-book/reference/
    simple-project-sect-simple-core.html
    `
    㚉墇⹙劳㨱㡺

    View full-size slide

  29. Maven
    http://books.sonatype.com/mvnex-book/reference/simple-project-sect-simple-core.html
    `

    View full-size slide

  30. Maven
    • 優點

    • 標準化專案結構

    • archetype:generate

    • 缺點

    • 學習曲線比 ant ⾼高

    • 內建功能缺乏條件式建置專案的能⼒力力,得花較⼤大的功夫編譯
    出給不同情境使⽤用的結果
    `

    View full-size slide

  31. ׉罜帹)TCFNG׊猺猻巼⛅䥥磢桴#RCEJG/CXGP
    http://www.codedata.com.tw/java/understanding-gradle-2-maven/

    View full-size slide

  32. Gradle
    • https://gradle.org/

    • 捨棄 XML 格式,使⽤用 Groovy DSL 開發

    • 有標準化流程,但有能彈性擴充

    • ⽀支援相依性管理理

    • 沒有充份地學習,所以⼤大部分的⼈人不知道⾃自⼰己在寫什什麼
    创熿

    View full-size slide

  33. Gradle
    • 優點

    • 有 ant 的彈性與 maven 的標準化流程

    • 缺點

    • 隱藏的學習曲線過⾼高

    View full-size slide

  34. ׉罜帹)TCFNG׊猺猻)TCFNG群㔬ㇰ
    http://www.codedata.com.tw/java/understanding-gradle-3-getting-
    started/

    View full-size slide

  35. https://www.youtube.com/watch?v=CQqtyWNjDnY

    View full-size slide

  36. https://speakerdeck.com/qrtt1/learning-how-to-learn-gradle

    View full-size slide

  37. ਖ਼ࣩܔໄᔊʷəʘܝ
    肪㧪⑗↷]䄍嵇珮紶揉珮傎聴_テ∽㉸⌻

    View full-size slide

  38. ۰ዚjՑᔖୋɓ඄d

    4ZT"ENJOᕎᔖə
    ⇄䛧5[U#FOKP苌嗇⠫玐玐玐
    ㉿㹅ℬ砒苌⛋缙5[U#FOKP腩綇苌⼒㤐㓲⇄䛧Ⅷ

    View full-size slide

  39. http://bit.ly/2JDDkkz

    View full-size slide

  40. 4ZT"ENJO
    • 安裝新 Server
    • 應⽤用程式部署
    • 應⽤用程式故障分析與排除
    • 資料庫管理理 (DBA 相關⼯工作)

    View full-size slide

  41. ൳εɛʈʧɝd൳࢙׸̈፹
    ㏔㏔P⋬啟⌌

    View full-size slide

  42. ழ᜗ක೯

    ʔ̥݊ࠅҪ̴ᇜ̈ԸఱБə
    ㉿ⓛ䠀┑㹜ↂ苌㓲⋲揞缙亂

    View full-size slide

  43. ΋ሔሔ฿ׂ
    %QPHKIWTCVKQP/CPCIGOGPV
    %QPVKPWQWU+PVGITCVKQP%QPVKPWQWU&GNKXGT[
    &GX1RU;QWDWKNFKV[QWFGRNQ[KV
    5KVG4GNKCDKNKV['PIKPGGTKPI54'
    CPUKDNG
    LGPMKPUCPUKDNG
    CPUKDNGOG!
    HNWGPVF'.-ITCHCPCOQPKV

    View full-size slide

  44. ଡ଼࿒ண֛၍ଣ
    %QPHKIWTCVKQP/CPCIGOGPV
    CPUKDNGRWRRGVUCNV
    GVEF
    \QQMGGRGT
    FPU 系統
    軟體

    View full-size slide

  45. ܵᚃ׌዆Υ௅໇
    %QPVKPWQWU+PVGITCVKQP%QPVKPWQWU&GNKXGT[
    ,GPMKPU6TCXKU%+%KTENG%+&TQPGKQ

    CPUKDNG
    汷␩苌缙㧪↛⻌䄍嵇礌≬
    6GUV%CUG
    痞㩽㽳㧪%+⑗⻇⅀⛐⇆⌻&GNKXGT[#WVQOCVKQP

    View full-size slide

  46. %FW0QT
    &GX1RU;QWDWKNFKV[QWFGRNQ[KV
    㪱Ⰺ⃡劅+6↛⨉給Ⰺ

    4&⋲㧪㠰㙘桬䥝
    +6⋲⅀槡缙㠰㙘亂䛧KPHTCUVTWEVWTG
    ↷⋲㽛⹻ׇ⨉⃡群׈ⅳ䧙䛧缷槡㼣
    &GX㣯䥞+6ロ磻㗠┑↡熝苌+6㣯䥞4&槡缙↡熝
    痞㩽㽳⌻職傎聴苌⛐叞⃮叞䛧缷䎛∶+6揉紶苮㤐縂Ⅷ㉩⯻磢桴
    ㋯熝年⃫ׇ㢑䔩׈⚩㋌珮⚩㹄䮛❃獑
    耯⦿綹䔩⅀㤐⃡㴄䥥缙㼣

    View full-size slide

  47. ၣ१̙ቦ׌ʈ೻
    5KVG4GNKCDKNKV['PIKPGGTKPI54'
    HNWGPVF'.-ITCHCPCOQPKV
    俜糺䖡㐬簬㚈㤐⃡ⓨ䥥⫛䯯

    View full-size slide

  48. ࣨː฿ׂ
    #WVQOCVKQP +PHTCUVTWEVWTGCUCEQFG
    ␩≧⍘䧬⃬⃡䛟⨉䥥EQFG

    View full-size slide

  49. ༶͜ʈՈ̘ৰɛᗳБމٙʔᆽ֛׌
    年⚀㨍⌻⻮䥥Ⅼ㎦苌兝六㤐⻮䥥苌年倱㩽⛐⇆櫱䄍
    年㓱㩽⛐⇆倐䴮

    View full-size slide

  50. 2"
    https://www.facebook.com/qrtt1
    chingyichan.tw at gmail.com
    聯聯絡⽅方式

    View full-size slide