CodeGym /課程 /JAVA 25 SELF /產品打造:現代 IT 產品是如何誕生的

產品打造:現代 IT 產品是如何誕生的

JAVA 25 SELF
等級 8 , 課堂 6
開放

1. 「人不再是出生的,而是被培養出來的」

既然你還在這裡,那我們就繼續吧。「我來讓你看看兔子洞有多深」 © 🐇

我來跟你介紹產品開發流程是怎麼進行的——我們會從最上層的宏觀層級一路走到最底層的寫程式碼。我想你會有幾個有趣的發現……

現代 IT 產品已經不是「從零寫起」,而是被「打造」出來的。它們由各種函式庫、框架、第三方程式與產品拼裝而成,甚至會直接使用遠端的付費或免費網路服務 🧩。

現代的產品是一座由技術、服務、解決方案與流程組成的「動物園」。一部分工作由人完成,一部分自動化,而其餘 90% 幾乎都由資料中心的雲端服務執行 ☁️。世界早已不同以往。

但你首先會注意到的是持續不斷的變更。你不再是「寫程式」,而是持續對它們做修改

2. 持續的變更

你入職後會加入一個 20 人的團隊,這個團隊已經為該產品工作了 5 年。目前使用者能用的是第 7 版。你的任務就是為這個產品做出調整。變更要小,以免嚇跑現有的活躍用戶。

而這並不容易,因為產品已經在運作。有客戶,而且他們會付錢 💰。因此什麼都不能弄壞。對一個已上線的產品做變更,比在一個全新的產品上動手難上好幾倍。為此會有專門的標準、遷移協定與工具。想起一個笑話:

兩個老朋友相遇:一個成了汽修師,另一個成了外科醫生…… 各自有各自的生活、煩惱與喜悅…… 他們聊著聊著說到薪水。汽修師說:「我一個月拿 30k,我挺滿意的;你呢?」心臟外科醫生說:「嗯,我一台手術大概 100k……」。這時汽修師來了興趣:「奇怪,為什麼差這麼多?我們幹的不是差不多嗎——都是在換零件。」外科醫生說:「來,我們去車邊,你把車發動……」。汽修師發動了車子,外科醫生打開引擎蓋,對汽修師說:「看到沒,引擎正在運轉?你換換看!」 😂

就算發生了奇蹟,你們團隊整整一年從零開發產品,之後才把它釋出,你知道接下來會怎樣嗎?如果產品成功,產品負責人會想繼續發展它。釋出新版本,增加一些功能,或者至少做幾個實驗。然後你知道會發生什麼嗎?變更又來了 🙈

3. 產品的價值

從現代開發的觀點來看,只有已被釋出、且使用者實際在用的功能與程式碼才有價值。如果你寫了程式碼,它被放在某處、甚至能跑起來,但沒有人在用,它的價值就近乎於零。所以所有程式碼都應盡可能早地進入生產環境(production)🚀

你的程式碼需要經過以下階段:

  • ✔️ 你寫好它並確認能正常運作。
  • 🔍 你的 TeamLead 已審閱並把它合併到 Git 的主分支。
  • 🧪 在建置期間的測試顯示你沒有破壞任何重要功能。
  • 🧩 整合測試證明產品能按需求運作。
  • 🛡️ 測試人員檢查了這段程式碼並批准釋出。
  • 📦 接著需要建置產品的新版本並在伺服器上釋出。
  • 🐳 需要把新版本包成 Docker Images 並加以釋出。
  • 🗄️ 可能得執行遷移腳本,並對資料庫與/或其他第三方方案進行變更。
  • 📊 然後需要收集伺服器上的日誌,以確認一切正常運作。
  • ⏪ 若發生異常(你破壞了什麼),需要回滾該建置,將資料庫恢復到先前狀態,且不能遺失使用者在不穩定版本期間所做的操作。

在大多數公司,這些事情如今已經有解方:建立了新流程、聘請了專職人員、導入了安全性協定與品質管控標準。公司越大,從寫出程式碼到它進入生產環境並轉化為價值——開始為人們帶來效益——所需的時間通常越短。

多數公司讓程式碼完成這段旅程約需兩週。然而也有公司每週,甚至每天都會釋出。更特別的還能一天多次。

寫出來的程式碼本身一文不值。只有在生產環境(production)運行的程式碼才帶來價值。

留言
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION