🔧 阿川の電商水電行
Shopify 顧問、維護與客製化
💡
小任務 / 單次支援方案
單次處理 Shopify 修正/微調
⭐️
維護方案
每月 Shopify 技術支援 + 小修改 + 諮詢
🚀
專案建置
Shopify 功能導入、培訓 + 分階段交付

我從事軟體開發多年,深知一個永恆真理:

沒有什麼比臨時解決方案更持久。

從「快速解決方案」到核心基礎設施

你聽過這個故事。

您補充道:

// TODO: replace with proper solution later

那是2019年。

目前,該業務占公司收入的 38%。

沒人知道它是如何運作的。

沒人願意碰它。

它已經獲得了感知能力。

重寫週期(進階版)

每隔幾年,就會有一個勇敢的人說:

我們應該重新好好寫一次。

房間裡一片寂靜。

低年級的學生看起來很有幹勁。

中層目標看起來很有野心。

這些老人家看起來很疲憊。

因為老年人了解這些階段:

  1. 激動

  2. 過度自信

  3. 低估

  4. 範圍爆炸

  5. “我們暫時先和舊系統整合吧。”

  6. 現在你有兩個系統了。

恭喜。

你的漏洞數量翻了一番。

微服務啟示錄

在某個時候,有人發現:

  • Docker

  • Kubernetes

  • Apache Kafka

然後我想:

“沒錯。這正是我們這個四人創業公司所需要的。”

適用於 2,000 名用戶。

只需一個資料庫。

在單一虛擬機器上執行。

但現在我們有了:

  • 14項服務

  • 6 條 CI 流水線

  • 1 位了解網路技術的工程師

  • 0 位能安然入睡的工程師

高級開發人員入門包

當你出現以下情況時,你就知道自己待太久了:

  • 你以「未來的治療療程」來衡量建築決策。

  • 當有人說「讓我們創新」時,你會感到緊張。

  • 你信任這套枯燥乏味的理論。

  • 你先問:“如果失敗了會發生什麼?”,然後再問:“它的速度有多快?”

青少年選手追求速度。

中檔產品追求優雅。

老年人追求的是生存。

凌晨3點生產事故

沒有什麼比這更能凝聚工程師了:

CPU: 100%
Memory: gone
Logs: silent
Slack: exploding

有人建議進行水平方向的擴展。

有人建議清除快取。

有人建議用 Go 語言重寫。

老者輕聲說:

“有人檢查過定時任務嗎?”

是定時任務導致的。

總是定時任務導致的。

人工智慧時代

現在我們已經有了人工智慧生成程式碼。

這真是太棒了。

因為現在不用除錯了:

  • 你的錯誤

你除錯:

  • 你的錯誤

  • 模型的錯誤

  • 以及兩者之間的互動

進步。

“我們稍後再清理。”

這句話建構的遺留系統比 COBOL 還多。

每個系統都是從零開始的。

接下來是:

  • 熱修復

  • 截止日期

  • 臨時旗幟

  • 銷售部門提出的功能請求

突然間,你那優雅的建築看起來就像是在酒吧鬥毆中落敗了一樣。

老年人的隱藏技能

15 年多過去了,你真正的超能力並不是程式設計。

它的意思是:

“不。”

不,我們不需要微服務。

不,我們不需要重寫。

不,我們不需要 6 個新的依賴項。

不,我們不需要即時事件流來編輯用戶個人資料。

預防複雜性的能力比製造複雜性的能力更有價值。

但沒人會把這些寫在領英上。

真正的推廣

你成為資深人士的那一刻,並非指:

  • 掌握框架

  • 學習一門新語言

  • 推出一項重要功能

當你意識到:

減少程式碼交付量通常是最負責任的做法。

如果你曾經:

  • 註解掉程式碼而不是刪除它

  • 在點擊部署按鈕前,低聲說道「請執行」。

  • 新增了日誌記錄功能,並將其命名為可觀測性

  • 或在會議上說「這只是一個小小的改動」。

你也是我們的一員。

歡迎。


原文出處:https://dev.to/art_light/ive-seen-this-architecture-before-it-ends-in-tears-3bld


精選技術文章翻譯,幫助開發者持續吸收新知。

共有 0 則留言


精選技術文章翻譯,幫助開發者持續吸收新知。
🏆 本月排行榜
🥇
站長阿川
📝21   💬3  
560
🥈
我愛JS
📝1   💬5   ❤️2
66
評分標準:發文×10 + 留言×3 + 獲讚×5 + 點讚×1 + 瀏覽數÷10
本數據每小時更新一次
🔧 阿川の電商水電行
Shopify 顧問、維護與客製化
💡
小任務 / 單次支援方案
單次處理 Shopify 修正/微調
⭐️
維護方案
每月 Shopify 技術支援 + 小修改 + 諮詢
🚀
專案建置
Shopify 功能導入、培訓 + 分階段交付