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