PHP熟手使用Rust作為後端開發語言

bigbug-gg發表於2023-11-16

自學時長兩年半 Golang,快出師了,Rust 突然跳入我的生活,當時想法比較單純,學一定要學最好的,於是就又自學 Rust

這種想法是有問題的,外部的技術變化,會影響你先前計劃,導致學什麼都很難成氣候

之所以堅定的去學Rust, 是看到一篇深入 Go 垃圾回收機制部落格,講到 Go 會定時清理過時記憶體,再這個時候,CUP 佔用率有點高,但 Rust 不會存在這個問題,因為借用的特性,資料離開作用域,就直接清理掉了,這種設計更加優雅和乾淨

現在看待這個問題,看法又不同了,Go 犧牲了點CUP資源,但開發效率更快

當前(2023年11月),我深深的感到,如果是做 Web API 開發,用 PHP 也許才是優選方案。

至PHP8.2 釋出以來,PHP的效能翻了幾番。

它的語法,真正算得上是適合各個階段的開發人員,高階的開發者,能使用它構建出健壯的系統;剛入門的開發者,就算層層if巢狀…幾千行的函式、它還是能執行!強型別,它有,弱型別,它支援,框架生態完善。

單純為了業務快速跑起來,用 PHP 絕對沒錯,不用在技術上有太多的質疑,而全身心投入到業務當中,讓系統先跑起來

這是 Web 框架,提供了完善的 請求、相應、路由、中介軟體等模組,我選用它作為後端介面底層框架。

  • 遇到的第一個問題就是 資料庫、快取 這些常用的模組如何請求、保持、傳遞,經過小一會兒的學習,解決了資源初始的問題。

  • 遇到的第二個問題就是 資料庫操作,對比 Laravel 框架,用 Rocket 彷彿被捆住了手腳,它提供了DB的初始,但未提供類似 ORM 的 DB 操作庫,需要自己選擇合適的第三方,我選擇了 sea-orm,挺好用的,按照檔案學習一天,就掌握了基本的 CRUD。

  • 遇到的第三個問題就是 目錄如何建?怎麼串聯一起?這個問題其實多看些 Rust 專案就不會有太多糾結,Rust 有自己的包管理方案,好好看看官方的 《Rust 程式設計語言》 第七章 “使用包、Crate和模組管理不斷增長的專案”,總會有自己的辦法,完善軟體目錄。

  • 遇到的第…

這些問題,回過頭來看,都解決了,但,對比了之前 PHP 的開發體驗,簡直太難受了,為了獲得所謂的高效,把大把的時間花去學習去了,比如運算元據庫的 sea-orm,比如用於序列化的 serde,實際使用起來,並沒有像 PHP 那麼好用,我需要知道更多東西,才能創造我要的東西…太難受了,專案進度推進慢,這真的是我想要的嗎?

轉變的過程是痛苦的,我依然會繼續使用 RUST,PHP 就像一杆秤,能快速評估業務開發時間,只有使用它的人,才知道它的魅力,所以當要求快速落地,我會毫不猶豫的選擇 PHP。

當系統負載量上來的時候,那麼 RUST 用武之地就來了,這個時候業務已經上線了,慢是慢,又不是不能用!然後使用 RUST 重構,最佳化效能。

本作品採用《CC 協議》,轉載必須註明作者和本文連結
莫等閒,白了少年頭,空悲切!待業中,尋找PHP技術團隊。

相關文章