本文以創用 CC 姓名標示-非商業性-相同方式分享 4.0 國際授權釋出
讀者您好
Clojure 程式語言的發明者 Rich Hickey 在 2011 年的演講 Simple Made Easy 中提出,複雜性是軟體開發中最大的敵人,複雜的軟體難以理解和維護,容易出現錯誤。因此,軟體工程師應該努力簡化軟體,以提高軟體的品質和可靠性。
他在演講中提出了一些方法以簡化軟體複雜性,有興趣的讀者不妨花點時間了解。
🔹Loco
這是一款專為個人開發者和新創打造的框架。靈感源自 Rails,提供直觀的 API 和網頁開發功能,適合具備 Rust 基礎的開發者。無論是建構核心元件、展示應用,還是日常開發,Loco 都能提供全面而容易上手的體驗。
🔹MLX
Apple 推出 MLX 框架,專門為機器學習研究而生。主打功能:類似 NumPy 的 Python API、全方位 C++ API、自動微分與向量化、惰式計算、動態圖結構。支援多裝置運作,含 CPU 和 GPU,採用統一記憶體模型,提升模型建置效率。
🔹GQL
GQL 是一種類似於 SQL 的查詢語言,用於對 Git 儲存資料進行查詢。即時查詢無需轉換為其他格式或建立資料庫。
🔸對抗複雜,追求簡單
在今日的科技領域,簡單性成為了一個核心概念。在 Google 的案例中,我們看到了簡單設計和複雜架構之間的明顯對比。Google 的搜索頁面以其一目了然的簡潔性著稱,但其背後的 Google Web Server(GWS)配置卻顯示出複雜性的另一面。這種複雜性是自發性增長的結果,並沒有經過精心設計。
這種對簡單性和複雜性的探討不僅限於 Google。在整個科技界,我們經常看到簡單解決方案被低估。複雜會導致效率低下,增加錯誤的機會,並使系統難以維護。舉個例子,貝爾實驗室的 Tom Cargill 在減少系統複雜性後,卻因為減少了程式碼行數而被視為生產力負增長,這說明了組織中不了解什麼是簡單。
這種情況下,重視簡單性變得尤為關鍵。簡單的系統更易於讀寫、測試和維護。它們通常運行得更快,且效率更高。對於開發者而言,避免不必要的複雜性意味著長遠看來可以節省大量時間和資源。因此,無論是在設計新系統或是改進現有系統時,追求簡單性應當成為一項基本原則。
🔸Google 工程師背後的秘密
Google 開發了一款名為 Critique 的程式碼審查工具,該工具受到了 97% 的 Google 軟體工程師的好評。Critique 不僅提供了一個用於程式碼審查的有效平台,還整合了人工智慧技術,以提高開發者在程式碼審查過程中的效率和準確性。
Critique 工具支援 Google 的程式碼審查流程,該流程包括創建更改請求、進行審查,以及最終批准。Google 的指南強調了程式碼審查中的關鍵原則,如持續改進、遵循風格指南、小範圍更改,以及在 24 小時內完成審查。
Critique 因其易用性、整合 Google 其他工具的能力,以及 ML 驅動的建議功能而受到工程師們的喜愛。儘管如此,由於 Critique 高度個性化和專為 Google 環境設計,它可能不適用於所有公司。Google 亦維護著一款類似的開源程式碼審查工具 Gerrit,供廣大開發社群使用。
以上就是本期的內容,喜歡的話請給❤️,分享或轉寄本電子報給有興趣的朋友。如果您有想要介紹的開源專案,也請來信與我們分享,或是在 X (前 Twitter) 留言給我們,感謝!