国产精品电影_久久视频免费_欧美日韩国产激情_成年人视频免费在线播放_日本久久亚洲电影_久久都是精品_66av99_九色精品美女在线_蜜臀a∨国产成人精品_冲田杏梨av在线_欧美精品在线一区二区三区_麻豆mv在线看

后端隊友選擇Rust,爽到了!

譯文 精選
開發 后端
雖然Rust并不是一個專屬的網絡應用開發語言,但是非常適合網絡開發。編譯器能就安全穩定方面的問題作出提醒。這使其具備了后端網絡開發的獨特優勢。

作者 | Andrew Israel

編譯 | 王瑞平

Rust作為長期以來被看好的網絡開發語言,更注重技術的穩定性,不掉鏈子,能夠將設備的性能發揮到極致,更講究精致。

相對于其它類型的語言來講,Rust是新成員。最早由Mozilla于2014年4月9日發布,是一款高級通用語言,能夠兼顧開發與執行效率。

雖然Rust并不是一個專屬的網絡應用開發語言,但是非常適合網絡開發。編譯器能就安全穩定方面的問題作出提醒。這使其具備了后端網絡開發的獨特優勢。

我曾在《用Rust創建一家初創公司》一書中提到:“初創公司應優先考慮開發人員所帶來的生產力而并非其能力。”對于一家創業公司創始人來講,這種觀點是明智的。也正因為如此,我喜歡使用Rust,并雇傭了同樣喜歡使用Rust的開發人員。

我必須提醒:如果你的團隊中沒有其他人會使用Rust,那么,教授所有同事使用Rust的成本將會很高。他們可能需要一段時間才能游刃有余地使用Rust,在此期間,你需要指導他們,工作效率會因此下降。明智的選擇是使用團隊其他人都知道的語言,除非你真正需要使用Rust。

圖片

幸運的是,我的隊友已經了解并喜歡上了使用Rust,并熟知如何讓代碼生成工具(如,Serde和Diesel)最大效能地發揮作用,以成為更好的Rust程序員。

1、用Rust語言建立數據泄露防護系統

我的團隊為Cloudflare建立了數據泄露防護系統。該系統通過對網絡流量進行“掃描”確保私人數據沒有被泄露。例如,它可以檢測并阻止黑客從你的數據庫中上傳數百萬個信用卡號碼到pastebin.org,或者阻止某人將帶有特定Office標簽的Word文檔發送到你的yahoo.com電子郵件。

實際上,我們可以將掃描網站以防止數據丟失的服務想象為數據泄露防護系統掃描儀。在此過程中,系統可能同時代理很多http請求,對性能敏感。

我們不希望用戶在打開數據泄露防護系統時,網頁瀏覽速度變慢,并因此提供了兩種構建后端API可供選擇的語言:Rust和Go。

無論使用哪種語言,構建出的后端API必須能夠與數據泄露防護系統進行互操作,并能夠共享一系列類型,如:表達用戶配置等。API服務器將用戶配置序列化為JSON,數據泄露防護系統將在需要掃描請求時反序列化該JSON。

在實際操作過程中,我更傾向于用Rust語言編寫所有序列化和反序列化程序。此外,我個人比較傾向于在系統的不同部分之間共享代碼,針對性能關鍵型服務和非性能敏感型服務使用Rust可以大大簡化整個代碼庫。

2、用Rust構建數據庫

雖然Rust在構建數據庫方面并不出色,但我還是認為它在此方面性能優良。

就拿Rust語言中的Diesel框架來說,它能夠從SQL數據庫語言之中遷移生成類型化SQL模式,從而生成所有SQL查詢。此外,當更新SQL模式時,Diesel將重新生成適當的Rust模型。

實際上,在Rust類型系統中構建SQL模型會導致一系列問題,包括:錯誤消息超過60行、毫無意義的錯誤信息、很難將公共代碼分解為共享函數等。

但總的來說,如果你的應用程序在很大程度上依賴于數據庫的許多功能,我認為有必要確保你的數據庫查詢獲得了正確的檢查類型。

數據庫查詢不是API后端中可選的額外內容,它們幾乎是你的整個代碼庫。所以確保它們正確是值得的。

3、用Rust進行業務建模

運用Rust語言中的Diesel和Serde框架,你可以在API中生成幾乎所有重要的代碼(讀取請求、執行數據庫查詢和編寫響應),從而使你有更多的時間來編寫業務程序、發布特性并進行業務建模。

重要的是,存儲用戶配置的后端API能夠在軟件中正確地模擬現實世界。如果用戶想在軟件中模擬辦公室布局,類型系統就能夠直接對辦公室建模,而不必讓用戶推送無效配置。

用戶往往希望在編譯時而不是在運行時檢測到無效的配置,從而盡量減少測試和錯誤代碼。例如,用戶的辦公室不可能同時位于兩個時區。那么,你的軟件模型就不應該能夠表示具有兩個時區的辦公室。

對了,Rust有兩個特性可以幫助你準確地進行業務建模:枚舉和不可克隆類型。

重點說下Rust的枚舉特性。它還可以被稱為“和類型”、“標記聯合”、“代數數據類型”或“帶有關聯值的枚舉”。這取決于你使用的語言。我個人比較喜歡求和類型,iPhone開發者可以在Swift中使用。

準確地進行業務建模是我在構建高級API中非常關心的事情,正確性至關重要。如果需要確保我的軟件模型準確表現出現實世界,Rust比Go更好用。

現在談談Rust的“不可克隆類型”特性。在實際操作過程中,如果其中一個IP是“不健康”的,并斷開了Cloudflare連接,那么,Cloudflare需要避免重復使用這些IP,并使用一些以前沒有用過的IP。

應確保每個IP都有三種狀態:正在使用、未使用和以前使用過但現在“不健康”。這些IP中的每一個都可以分配給四個長時間TCP連接中的一個。

這聽起來像是一個很容易解決的問題,但在實際操作過程中很難對“每個IP地址最多只能分配給一個連接”的想法進行建模。我必須編寫大量單元測試程序,以找到兩個不同的連接獲取相同IP地址的邊緣情況。

Rust可以很容易地確保特定值只在一個地方使用。這需要確保使用該值的函數都必須引用它,或者確保你的類型沒有被強制Clone,并保證使用它的函數擁有該值的全部所有權。這樣,該值將能夠在移動時移動到函數中,函數可以在完成時返回該值。

所以,如果我想在Rust中實現上述操作系統,只需要保留我的10個IP地址的HashSet,也要確保IP沒有派生克隆出新類型。因此,Rust的“不可克隆類型”特性至關重要。

4、Rust的可靠性

對于你的初創公司來說,系統的可靠性很重要。我們提供的Rust后端服務的優點是它從不崩潰。在實踐中,Rust通常有更好的方法處理不同的選項。

而這種可靠性肯定會帶來開發人員的額外開銷,比如,考慮如何正確地匹配所有的Result和Option值。但對于許多領域來說,這種付出是有意義的。

值得注意的是,Rust不傾向于使用太多內存(如TCP連接或文件描述符)。因為當函數終止時,所有內容都會被刪除和清理。

在實際應用過程中,性能問題最終會變成可靠性問題。如果你的服務泄漏內存的時間足夠長,或者攝入了足夠多的數據,那么性能存在的瓶頸可能會導致服務器宕機。

圖片

5、是否應該選擇Rust

Rust作為高級系統編程語言做出了令人滿意的成績。當你在網絡開發時,它可以通過Serde和Diesel節省開發者時間。神奇的是,雖然類型系統簡化了業務建模過程,但是服務質量卻不會因此下降。

對于Rust語言的使用效果評價并不是絕對的,需要根據不用的情況進行判斷。如果你的團隊沒有過多的Rust使用經驗,在網絡開發時使用Rust可能會帶來非常糟糕的結果。Rust的使用難度極高,你應該根據具體情況引導團隊使用熟知的語言。

