新手村導讀 - 3: 淺談軟體開發流程

更新於 發佈於 閱讀時間約 3 分鐘

這篇就來介紹一下在工作與以前念書時期在開發流程上的不同吧~

CI/CD

CI/CD 是一種自動化的軟體開發實踐,用於快速、可靠地交付和更新應用程式。全名是持續整合(Continuous Integration)和持續交付/部署(Continuous Delivery/Deployment)。

持續整合:這是一種開發實踐,開發人員會頻繁地(通常每天)將代碼更改合併到共享的主分支中。每次合併都會觸發一個自動化的構建和測試序列,以早期發現並快速修復任何錯誤或問題。
持續交付:這是一種延伸的實踐,自動化地將已經通過測試的代碼更改部署到生產環境。這確保了你可以隨時快速、安全地交付新版本的應用程式。
持續部署:這也是一種延伸的實踐,與持續交付類似,但是在持續部署中,每次更改都會自動部署到生產環境。這需要一個高度成熟的測試和發佈管道,以確保不會將錯誤部署到生產環境。

在實作上,我們一般會用工具來完成 CI/CD。例如 Travis CI、 AWS CodePipeline 等。

我個人覺得最大的優點是,CI 可以執行自動測試,以避免有人動到一些功能,結果在沒注意到的地方壞掉了;CD則是能持續交付與自動部屬,持續交付可以避免上線後壞掉還要等一段時間去回復上一個版本,而自動部屬則是很方便、避免人為疏失。

Travis CI

Travis CI 是一種持續整合的服務,用於自動化構建在 GitHub 上托管的內容,進行測試並部署到各種環境。以下是 Travis CI 的一些主要特性:

  1. 易於集成:可以輕鬆地與 GitHub 集成。只需在 GitHub 倉庫中添加一個 .travis.yml 配置文件,並在 Travis CI 網站上啟用該倉庫,就可以開始使用 Travis CI 了。
  2. 支持多種語言:支持多種編程語言,包括 PHP、Python、Ruby、Java、Node.js 等。
  3. 自動化部署:可以自動將應用部署到各種平台,如 Heroku、AWS、Google Cloud 等。
  4. 並行構建:支持並行構建,這意味著你可以同時運行多個構建和測試。

由於我第一次碰的 CI 服務就是 Travis CI,所以應該算是比較熟悉(吧)。雖然 Travis CI 的優點很多,但我認為有兩個比較大的缺點:

  1. 速度較慢:Travis CI 的構建速度相對較慢,尤其是在高峰時段,跟其他 CI 服務相比尤其明顯。
  2. GitHub 限制:基本上只有原本就在 GitHub 上的專案在使用 Travis CI 才會覺得方便,對於其他平台來說則很不方便。

此外,Travis CI 只有 CI 的部分,不包含 CD。

加解密

在工作上不免會碰到一些相對機密的資料,例如密碼、姓名等。此時如果量夠大,就需要考量到資料外洩的風險而做資料的加密。

目前有兩種主要類型的加密:對稱加密和非對稱加密。這兩者的差別主要是能不能用同一個密鑰去進行加解密。

對稱加密由於是用同一把鑰匙,因此安全性較低但是速度較快,例如 AES 和 DES;非對稱加密則是用兩把鑰匙,相對安全但速度就會比較慢,例如 RSA 和 ECC。

ECC(Elliptic Curve Cryptography)是一種基於橢圓曲線數學的非對稱加密算法,也是相對較新的加密方式。它在相同的安全性的前提下只需要較小的密鑰,這使得 ECC 在需要節省儲存空間和頻寬的情況下(例如在移動設備上)成為一種更好的選擇。

