我猜你大概有以下疑問
別著急這些問題通通可以在以下文章得到解答 =)
p.s 以下用到的專有名詞其實不算少,但我盡量少用專有名詞了XD
整套流程下來除非用量特別大不然都是免費的,好工具不用嗎?
大概在半年多前,陪伴我多年的學習平板壽終正寢了,而我平時在用的MacbookPro也開始出現過熱的現象,正當我還在思考先買新Macbook還是新平板的時候,強者我同事剛好分享了他平常的開發流程,他有一整個專案是利用上下班通勤時間並且在手機上開發的,當時我的表情大概就跟下面的貓貓一樣震驚
於是我開始有了大膽的想法,如果我可以解決環境+版本控制+部署,把開發環境遷移到雲端,那我就不需要過度考慮電腦效能問題,下一台開發設備甚至可以是平板,而這篇文章就是這個大膽想法的實踐過程。
BTW我使用的是SAMSUNG的Tab S8 加鍵盤滑鼠組,由於我沒有用過其他平板開發,所以不保證其他裝置也有同樣的體驗,但既然平板可以做到這些,比較低價的文書筆電應該沒道理不行吧!?
雖然本篇文章使用的技術很多,但其實核心觀念很簡單,你可以輕易的替換成你喜歡的工具,我會先簡單的介紹我的開發流程,後面step-by-step的教你快速上手,OK廢話不多說讓我們進入正題吧!
要在平板上重現整個開發流程,需要把整個過程拆成三個部分
專有名詞:CICD 即持續集成(CI)和持續部署(CD),是一種自動化的軟體開發實踐,旨在快速、高效地從開發到部署軟體更新,以實現更快的迭代和更高的產品質量
一般我們指的開發環境是編輯程式碼與執行程式碼的地方,通常會提到OS(作業系統)與IDE(程式編輯器)、SDK(開發套件),常見的作業系統選擇有Windows、MacOS、Linux (Ubuntu),程式編輯器比較常見的選擇有Visual Studio Code、jetbrains、pycharm
而所謂的線上IDE說白一點就是
一個線上編輯器運行在一台遠在天邊的電腦,並且幫你安裝好你需要的工具(ex : python, nodejs…) 因此有了線上IDE你就不需要管瑣碎的環境問題,只需要專心寫code就好,直接節省好幾年的壽命XD 而網路上已經有一大堆現成的選擇,你可以針對需求選擇喜歡的平台,以下是網路大大統整出來的IDE們,挑挑看選選看喔^^~
如果你覺得選擇太多不想思考,我個人最推薦的是Replit,擁有非常人性化的介面,支援非常多種的程式語言,也支援各種跨平台應用,你可以在手機APP上也可以在網頁上開發,介面本身的功能也非常多,也支援直接github連動。
p.s. 免費版跟付費版最大的差別在於速度與效能,如果你對付費版有疑慮可以先玩玩看免費版
程式版本控制用於追蹤和管理軟體開發過程中的程式碼變更。它可以讓開發人員對程式碼進行修改、撤回更改、查找歷史版本,並允許多個開發人員進行協作開發,確保程式碼的完整性和一致性。常用的版本控制系統包括Git、SVN等等。
但這裡我只推薦Github,原因我們之後還會提到,為的是要用他平台內建的Github Action,跟GCP Cloud Run的自動部署
這個部分大概只有後端工程師需要,通常我們開發完一個服務的時候,需要把程式碼放到一台電腦上,並確保程式碼24小時不間斷的執行,這中間有非常多的技術細節要兼顧,比方說網路狀況、硬體設備、網址與網域、維持設備運作的水電…etc,可以說在雲端技術出來之前運營一個服務的成本非常高,對於小型或個人開發者而言幾乎不可能負擔。
常見的雲端環境有Azure(微軟)、GCP (Google)、AWS (亞馬遜),各有各的優缺點大家可以自行斟酌,不過我比較推薦GCP,因為UX跟文件做得很好, "幾乎"不需要額外的第三方教學就能快速上手,管理服務的方式也很直覺,不太會有忘記關閉功能而被扣錢的情況,並且有提供台幣約9000元的試用額度,非常建議大家可以玩玩看
可能有些人會疑問為什麼不直接部署在replit上就好了,原因有以下
如果你用的是免費版,無法一直開啟instance(運行你程式的虛擬環境) replit上的伺服器,地點只能部署在美國跟印度,因此怎麼選都很慢 使用GCP可以更容易地整合開發其他服務
p.s. 詳細的實作過程可以參考我的medium文章: