我作為 Web 開發者的 Rust 學習體驗
當前位置:點晴教程→知識管理交流
→『 技術文檔交流 』
當時,我正準備開發一個新的桌面應用程序。Rust真的能讓我免于被AI取代嗎?我能成為傳說中的“10倍工程師”嗎?作為一名Web開發者,我對自己是否算得上“真正的開發者”感到有些不安。而且,這次是一個桌面應用程序,我實在不想用Swift寫一遍,再用C#再寫一遍。 因此,Rust似乎是一個能夠同時解決這些問題的好選擇。這篇文章記錄了我作為一名Web開發者學習Rust的經歷。 我的背景我從事專業的Web開發工作將近10年。在這段時間里,我一直嘗試開發自己的軟件產品。盡管每次嘗試最終都只換來了朋友們的鼓勵,但我仍然樂在其中,因為我喜歡學習新東西。 那么,我希望通過學習Rust獲得什么呢? 一個統一的代碼庫和便捷的工具鏈作為一名Node.js開發者,我已經習慣了“工具泛濫”的生態系統,因此我希望能找到一個內置工具鏈的語言。聽說Rust的工具鏈非常優秀,而且它可以生成可在多個操作系統上運行的可執行文件——雖然這并非Rust獨有,但對于從腳本語言轉過來的我來說,這一點非常吸引人。 更容易學習內存管理和線程安全Rust為內存管理和線程安全提供了框架支持,我希望通過這種方式能更好地理解這些概念,而不需要從各種零散的資源中拼湊知識。 更輕松地處理內存管理和線程安全JavaScript是一種單線程、垃圾回收的語言(順便說一句,JavaScript的事件循環真的很棒),因此我對內存管理和線程安全的接觸并不多。我希望通過使用Rust,能夠避免那些因為代碼不安全而導致的“靈魂崩潰”級別的Bug。 “我會Rust”的徽章作為一名使用Node.js的Web開發者,我很好奇:在“偉大的甲殼綱生物”(指Rust的吉祥物螃蟹)山上,單元測試是否真的如美酒般源源不斷?也許學習Rust會讓我成為一個更有紀律的程序員,甚至讓我成為一個“真正的程序員”。 學習過程如何?我希望我的學習過程是井然有序的,但實際上卻有些混亂。不過,總的來說,我的學習體驗和預期相比如何呢? 工具鏈非常強大在使用過幾種編程語言的工具鏈后,我發現Rust可能是最容易上手的。Rust擁有一個全面的標準庫,其中包括構建和測試功能,這對我來說是一股清新的空氣——相比之下,JavaScript的工具鏈顯得零散。事實上,Rust的工具鏈甚至啟發了Deno(Node.js的競爭者)的創建者,為Deno引入了一些類似的功能。 160小時后,我仍在學習標準庫學習Rust并不容易。我花了大量時間去理解所有權系統,并努力讓自己從這種視角思考問題變得更加自然。在連續一個月、每周花40小時專注學習后,我仍然不認為這比其他語言更容易掌握。實際上,有些地方可能更難。除了熟悉Rust的基本概念外,我還需要學習“Rust式”的處理方式。到目前為止,我距離完全掌握Rust的標準庫還有很長的路要走。 幫我避免了許多運行時錯誤雖然學習過程并不輕松,但我確實為我的項目寫了許多需要跨線程共享內存的Rust代碼。在這個過程中,我遇到了許多讓我幾乎無法理解的編譯錯誤,但幸運的是,這些錯誤如果出現在運行時,可能會讓我陷入無盡的調試地獄。對于像我這樣的新手來說,這種保護機制絕對值得。 “我算是會點Rust”的徽章我完成了從零開始到項目上線的過程。現在,我有一個用Rust開發的、供真實用戶使用的項目。雖然我不能說自己完全掌握了Rust,但這個過程確實讓我對自己能夠更接近底層開發的能力充滿信心。這本身就是一種極大的成就感。 你應該學習Rust嗎?我還不能給出明確的答案。我仍在摸索中。不過,我可以肯定的是,精進自己的技術是一件非常值得的事情,它能極大地增強你的信心。 與此同時,我也意識到,自己在使用TypeScript時所習以為常的靈活性是多么寶貴。TypeScript非常適合Web開發的工作流。即使我對Rust的熟練程度有所提高,完成同樣的任務在Rust中仍然可能花費數倍的時間。這一部分是因為我的經驗不足,另一部分則是Rust本身的嚴格性所決定的。 最后,我也很好奇:你在學習某項新技術時是否有類似的經歷?對于那些已經學習過Rust的人來說,這是否與你的體驗相符? 閱讀原文:原文鏈接 該文章在 2025/1/24 9:38:59 編輯過 |
關鍵字查詢
相關文章
正在查詢... |