公司會根據不同的情況使用不同的語言。在Cloudflare, 我們執行大多數對性能敏感的服務過程中使用Rust,執行對性能寬松的服務(如,API后端)過程中則使用Go。我公司的團隊過去使用Go語言進行后端開發,由于上文提到的原因逐漸遷移至Rust語言。

對于使用Rust語言的不同權衡并非對每個團隊都有意義。這主要是由于學習Rust和在Rust中重寫核心業務庫需要耗費巨大成本。即便如此,仍有越來越多團隊愿意考慮使用Rust作為其在后端開發過程中使用的語言。

總之,不同公司應該根據自身的情況使用熟知的語言完成工作。如果你的團隊已經熟知Rust,那么,在完成高級項目過程中使用它絕對是明智的。

參考鏈接:??https://blog.adamchalmers.com/why-rust-on-backend/??

責任編輯:武曉燕 來源: 51CTO技術棧
相關推薦

2025-01-03 09:12:11

2024-03-12 08:22:50

TypeScriptRust框架

2024-10-10 12:34:44

2024-07-31 09:28:56

2024-10-18 11:48:00

2024-08-12 15:44:06

2020-10-16 18:33:18

Rust語言前端開發

2021-09-03 06:46:34

MyBatis緩存后端

2022-09-16 07:40:17

CloudWeGo開源Rust

2020-07-21 18:54:21

Rust類型轉換語言

2022-10-27 11:36:59

map函數對象

2020-01-29 09:20:47

CRust編程語言

2020-02-22 15:01:51

后端前端開發

2020-09-25 11:50:12

前后端分離架構Web

2019-10-17 09:00:00

GoRust編程語言

2023-08-22 08:00:00

編譯器開發RustOCaml

2013-08-08 10:19:22

2021-12-16 20:12:37

后端開發Sentry

2019-11-22 10:06:24

PythonGolangJava

2014-02-19 10:23:51

華為車聯網
點贊
收藏

51CTO技術棧公眾號