留言
avatar-img
留言分享你的想法!
avatar-img
林柏宇的沙龍
2會員
46內容數
test
林柏宇的沙龍的其他內容
2025/04/27
JWT(JSON Web Token)是基於 JSON 格式的開放標準,主要用於身份驗證與權限確認。本文介紹了JWT的基本結構,並闡述其特點,如降低資料庫壓力、靈活性及無狀態性。JWT 特別適用於分佈式系統。本篇將協助讀者深入理解 JWT 的重要性與實際應用。
Thumbnail
2025/04/27
JWT(JSON Web Token)是基於 JSON 格式的開放標準,主要用於身份驗證與權限確認。本文介紹了JWT的基本結構,並闡述其特點,如降低資料庫壓力、靈活性及無狀態性。JWT 特別適用於分佈式系統。本篇將協助讀者深入理解 JWT 的重要性與實際應用。
Thumbnail
2025/04/20
本文介紹了容器的基本概念、組成部分以及其在應用開發中的重要性,特別是對初階和高階工程師的影響。透過深入探討容器的優點,以及Docker、Kubernetes和ArgoCD等相關技術,幫助讀者理解容器化的應用與管理,進而簡化開發過程並提高效率。適合對容器技術感興趣的開發者從零開始學習與掌握。
Thumbnail
2025/04/20
本文介紹了容器的基本概念、組成部分以及其在應用開發中的重要性,特別是對初階和高階工程師的影響。透過深入探討容器的優點,以及Docker、Kubernetes和ArgoCD等相關技術,幫助讀者理解容器化的應用與管理,進而簡化開發過程並提高效率。適合對容器技術感興趣的開發者從零開始學習與掌握。
Thumbnail
2025/04/13
本文探討自動化測試的核心理念與實際應用,涵蓋如何模擬運行環境、確保程式碼在各種情境下的穩定性,以及進行錯誤處理的方法。文中指出自動化測試的各種優點,並提到設計測試的注意事項。透過使用相關工具和方法,讀者可以有效進行功能測試,並掌握相關技巧以應對常見問題,讓開發過程更為順利。
Thumbnail
2025/04/13
本文探討自動化測試的核心理念與實際應用,涵蓋如何模擬運行環境、確保程式碼在各種情境下的穩定性,以及進行錯誤處理的方法。文中指出自動化測試的各種優點,並提到設計測試的注意事項。透過使用相關工具和方法,讀者可以有效進行功能測試,並掌握相關技巧以應對常見問題,讓開發過程更為順利。
Thumbnail
看更多
你可能也想看
Thumbnail
TOMICA第一波推出吉伊卡哇聯名小車車的時候馬上就被搶購一空,一直很扼腕當時沒有趕緊入手。前陣子閒來無事逛蝦皮,突然發現幾家商場都又開始重新上架,價格也都回到正常水準,估計是官方又再補了一批貨,想都沒想就立刻下單! 同文也跟大家分享近期蝦皮購物紀錄、好用推薦、蝦皮分潤計畫的聯盟行銷!
Thumbnail
TOMICA第一波推出吉伊卡哇聯名小車車的時候馬上就被搶購一空,一直很扼腕當時沒有趕緊入手。前陣子閒來無事逛蝦皮,突然發現幾家商場都又開始重新上架,價格也都回到正常水準,估計是官方又再補了一批貨,想都沒想就立刻下單! 同文也跟大家分享近期蝦皮購物紀錄、好用推薦、蝦皮分潤計畫的聯盟行銷!
Thumbnail
每年4月、5月都是最多稅要繳的月份,當然大部份的人都是有機會繳到「綜合所得稅」,只是相當相當多人還不知道,原來繳給政府的稅!可以透過一些有活動的銀行信用卡或電子支付來繳,從繳費中賺一點點小確幸!就是賺個1%~2%大家也是很開心的,因為你們把沒回饋變成有回饋,就是用卡的最高境界 所得稅線上申報
Thumbnail
每年4月、5月都是最多稅要繳的月份,當然大部份的人都是有機會繳到「綜合所得稅」,只是相當相當多人還不知道,原來繳給政府的稅!可以透過一些有活動的銀行信用卡或電子支付來繳,從繳費中賺一點點小確幸!就是賺個1%~2%大家也是很開心的,因為你們把沒回饋變成有回饋,就是用卡的最高境界 所得稅線上申報
Thumbnail
在這篇文章中,我們將介紹工作與以前念書時期在開發流程上的差異,並深入瞭解CI/CD、Travis CI以及加解密的應用。 CI/CD是自動化的軟體開發實踐,而加解密則是保護機密資料安全的重要技術。
Thumbnail
在這篇文章中,我們將介紹工作與以前念書時期在開發流程上的差異,並深入瞭解CI/CD、Travis CI以及加解密的應用。 CI/CD是自動化的軟體開發實踐,而加解密則是保護機密資料安全的重要技術。
Thumbnail
軟體系統的發展歷程大多相似,首重解決基本需求、提供操作介面,進而提升安全性、擴充功能、優化操作。
Thumbnail
軟體系統的發展歷程大多相似,首重解決基本需求、提供操作介面,進而提升安全性、擴充功能、優化操作。
Thumbnail
前年第一次藉公司機會,參加了DevOpsDay的活動。雖然devOps一詞各自表述,大多狀況還是偏向維運會遇到的技術為主,做為平時開發、跟使用者訪談需求的工作內容來說,參加聚會如果沒有一定的知識,對講者所提到的狀況比較難有共鳴...
Thumbnail
前年第一次藉公司機會,參加了DevOpsDay的活動。雖然devOps一詞各自表述,大多狀況還是偏向維運會遇到的技術為主,做為平時開發、跟使用者訪談需求的工作內容來說,參加聚會如果沒有一定的知識,對講者所提到的狀況比較難有共鳴...
Thumbnail
列出一套完整的程式 程式設計有許多種方法,不過通常會先列出清單的再逐一執行,這樣會加快程式設計的速度。設計通常會採取順推的辦法。所以順推的程式設計方式就是經歷觀念溝通、系統分析、資料統合、權限管理、頻率與時間、後台管理、畫面設計等等階段後,將框架設計完了以後,先列出一套完整的程式,將所有使用者都確
Thumbnail
列出一套完整的程式 程式設計有許多種方法,不過通常會先列出清單的再逐一執行,這樣會加快程式設計的速度。設計通常會採取順推的辦法。所以順推的程式設計方式就是經歷觀念溝通、系統分析、資料統合、權限管理、頻率與時間、後台管理、畫面設計等等階段後,將框架設計完了以後,先列出一套完整的程式,將所有使用者都確
Thumbnail
前言 上次我們講到 CI/CD 中的 when 使用,今天我們要來傳授一套必殺技,我們要把過去所學的全部融合再一起,相信各位都準備好了,將 Gitlab 從枷鎖中解放出來吧,讓我們來詠唱「武裝完全支配術」 「System Call. Connect Armament. Search Archiv
Thumbnail
前言 上次我們講到 CI/CD 中的 when 使用,今天我們要來傳授一套必殺技,我們要把過去所學的全部融合再一起,相信各位都準備好了,將 Gitlab 從枷鎖中解放出來吧,讓我們來詠唱「武裝完全支配術」 「System Call. Connect Armament. Search Archiv
Thumbnail
上次我們講解了 CI/CD 的相依性,也講解了 stages 工作階段的運作,今天我們來了解 only 的作用,可以幫助我們做甚麼 only 作用 only 可以指定那些工作,只在哪個分支名運作,假設今天開了一個新分支,名子叫 feature/add_test 這樣子,接著 CI/CD 有定義四
Thumbnail
上次我們講解了 CI/CD 的相依性,也講解了 stages 工作階段的運作,今天我們來了解 only 的作用,可以幫助我們做甚麼 only 作用 only 可以指定那些工作,只在哪個分支名運作,假設今天開了一個新分支,名子叫 feature/add_test 這樣子,接著 CI/CD 有定義四
Thumbnail
上次我們了解 Pipeline 各自在做什麼是,今天來講解 Gitlab CI/CD 工作相依性,來了解 CI/CD 怎麼依據不同階段,進行工作。 上傳四個工作查看 CI/CD 運作 首先我們先定義我們要做的工作,然後上傳到 GitLab,看結果怎麼樣 run-unit-test: bef
Thumbnail
上次我們了解 Pipeline 各自在做什麼是,今天來講解 Gitlab CI/CD 工作相依性,來了解 CI/CD 怎麼依據不同階段,進行工作。 上傳四個工作查看 CI/CD 運作 首先我們先定義我們要做的工作,然後上傳到 GitLab,看結果怎麼樣 run-unit-test: bef
Thumbnail
前言 上次我們簡單的寫了 CI/CD 的工作,這次我們對 Pipeline 與 Job,來多加了解他們的運作,以及我們這些工作是怎麼處發的。 Pipeline 與 Job 首先我們先切到 Build 子清單,可以看到裡面有 Pipeline、Job、Pipeline editor、Pipeli
Thumbnail
前言 上次我們簡單的寫了 CI/CD 的工作,這次我們對 Pipeline 與 Job,來多加了解他們的運作,以及我們這些工作是怎麼處發的。 Pipeline 與 Job 首先我們先切到 Build 子清單,可以看到裡面有 Pipeline、Job、Pipeline editor、Pipeli
Thumbnail
前言 今天我們要做一個初體驗,讓各位感受一下,在 GitLab CD/CD 的過程,我們今天使用官方提供的 Gitlab,如果您有自架 Gitlab ,也可以使用自架的 Gitlab 練習,我們這邊為了讓各位學習方便,所以使用官方提供的 Gitlab 作為練習,實際寫一個簡單的 CI/CD 腳本,
Thumbnail
前言 今天我們要做一個初體驗,讓各位感受一下,在 GitLab CD/CD 的過程,我們今天使用官方提供的 Gitlab,如果您有自架 Gitlab ,也可以使用自架的 Gitlab 練習,我們這邊為了讓各位學習方便,所以使用官方提供的 Gitlab 作為練習,實際寫一個簡單的 CI/CD 腳本,
Thumbnail
前言 什麼是 CI/CD ? CI/CD 可以幫助我們做到什麼事情? 為什麼要有 CI/CD ? 在傳統程式上線流程,例如可能要透過 FTP 上傳至伺服器,接著去修改環境變數,然後測試程式是否運作正常,然後伺服器重新開機就上線了。 在近代程式上線流程,例如說會有個像 Gitlab、GitHub
Thumbnail
前言 什麼是 CI/CD ? CI/CD 可以幫助我們做到什麼事情? 為什麼要有 CI/CD ? 在傳統程式上線流程,例如可能要透過 FTP 上傳至伺服器,接著去修改環境變數,然後測試程式是否運作正常,然後伺服器重新開機就上線了。 在近代程式上線流程,例如說會有個像 Gitlab、GitHub
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News