Giter VIP home page Giter VIP logo

book-intro-of-ci's Introduction

CI 從入門到入坑

DevOps 說:開發、測試與維運應該互相合作,解決問題並完成任務。 CI 的目標是:開發與測試密切合作,並產出讓維運可快速部署的高品質軟體。對開發者來說 CI 也是個快速回饋機制,相信沒有什麼能比「寫完程式立即看到成果」來的興奮的事了。就讓我們來體驗 30 天的興奮,並一起入坑吧!

這 30 天裡,我將會以開發者角度,並以第一人稱來說明 CI 是個什麼樣的概念,以及它幫助了我什麼,又幫助團隊什麼。

此為第 8 屆 iT 邦幫忙鐵人賽 DevOps 組參選作品之一,同時也獲得鐵人鍊成和優選的成就。

如對文章有任何建議,歡迎隨時提 issue 或直接發 PR 。修改的規範可以參考 CONTRIBUTING.md 文件。

前言

在開始寫作之前,我想先聊一下,為何我會選 CI 當作是主題吧!

至今跟許多人聊 CI ,有些人以為它是特效藥。好一點的還知道要請測試人員寫腳本,讓電腦代替人工自動化處理測試步驟,再手動觸發 CI server 處理;慘一點的,搞不好覺得請 MIS 架 CI server 串專案後, bug 就會煙消雲散。

假的!

CI 是一個觀念或文化,大部分的人講 CI 都是在說 CI server ,雖然有相關,但是它們有點不大一樣。一定是先有 CI ,才會有 CI server 。但上述這些人很有可能都忘了 CI 最初的原意了。

Waterfall 裡,開發階段和測試階段被明顯區分開來。也許這做法有某些優點,但在現今講究快速迭代開發的時代裡,它的缺點特別明顯。對於在意這些缺點的 Waterfall 團隊而言, CI 是特效藥沒錯,而且是個非常苦,讓人嚥不下口的良藥。如同簡介所說, CI 講的正是「開發與測試密切合作」。習慣 Waterfall 的朋友,通常比較難理解這些好處。只有在藥效出現作用時,才會知道它真的能解決專案的某些問題。

選 CI 當主題是因為,我想在藥外面包一層糖衣,雖然說穿了還是在吃藥,但至少讓這些朋友們比較願意服用。服用完後,軟體品質不一定能馬上提高,但相信至少不會再爛下去了,接著維運部署高品質軟體上線自然會更安心,也更有信心!

最後,祝大家都能 快快樂樂開發,平平安安上線。

目錄

誌謝

book-intro-of-ci's People

Contributors

mileschou avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.