您好,欢迎来到12图资源库!分享精神,快乐你我!我们只是素材的搬运工!!
  • 首 页
  • 当前位置:首页 > 开发 > WEB开发 >
    Rust能不能做后端开发言语?(3)
    时间:2020-10-16 21:19 来源:网络整理 作者:网络 浏览:收藏 挑错 推荐 打印

    Diesel会直接在项目根目录下的schema.rs文件中依据数据库表的结构生成好相应的数据结构。然后经过diesel支持的Macro,树立异样结构的struct就可以直接调用数据库中的数据条了。例如关于可以查询的数据条,可以在struct定义之上添加如下的Macro

    #[derive(Queryable)] 

    struct Herb { 

        uid: i32, 

        cn_name: String, 

        en_name: String, 

        latin_name: String, 

        botanic_name: String, 

        part_used: String, 

        common_name: String, 

        country_of_origin: String, 

        description: String, 

        harvest_season: String, 

        grow_duration: String, 

    这样就可以直接经过在相应的业务逻辑中经过filter,load等查询函数了。

    全体来说Diesel在开发进程中十分繁复明了,就算初次接触的话,也是能直接掌握,关于之后比较复杂的数据库操作自在度不确定能否足够,不过关于普通项目的数据操作还是足够的。

    言语结构

    Rust的言语结构同时是优势也是优势。关于初次接触的时分,Rust的言语结构十分令人疑惑,主要是其中的一些调用符号,比如->, : :, <>等等,不过熟习之后就会觉得这些符号也算比较直观,而且在不同场景运用不同的符号让代码的可读性反而提高了。

    然后Rust高开发效率的特性也经过Macro机制表现的淋漓尽致。经过不同derive Macro设置可以直接将相应的笼统函数添加给struct,这样可以少写很多代码。例如下面我给这个struct添加了数据库查询(Queryable)的同时,添加了JSON的Serialize和Deserialize的功用。这样在查询出数据条可以直接调用JSON的map函数来生成JSON字符串。

    #[derive(Serialize, Deserialize, Queryable)] 

    pub struct Herb { 

        pub uid: i32, 

        pub cn_name: String, 

        pub en_name: String, 

        pub latin_name: String, 

        pub botanic_name: String, 

        pub part_used: String, 

        pub common_name: String, 

        pub country_of_origin: String, 

        pub description: String, 

        pub harvest_season: String, 

        pub grow_duration: String, 

    这个关于RESTful接口十分有用,可以将数据库的查询结果直接map然后前往。

    总的来说,一末尾会觉得Rust是比较复杂的编程言语,不过熟习了之后,还是十分喜欢Rust繁复的代码结构和高效的开发体验。

    文档社区

    (责任编辑:admin)