程式語言與未來產品:開發的關鍵路徑
準備與精通這些技術,真的是花了不少時間,大概列下來接下來在程式語言與工具製作未來產品的路徑。
靜態網站技術
Hugo
Hugo 是一款速度極快的靜態網站生成器,最適合需要SEO的場景。
- 快速生成:Hugo 以 Go 語言開發,生成靜態頁面的速度非常快,即使是大型網站也可以瞬間編譯。
- 易於擴展:Hugo 支援 Markdown,並且可以靈活配置頁面,適合技術文件、部落格或公司網站等需要快速更新的內容。
- 免伺服器需求:由於生成的網站是靜態文件,無需依賴伺服器運算資源,便於部署到 CDN 或靜態伺服器上,具備良好的可擴展性和安全性。
- 資源檔優化:Hugo可以最佳化JavaScript與CSS資源檔達到SEO的最佳化。
前端技術
Angular(TypeScript)
Angular 是一個基於 TypeScript 的前端框架,適合構建需要大量與使用者互動的的單頁應用(SPA)。
- 強大的模組化設計:Angular 提供了完整的 MVC 架構,讓開發者可以清晰地分離邏輯和界面,提升可維護性。
- TypeScript 靜態型別支持:TypeScript 提供了強大的靜態型別檢查功能,讓程式碼在開發過程中更容易發現潛在的問題。
- 三層式架構:可以將UI、Data Service和Model分層,易於維護與方便多人協力創作。
後端技術
- Node.js
Node.js 以 JavaScript 為基礎,適合用於輕量級的後端服務及 Web API 開發,特別是與桌上型應用的共通性上具有優勢。
若包裝在Electron中可以達到Web版與Desktop版共用一套程式碼。 - C#
C# 在需要高效能與較大規模的應用中有著良好的表現,適合用於後端處理大量資料或需要高效能計算的場景。 - Python
在機器學習(ML)中因為有些實作是Node.js或C#無法寫出來的。
基礎架構技術
雖然基礎架構不是程式語言,但其選擇對於整體系統的可用性、效能及成本控制有著關鍵影響:
- 小型 Windows VM
選用 AWS 上的小型 Windows VM(t3 系列,2 vCPU、4GB RAM),適合用於小規模的伺服器或應用。該選擇的優勢在於其成本低廉且靈活,適合於不需要大量計算資源的任務。 - Linux VM
Google Cloud 上的 Linux VM 將作為伺服器架構的主要主體。Linux VM 通常比 Windows VM 更具效能優勢,尤其是在需要運行長期穩定服務時。 - Google Cloud Run
Google Cloud Run 適合運行容器化的應用,特別是針對 API 的小規模運行,考慮到成本與不經常使用時的冷啟動,能夠有效降低成本。 - Kubernetes
當使用量達到一定規模且無法接受 Cloud Run 的冷啟動時間時,可以考慮使用 Kubernetes 來進行容器編排,進一步提升系統的擴展性與穩定性。 - Cloud SQL
Cloud SQL 支援 MySQL 和 MS SQL Server,並且可以與 VPC 結合,提供良好的資料安全性與性能,是後端資料庫的理想選擇。 - SQLite
SQLite 是一個輕量級的嵌入式資料庫,適合於需要小型資料庫的應用場景,並且不需要伺服器進行管理。
桌上型程式技術
- Angular + Node.js + Electron
這套技術組合能夠達到一次開發、多平台運行的效果。使用 Angular 和 Node.js 開發核心邏輯,再利用 Electron 包裝成桌上型應用,降低開發成本與複雜性。 - C# MAUI
C# MAUI 提供了跨平台桌上型應用開發的解決方案,能夠在 Windows、Mac 等不同平台上運行,並且與 .NET 生態系統緊密結合,適合企業級應用。
手機原生App技術
- C# MAUI
C# MAUI 同樣支援手機應用開發,能夠實現跨平台的手機原生應用,是基於 .NET 生態的開發者優秀的選擇。 - Retool 等 No Code 工具
對於一些簡單且不需要複雜邏輯的應用,可以考慮使用 Retool 等 No Code 工具,快速開發出基本的手機應用,適合 MVP 產品或內部使用的應用場景。
分析與總結
基於上述技術路徑,可以得出未來產品開發的主要技術選擇大致分為以下幾條:
- 靜態網站(Hugo)
- 前端開發(Angular + TypeScript)
- 後端開發(Node.js、C#、Python)
- 基礎架構(Windows VM、Linux VM、Cloud Run、Kubernetes、Cloud SQL、SQLite)
- 桌上型應用(Angular + Node.js + Electron、C# MAUI)
- 手機應用(C# MAUI、No Code 工具)
這些技術路徑的多樣性和靈活性,能夠根據不同的需求進行調整與應用。由於技術負責人精通這些技術,團隊只需找到合適的工程師進行分工,便能有效推動專案開展,大大增加成功的可能性。