官术网_书友最值得收藏!

1.2 在工作中提倡使用Rust

在工作中提倡使用Rust的效果如何?克服了最初的障礙,之后的發展往往就會很順利。下面轉載的2017年的討論提供了一個很好的軼事。谷歌Chrome OS團隊的一名成員討論了將該語言引入項目中的情況:[11]

2017年9月27日,因迪

Rust是谷歌官方認可的語言嗎?

2017年9月27日,薩克斯塞倫

回復作者:Rust在谷歌并沒有得到官方認可,但有一些人在使用它。想要在這個組件里使用Rust的技巧就是,讓我的同事們相信沒有其他語言更適合這項工作,在這個例子中,我相信情況就是如此。

也就是說,要使Rust在Chrome OS的構建環境中發揮出色作用,還有大量工作需要做。不過,使用Rust的同事們為我解答了很多問題,幫了我很大的忙。

2017年9月27日,埃基德

“在這個組件中使用Rust的技巧就是,讓我的同事們相信沒有其他語言更適合這項工作,在這個例子中,我相信情況就是如此。”

我在自己的一個項目中遇到了類似的情況——一個vobsub字幕解碼器,它用于解析復雜的二進制數據,而且有一天我希望將其作為Web服務運行。所以,我當然想確保我的代碼里沒有漏洞。

我用Rust編寫了代碼,然后使用“cargo fuzz”模糊測試來嘗試發現漏洞。運行了10億次模糊測試迭代后,我發現了5個錯誤。

令人高興的是,實際上,這些錯誤中沒有一個可以真的升級為漏洞。在每種錯誤的情況下,Rust的各種運行時檢查都成功地發現了問題并將其轉變為可控的恐慌。(實際上,這將導致徹底重啟Web服務器。)

因此,我的主要收獲是,每當我想要一種沒有GC的語言,同時還想要該語言在安全性至關重要的上下文環境中是可以信任的,這時Rust就是絕佳選擇了。此外,實際操作時,我可以靜態鏈接Linux二進制文件(與Go語言類似),這是一個很好的加分項。

2017年9月27日,馬尼舍爾思

“令人高興的是,實際上,這些錯誤沒有一個會真的升級為漏洞。在每種錯誤的情況下,Rust的各種運行時檢查都成功地發現了問題并將其轉變為可控的恐慌。”

這或多或少也是我們在瀏覽器中給Rust代碼做模糊測試的經驗,僅供參考。模糊測試發現了很多恐慌(以及調試斷言/“安全”溢出斷言)。在其中的一個測試用例中,它實際上發現了一個在類似Gecko的代碼中被忽視了大約10年的錯誤。

從上面的討論內容中,我們可以看到,尋求克服技術挑戰的工程師們已經“自下而上”地在一些相對較小的項目中采用了Rust語言。從這些成功中獲得的經驗隨后會被用作證據,證明完全可以用于開展更加宏大的工作。

從2017年年底以來,Rust不斷成熟和壯大,已成為谷歌技術領域認可的一部分,并且在安卓項目以及Fuchsia操作系統的項目中,現已是官方所認可的一種語言。

主站蜘蛛池模板: 南宫市| 封开县| 泉州市| 尉犁县| 阿尔山市| 农安县| 霍山县| 五莲县| 昌吉市| 定西市| 丰宁| 康保县| 关岭| 精河县| 分宜县| 邹城市| 德格县| 阆中市| 邹城市| 玛纳斯县| 洛南县| 鲁甸县| 遵义县| 锦州市| 浦北县| 九台市| 凤凰县| 景宁| 安福县| 酉阳| 苍山县| 陕西省| 珲春市| 渝北区| 工布江达县| 大足县| 古浪县| 元氏县| 辽源市| 绥中县| 七台河市|