在线成人av影院| 日韩女优中文字幕| 欧美亚州在线观看| 日韩成人在线看| 色综合久久中文字幕综合网| 国产a级片免费看| 一道在线中文一区二区三区| 亚洲欧洲午夜一线一品| 视频在线91| av动漫一区二区| 欧美区高清在线| 一区视频在线| 国产精品久久久久久久久久| 国产精品视频一区二区三区综合| 亚洲精品久久久一区二区三区| 国产经典自拍视频在线观看| 亚洲欧美偷拍三级| 国产精品宾馆在线精品酒店| 久久er99精品| 精品久久久久久亚洲| 99久久www免费| av动漫在线看| 久草.com| 成人免费视频视频| 日韩中文字幕一区| 午夜日韩视频| 91日韩在线播放| 久久久久久久久国产一区| 国产精品电影在线观看| 538任你躁精品视频网免费| 亚洲图片制服诱惑| 黄视频网站在线观看| 在线影院国内精品| 免费一级网站| 欧美日韩国产首页在线观看| yourporn在线观看中文站| 欧美日精品一区视频| 成年人黄视频在线观看| 日韩欧美高清dvd碟片| 最新av在线播放| 久久夜色精品亚洲噜噜国产mv| 国产亚洲亚洲国产一二区| 77777少妇光屁股久久一区| 欧美三级情趣内衣| 国精产品一区二区| 国内精品久久久久影院薰衣草| 国产免费裸体视频| 亚洲婷婷综合久久一本伊一区| 天堂中文在线8| 精品无人国产偷自产在线| 成人综合日日夜夜| 91深夜福利视频| 国产一区二区三区免费在线观看 | 自拍偷拍99| 国产欧美一区视频| 污视频网站免费在线观看| 91国内在线视频| 欧美96一区二区免费视频| 182午夜在线观看| 日韩天堂在线观看| 青草国产精品| caopor在线视频| 欧美精品一区二区不卡| 天天揉久久久久亚洲精品| 麻豆av免费在线| 精品精品国产高清一毛片一天堂| 国产欧美自拍一区| av免费在线播放网站| 日韩电影网在线| 黄色欧美日韩| 最新天堂资源在线| 欧美精品www在线观看| 国产一区在线精品| 亚洲第一图区| 国产伦精品一区二区| 欧美国产精品一区二区| 日本成人在线网站| 日韩精品免费一区| 亚洲精品国产综合久久| 激情久久婷婷| 欧美日本一道| 色女孩综合网| 亚洲成年人在线| 美女视频黄免费的久久| 午夜影院免费在线| 国产综合动作在线观看| 777色狠狠一区二区三区| 亚洲无吗在线| 三级福利片在线观看| 欧美一区免费视频| 日韩精品中午字幕| 成人h动漫精品| 国产精品一区二区精品| 免费国产成人av| 91av视频在线观看| 色视频成人在线观看免| 99成人在线| 国产超碰精品| 丝袜国产免费观看| 黑人另类av| 日韩最新免费不卡| 亚洲国产精品av| 欧美三级网页| 大胆人体一区二区| 久久九九热免费视频| 午夜精品一区二区三区电影天堂 | 中文字幕一区二区三区视频| 国产精品亚洲片在线播放| 搞黄视频免费在线观看| 91网站在线观看免费| 亚州精品天堂中文字幕| 91极品视觉盛宴| 中日韩免费视频中文字幕| 一区二区三区精品视频在线观看| 亚洲成人短视频| 少妇性bbb搡bbb爽爽爽欧美| 神马影院我不卡午夜| 日韩女优人人人人射在线视频| 欧美精品在线观看播放| 久久只精品国产| 免费欧美在线视频| 麻豆一区二区麻豆免费观看| 在线色视频网| 亚洲 欧美 日韩 国产综合 在线| 国产精品直播网红| 久久影院资源网| 精品少妇一区二区三区免费观看 | 欧美激情xxxx性bbbb| 亚洲电影天堂av| 色综合久久综合网欧美综合网| 久久男人中文字幕资源站| 久久亚洲综合| 99国产**精品****| 日韩高清二区| 欧美性xxx| 中文字幕一区久| 91蜜桃在线视频| 成人欧美一区| 国产永久免费高清在线观看视频| 日本女优北野望在线电影| 最新天堂中文在线| 69日小视频在线观看| heyzo视频在线播放| 日本一区二区精品视频| 欧美军同video69gay| 欧美xxxx在线观看| 欧美成人sm免费视频| caoporn国产精品免费公开| 法国空姐在线观看免费| 国产日本在线视频| 久久久精品国产**网站| 成人午夜在线免费| 亚洲第一福利网| 99蜜桃在线观看免费视频网站| 亚洲高清在线免费观看| 在线观看网站免费入口在线观看国内| 亚洲网站在线| 亚洲综合一区在线| 久久精品成人欧美大片古装| 国产一区二区三区播放| 日韩av毛片| 成人在线视频免费观看| 国产精品系列在线播放| 欧美一级欧美三级| 国产一区免费观看| 中文在线√天堂| a级日韩大片| 国产午夜精品一区二区| 国产偷亚洲偷欧美偷精品| 国产在线观看一区| 亚洲精品套图| 欧美r级电影| 亚洲人成在线播放网站岛国| 久久天天躁狠狠躁夜夜躁2014| 美乳视频一区二区| 高清美女视频一区| 啄木系列成人av电影| 亚洲欧美另类小说| 91精品在线观| 成人高清免费观看mv| 国产在线视频福利| 久久99国产精一区二区三区| 久久综合九色综合欧美98| 日韩av在线免播放器| 亚洲午夜精品久久久中文影院av| a视频网址在线观看| 精品福利电影| 欧美亚洲国产一区二区三区va| 高清欧美性猛交| 99久久人爽人人添人人澡| 国产精品日韩精品在线播放 | 西西裸体人体做爰大胆久久久| 中文字幕一区二区在线观看| 国产亚洲精品久久| 欧洲精品国产| av在线网址观看| 国产情侣一区| 日韩色在线观看| 蜜桃传媒视频第一区入口在线看| 麻豆国产在线播放|