课程分类

课程介绍
课程目录
用户评论
课程介绍
课程目录
用户评论

你将获得

  • 掌握某些知识点
  • 学会某些技巧(或思路)

教学服务

  • icon

    1v1专属答疑服务

  • icon

    BAT专家面试辅导

讲师介绍

  • 计算机专业硕士研究生,擅长C、C++和计算机安全,麦洛科菲教学总监,《程序员求职成功路:技术、求职技巧与软实力培养》作者,创立了麦洛科菲高端IT培训,培训了大量成功就职于BAT的学员

  • 课程详情

    周哥简介
    周哥:男,真名周扬荣,毕业于中科院软件所。曾就职于阿里巴巴,奇虎360安全公司,SUN中国工程研究院,北大计算机研究所等,创办了“麦洛科菲”高端IT安全培训 。              
        
    课程内容介绍                
    Rust是一门革命性的编程语言,它拥有和C/C++同样的高性能,却又比C/C++安全。它既无GC机制,又不用手动释放内存,还不会有各种溢出漏洞,是C/C++,Go,Java等编程语言的直接竞争者。

    目前包括亚马逊,GOOGLE,微软,脸书,字节跳动,阿里巴巴等在内的世界各大互联网公司都开始使用Rust来开发项目。AWS使用Rust开发云服务,Facebook 已开始使用 Rust,苹果、谷歌、Dropbox 和 Cloudflare 也已开始使用它。微软的云开发者代言人Ryan Levick在AllThingsOpen 虚拟会议上表示,微软正逐渐从C/C++改用Rust来构建其基础设施软件。微软还鼓励其他软件行业巨头考虑采取同样的做法。“PingCAP (TiDB 开源分布式关系型数据库)用 Rust ,字节跳动也一直在招 Rust 的人,阿里巴巴前一段上线了一个用 Rust 写的时序数据库替代 InfluxDB,“系统消耗对比低好几倍以上,另外查询性能也有很大改善”。B 站和知乎的后端组件里也有用 Rust 实现的。

    目前使用Rust开发的知名产品包括:
    Mozilla Firefox 浏览器,Gecko 浏览器;Tor 浏览器;
    Discord(一款游戏聊天应用);
    GNOME Fractal(一款即时消息客户端);
    谷歌 Fuchsia 操作系统;
    Redox OS;
    Rocket Web Framework;
    Servo(一款由 Mozilla 开发的网页浏览器排版引擎);
    Terminus DB(一款数据库软件);
    Libra(数字货币);
    OpenDNS
     Dropbox
     Cloudflare

    本课详细介绍了Rust编程的各个方面,除了Rust的基础语法,尤其重点介绍了Rust最具创新性的特性,比如:所有权,生命周期,无畏并发等等。还介绍了如何在Rust里与Mysql,redis进行交互,如何解析json数据等;最后还演示了一个基于Rust的实战项目web服务器开发与优化。课程大纲如下:

    一,序言篇
    1序言
    1.1Rust简介
    1.2Java, GO, Rust等对比
    1.3企业使用Rust案例与Rust招聘
    1.4RUST开发环境安装

    二,基础语法篇
    2Hello world编写与测试
    3Hello world-调试
    4Cargo使用
    5Rust基础语法-变量与基本类型
    6Rust基础语法-数据类型(2)
    7Rust运算符
    8.1语句(1)if
    8.2语句(2)循环
    8.3语句(3)
    9.1函数(1)
    9.2函数(2)
    9.3函数(3):函数返回类型
    9.4命令行参数
    9.5函数(3):从不返回的 never type !
    10结构体(1):定义与实例化
    11结构体(2):方法
    12.1枚举(1):定义
    12.2枚举(2):Match与枚举结合
    12.3枚举(3):标准库中的Option
    13.1模块(1)二进制包
    13.2模块拆分
    13.3main.rs与lib.rs
    13.4模块(2)库包
    13.5mod(3):pub 模块,函数,结构体,枚举等
    13.6mod(4):use
    13.7mod(5):使用外部包
    13.8模块(6):workspace工作空间
    13.9发布到crates.io
    14.1集合(1):vector动态数组
    14.2集合(2):字符串
    14.3集合(3):hashmap
    15.1错误处理(1):panic
    15.2错误处理(2):Result<T,E>
    15.3panic! or result?
    16文件IO
    17各编程语言基础语法对比

    三,高级语法篇
    18.1泛型编程(1):函数泛型
    18.2泛型编程(2):结构体泛型
    18.3泛型编程(3):枚举泛型
    18.4泛型编程(4):方法泛型
    18.5泛型编程(5):单态化与性能分析
    19.1Trait编程(1):定义与实现
    19.2Trait编程(2):trait约束
    19.3Trait编程(3):使用 trait bound 有条件地实现方法
    19.4Trait编程(4):完全限定语法与消歧义
    19.5Trait编程(5):孤儿规则(orphan rule)
    20动态大小类型(dynamically sized types)DST
    21.1面向对象(1):面向对象封装,继承
    21.2面向对象(2):多态
    21.3面向对象(3):trait对象动态分发与对象安全
    22.1所有权(1):浅拷贝,移动move,深拷贝
    22.2所有权(2):Copy Trait
    22.3所有权(3):传参与返回值
    22.4所有权(4):引用和借用
    22.5所有权(5):&str字符串切片
    23.1生命周期(1):借用检查器
    23.2生命周期(2):函数中的泛型生命周期
    23.3生命周期(3):结构体定义中的生命周期标注
    23.4生命周期(4):生命周期省略
    23.5生命周期(5):方法定义中的生命周期标注
    23.6生命周期(6):静态生命周期
    23.7生命周期(7):泛型参数、trait bounds 和生命周期
    23.8生命周期(8):生命周期子类型
    23.9生命周期(9):trait 对象生命周期的推断
    23.10生命周期(10):匿名生命周期
    23.11生命周期(11):swap函数实现分析
    24.1函数式编程(1):闭包
    24.2函数式编程(2):返回闭包
    24.3函数式编程(3):迭代器
    24.4函数式编程(4):实现 Iterator trait
    24.5函数式编程(5):迭代器与循环性能分析
    25.1智能指针(1):基本概念
    25.2智能指针(2):Box
    25.3智能指针(3):deref与drop
    25.4智能指针(4):RC
    25.5智能指针(5):Cell<T>
    25.6智能指针(6):RefCell<T>
    25.7智能指针(7):Rc和RefCell合用
    25.8智能指针(8):循环引用
    25.9智能指针(9):Weak
    26.1并发编程(1):线程创建
    26.2并发编程(2):消息传递与通道
    26.3并发编程(3):数据共享与Mutex
    26.4并发编程(4):send和sync
    27.1不安全rust(1)裸指针和不安全函数
    27.2不安全rust(2):安全抽象
    27.3不安全rust(3):extern调用C函数
    27.4不安全rust(4):静态变量和不安全trait

    四,应用与实战篇
    28Rust网络编程
    29Rust数据库编程
    30Rust json支持
    31Rust 访问redis
    32.1实战篇-web服务器(1)单线程版本
    32.2实战篇-web服务器(2)多线程版本
    32.3实战篇-web服务器(3)线程池版本


    学员评价                

                  

    勘误提示         
    1,序言部分
    Rust对数组溢出的检测,不是在编译阶段完成的,而是在运行的时候通过运行时检测发现数组存在溢出然后直接panic。请参考后面课程关于数组的详细介绍。

    如您在学习过程中发现任何“错误”,请通过email:10950150@qq.com告知我们错误所在的课程名称和错误所在视频的时间起始位置。错误一经我们确认,我们将会在该门课程的“课程概述”里提供“错误更正”信息,并对您表示衷心的感谢。
    温馨提示
    • 请勿私下交易
      请勿在平台外交易。与机构和老师私下交易造成的任何损失及纠纷,腾讯课堂不承担任何责任
    • 听课说明

      1、电脑:访问腾讯课堂官网 ke.qq.com 查看我的课表或下载win/mac客户端听课

      2、手机/平板:下载腾讯课堂APP, 进入学习页面听课