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