罗剑锋的C++实战笔记
罗剑锋
奇虎360技术专家,Nginx/OpenResty开源项目贡献者
立即订阅
3798 人已学习
课程目录
已完结 30 讲
0/4登录后,你可以任选4讲全文学习。
课前导读 (2讲)
开篇词 | 把C++从“神坛”上拉下来,这次咱这么学
免费
课前准备 | 搭建实验环境
概论 (5讲)
01 | 重新认识C++:生命周期和编程范式
02 | 编码阶段能做什么:秀出好的code style
03 | 预处理阶段能做什么:宏定义和条件编译
04 | 编译阶段能做什么:属性和静态断言
05 | 面向对象编程:怎样才能写出一个“好”的类?
语言特性 (5讲)
06 | auto/decltype:为什么要有自动类型推导?
07 | const/volatile/mutable:常量/变量究竟是怎么回事?
08 | smart_ptr:智能指针到底“智能”在哪里?
09 | exception:怎样才能用好异常?
10 | lambda:函数式编程带来了什么?
标准库 (4讲)
11 | 一枝独秀的字符串:C++也能处理文本?
12 | 三分天下的容器:恰当选择,事半功倍
13 | 五花八门的算法:不要再手写for循环了
14 | 十面埋伏的并发:多线程真的很难吗?
技能进阶 (4讲)
15 | 序列化:简单通用的数据交换格式有哪些?
16 | 网络通信:我不想写原生Socket
17 | 脚本语言:搭建高性能的混合系统
18 | 性能分析:找出程序的瓶颈
总结篇 (5讲)
19 | 设计模式(上):C++与设计模式有啥关系?
20 | 设计模式(下):C++是怎么应用设计模式的?
21 | 知识串讲(上):带你开发一个书店应用
22 | 知识串讲(下):带你开发一个书店应用
期末测试 | 这些C++核心知识,你都掌握了吗?
结束语 (1讲)
结束语 | 路远,未有穷期
轻松话题 (4讲)
轻松话题(一) | 4本值得一读再读的经典好书
轻松话题(二) | 给你分享我的工作百宝箱
轻松话题(三) | 提高生活质量的App
轻松话题(四) | 真正高效的生活,是张弛有度
罗剑锋的C++实战笔记
15
15
1.0x
00:00/00:00
登录|注册

17 | 脚本语言:搭建高性能的混合系统

罗剑锋 2020-06-13
你好,我是 Chrono。
经过了前面这么多节课的学习,相信你已经认识到了 C++ 的高效、灵活和强大。使用现代特性,再加上标准库和第三方库,C++ 几乎“无所不能”。
但是,C++ 也有自己的“阿喀琉斯之踵”,那就是语言复杂、学习曲线陡峭、开发周期长、排错 / 维护成本高。
所以,C++ 不能完全适应现在的快速开发和迭代的节奏,最终只能退到后端、底层等领域。要想充分发挥 C++ 的功力,就要辅助其他的语言搭建混合系统,尽量扬长避短,做好那最关键、最核心的部分,这样才能展现出它应有的价值。
由于当前的操作系统、虚拟机、解释器、引擎很多都是用 C 或者 C++ 编写的,所以,使用 C++,可以很容易地编写各种底层模块,为上层的 Java、Go 等语言提供扩展功能。
不过,今天我不去说这些大型语言,而是讲两种轻便的脚本语言:Python 和 Lua,看看 C++ 怎么和它们俩实现无缝对接:以 C++ 为底层基础,Python 和 Lua 作为上层建筑,共同搭建起高性能、易维护、可扩展的混合系统。

Python

Python 应该是除了 JavaScript 以外最流行的一种脚本语言了,一直在 TIOBE 榜单里占据前三名的位置。而且,在新兴的大数据、人工智能、科学计算等领域,也都有着广泛的应用。很多大公司都长期招聘 Python 程序员,就是看中了它的高生产率。
取消
完成
0/1000字
划线
笔记
复制
© 版权归极客邦科技所有,未经许可不得传播售卖。 页面已增加防盗追踪,如有侵权极客邦将依法追究其法律责任。
该试读文章来自付费专栏《罗剑锋的C++实战笔记》,如需阅读全部文章,
请订阅文章所属专栏。
立即订阅
登录 后留言

精选留言(8)

  • reverse
    老师,能增加一部分内容讲讲 jsBridge吗 我正常的研发都要和nodejs打交道 但是经验不足

    作者回复: 没用过jsBridge,不好讲,抱歉了。

    如果是单纯地用C/C++写native接口让js调,那还是比较简单的。

    2020-06-15
    2
  • 有学识的兔子
    1. 我想这种方式可以利用脚本语言的高产的优势,例如老师说的python;
    2. 把C++嵌入到脚本语言可以有效提升脚本语言的执行效率;而把脚本语言嵌入到C++,有点通过利用脚本语言特性的优势来弥补相对C++的弱项,使得C++开发变得更灵活和开放。

    作者回复: 说的很好。

    2020-06-14
    2
  • 无为而立
    之前用swig,再尝尝pybind11,感谢大佬提供思路

    作者回复: pybind11比较现代,用C++11的特性简化了很多原来的操作,非常推荐。

    2020-06-13
    2
  • 浑浑噩噩cium
    以前遇到过升级软件就是lua和c++配合,业务流程就是lua脚本里面控制,c++调用lua脚本。

    作者回复: 对,这是一种很好的混合编程方式。

    2020-06-13
    2
  • f
    pybind11例子举错了吧,python定义的函数用python调??.

    作者回复: 可以看源码,都是用C++写的函数和类,然后在Python里调用。

    2020-06-16
    1
  • Eglinux
    老师,能录个视频大概讲一下 github 上 cpp_study 仓库里面的代码吗?

    作者回复: GitHub上的代码都是与各讲结合在一起的,我特意写的很简单,只要认真看课程就能明白,如果不明白可以留言,或者在GitHub上提issue。

    2020-06-13
    1
  • hao
    C++和python配合适合实现大型高并发高性能服务端吗?

    作者回复: C++和python混合编程没问题,但要实现“大型高并发高性能服务端”,可能就没那么简单了。

    因为C++偏向在底层写高性能组件,Python实现业务逻辑,而服务器应用一般业务比较多,这样就难以发挥C++的高性能优势,可能需要仔细划分两者的功能区。

    我个人推荐用Nginx+Lua,或者是OpenResty。

    2020-07-02
  • Seven
    信息量大,非常好!

    作者回复: 课下可以再自己实践试试,发挥脚本语言的威力。

    2020-06-23
收起评论
8
返回
顶部