1、RUST:A PRODUCTIVE LANGUAGE FOR DATABASE APPLICATIONSCARL LERCHEFASTEST GROWINGPER SLASHDATAUSED(MOSTLY)AT THE INFRASTRUCTURE LEVELPICK THE LANGUAGE BEST SUITED FOR THE JOBRUST IS GOOD FOR HIGH QUALITY CODERUST IS NOT AS PRODUCTIVE“WHY WASTE YOUR TIME WITH RUSTS TYPE SYSTEM IF YOU ARE BUILDING A WEB
2、APP?”HACKERNEWS COMMENTIS THAT ACTUALLY TRUE?ADOPT RUST FOR PERFORMANCE,KEEP IT FOR PRODUCTIVITYRUST IS GOOD FOR LONG-LIVED CODERUST IS HARDER TO LEARNRUST HAS A LESS DEVELOPED ECOSYSTEMARE WE WEB YET?AREWEWEBYET.ORGTOASTY A NEW ORM FOR RUST BUT ALSO NOSQLEASE OF USE OVER MAXIMIZING PERFORMANCERUST
3、CAN BECOME EASIER TO LEARNHARD PARTS:TRAITS&LIFETIMESPREFER ENUMS OVER TRAITSfn handle_payment(client:&RealBilling,amount:u64)-Result if amount 1000 Err(Amount to high)else client.bill(amount)trait Bill fn bill(&self,amount:u64)-Result;fn handle_payment(client:&T,amount:u64)-Result .enum Billing Rea
4、l(RealBilling),Mock(MockBilling),fn handle_payment(client:&Billing,amount:u64)-Result .PROCEDURAL MACROSasync fn hello_world()-impl IntoResponse let hello_world=json!(hello:world );Json(hello_world)let app=Router:new().route(/,get(hello_world);#derive(Serialize)struct HelloWorld hello:&static str,as
5、ync fn hello_world()-impl IntoResponse Json(HelloWorld hello:world,)#toasty:model struct User#key#auto id:Id,#unique email:String,todos:Todo,SCHEMA FILE AND CODE GENERATIONlet user=User:find_by_email(email).get(&db).await?;AMOUNT OF REQUIRED CONTEXTasync fn hello_world()-impl IntoResponse let messag
6、e=world;let hello_world=json!(hello:message );Json(hello_world)HOW IMPORTANT IS READING THE GENERATED CODE?#derive(Serialize)struct HelloWorld hello:&static str,AVOID SECOND-ORDER TRAIT BOUNDSfn set_name(&mut self,name:T)where T:Into,.fn se