罗剑锋的C++实战笔记
罗剑锋
奇虎360技术专家,Nginx/OpenResty开源项目贡献者
立即订阅
3812 人已学习
课程目录
已完结 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
登录|注册

轻松话题(二) | 给你分享我的工作百宝箱

罗剑锋 2020-05-25
你好,我是 Chrono。
今天,我再来说点 C++ 之外的话题。我来聊聊我的工作方式,给你介绍一下我用的开发环境,有快捷键、配置脚本、常用命令什么的。算不上什么“高效技巧”,但是也能从小处提高工作效率,希望能给你一点借鉴。

Linux

我主要是在 Linux 上写程序,经常要登录到内部的服务器,但我常用的笔记本或者台式机上装的还是 Windows,所以就需要有一个“趁手”的客户端。
Windows 上有很多这样的软件,最早我用的是 PuTTY,但其他很多同事用的是 XShell。不过,现在的我已经都不用这些了。
你一定想知道,难道还有什么比 PuTTY、XShell 更好更强大的远程终端吗?
要说有也算有,要说没有也算是没有。
因为,现在我就把 Linux 操作系统当成终端机来使用,就用它内置的 Terminal、ssh 命令来实现远程登录。
具体的做法也很简单,安装一个 VirtualBox,再最小化安装一个 Ubuntu,就可以了。
这么做的好处在哪里呢?
首先,这个环境完全是免费的,不需要注册或者破解。其次,它本身就是 Linux,与开发环境相同,可以用来在本地做试验、“练手”。再次,Linux 里有非常丰富的工具可以下载安装,能够随心所欲地定制环境,用起来非常舒心。
取消
完成
0/1000字
划线
笔记
复制
© 版权归极客邦科技所有,未经许可不得传播售卖。 页面已增加防盗追踪,如有侵权极客邦将依法追究其法律责任。
该试读文章来自付费专栏《罗剑锋的C++实战笔记》,如需阅读全部文章,
请订阅文章所属专栏。
立即订阅
登录 后留言

精选留言(19)

  • 嵇斌
    看了这篇发现就四个字:朴实无华。

    作者回复: 老环境用习惯了,见笑。

    2020-05-25
    7
  • Eric
    一直以来在Linux环境开发,从没用过IDE,都是一套vim走天下,很认同全键盘提高效率的理念。自己也做了一套vim配置放在GitHub上,有不少同事在用。分享一下参考:https://github.com/sky8336/skyVim
    每次在一台新的机器上,执行一两个脚本就配置好了自己熟悉的东西。还是很方便的。

    作者回复: 欢迎同好交流经验心得。

    2020-05-28
    1
    6
  • 张JL
    罗老师的这个课程看到现在,给我最大的感觉就是接地气,说的很细致,也很实用。干货满满,但是又觉得努把力自己也能做的到,不会有可望不可及之感。

    作者回复: 嗯,因为我自己就是从小白过来的,现在也一直是在第一线,所以说的就都是自己的切身体会,实用至上。

    如果所有学这个课程的同学都有这种感受就太好了。

    2020-05-26
    6
  • lckfa李钊
    现在使用Windows10 的wsl2,即Linux子系统,可以拥有在Linux下一样的开发体验,其原理应该也是Linux虚拟机。不得不说,微软在这方面的进步有目共睹。工具的话,我使用VSCode,sublime和Windows Terminal。
    vi之前用过一段时间,但是手残党,现在只记得:!qw了。看老师用的这么溜,又心痒痒了。
    Git确实是个极好的版本工具,自从用了git,我的coding life变得舒服多了。
    另外的话,还有Github,这东西自从被微软收购后变得财大气粗了,私有库都开始免费了。

    作者回复: 微软的形象这些年确实在改变,不再是“业内公敌”,只是我现在是很难改用回Windows了。

    GitHub是所有程序员都必须用的网站,实在的好东西。

    2020-05-25
    4
  • 风华神使
    我直接windows terminal,别的ssh客户端都卸载了

    作者回复: 好同学,有魄力,笑。

    2020-05-25
    1
    3
  • 文超
    老师讲得这些都偏向于后台开发方向的,对于客户端程序,部分观点实在不能苟同。
    对于底层图形学开发、引擎类的开发,还是非常鼓励使用IDE集成开发环境的,能够极大的提升开发体验。

    作者回复: 因为我一直以来都是后端开发,所以只能讲这方面的经验了。

    图形学、引擎类的没做过,没有发言权,就不多说了。

    欢迎有IDE环境经验的同学分享。

    2020-05-25
    1
    2
  • qinsi
    多窗口: tmux
    命令行历史: hstr
    免密登录: ssh-copy-id
    diff: delta

    作者回复: 这些也都是很不错的工具,很好的分享。

    tmux我以前用过,操作略麻烦了点,后来就没怎么用。
    hstr需要安装,而vi也可以达到类似的效果。
    后两个没用过,有机会试一下,非常感谢。

    2020-05-27
    1
  • SometimesNever
    这个gdb命令太实用了,👍👍👍👍

    作者回复: gdb比较复杂,很多东西我也没有完全掌握,你如果有觉得好用的命令欢迎分享出来。

    2020-05-26
    1
  • 吃鱼
    我也是vim深度依赖 但是现在更喜欢vscode装上vim插件远程连接 既照顾了手指习惯又获得了好的补全和提示体验

    作者回复: vscode我也装了vi插件,用来看代码还是很不错的,但用惯了unix,windows 界面总是不太适应。

    2020-05-25
    1
  • silverhawk
    Windows Subsystem for Linux Installation,最近build大会才进一步原生支持,可以直接VScode在window下做IDE,但是其他操作环境在Linux下

    作者回复: win10用的少,一直虚拟机用习惯了,各种场合都适用。

    2020-05-25
    1
  • 泡泡龙
    VBox的增强工具插件是个头疼的问题,我现在安了四个发行版了,只要虚拟机里的Linux系统一更新,比如内核软件包更新后,视频分辨率就不对了,就没法自适应窗口大小了。老师有没有遇见过这种问题?

    作者回复: virtualbox确实有一些问题,我在mac上用的时候分辨率就挺烦人,更新版本也没有完全解决。可惜的是只有这么一个免费的可以用。

    2020-05-25
    3
    1
  • 锦鲤
    罗老师,请教下,C++ + Lua的组合,一般适用于哪些场景?C++去集成Lua有哪些方案啊?

    作者回复: 这个需要对C++和Lua的分工有明确的认识,C++开发底层稳定的功能接口,Lua开发上层易变的业务逻辑,如果能比较明确地在系统里分成这两部分就适合混合编程。

    可以参考一些比较成功的C++/Lua例子,比如OpenResty、Cocos2d,再对照自己的实际工作。

    2020-07-13
  • 刘浩
    搞个vnc感觉也挺爽的

    作者回复: 每个人都有自己合适自己的工作方式,能够让自己用起来舒服就是最好的。

    2020-06-16
  • jxon-H
    非常称手的“兵器“,谢谢罗老师,我收下了,我也要拿它来练“武功”。

    作者回复: 有了心得后欢迎再来分享。

    2020-05-27
  • 锦鲤
    罗老师,请教下,比较初级的问题,跟文中的主题没有关联。Linux下的<linux/types.h>这个头文件,大致内容:
    #ifndef _LINUX_TYPES_H
    #define _LINUX_TYPES_H
    #include <asm/types.h>
    #ifndef __ASSEMBLY__
    #include <linux/posix_types.h>
    ......
    这个linux/types.h头文件在Windows下有没有对应的版本?目前是想考虑Windows下和Linux下跨平台的版本

    作者回复: 很久没有在Windows上开发了,情况不是太清楚,只能大略说一下。

    linux/types.h头文件应该是系统相关的,在Windows上大概率是没有完全对应的,但我们可以自己做跨平台兼容。

    比如先用条件编译,检查系统,再包含头文件。对于必须的类型,可以用宏定义来屏蔽系统差异。

    这方面可以参考一下Nginx源码,它是跨平台的,去GitHub上看看os目录里是如何做的吧。

    2020-05-27
    1
  • java2c++
    ssh密码设置简单终究需要输入密码,其实有免密登陆的,命令是ssh-key-gen生成公钥私钥,把公钥copy到目标机就可以了的。
    使用虚拟机的优势我没有看明白呢,毕竟在个人电脑上装虚拟机很耗资源,xshell远程登录到目标机后一样可以使用vim,设置alias啊

    作者回复:
    1.这是个方法,可能是惯性思维了,以前一直没想到。

    2.xshell好像是未注册版开多窗口有限制,而且Linux就可以开多个窗口,而且即使不登录也可以用很多工具,比如man。

    2020-05-27
  • 完全不会C++
    受益良多,继续跟着老师前进

    作者回复: 有自己的好经验也欢迎一起分享。

    2020-05-25
  • 文若
    老师,我们公司的项目主要中针对传统企业定制项目,一直使用的是SVN 管理代码。使用的方法是建立一个基础分支,然后针对每个项目建立分支,升级版本再在分支上建立分支。目前维护起来很麻烦,经常修改一个问题,要在的多个分支上修改,切换成git是否能好一些?

    作者回复: 当然了,svn很重,开分支成本非常高,不适合现在的快速开发流程了。

    git的分支非常轻,几乎没有成本,所以可以随便开分支试验或者改bug,然后任意合并修改。

    有本电子书pro git,里面写的很详细,也可以找找其他资料,看一天应该就能掌握了。

    2020-05-25
  • 靳远东
    都说Docker比虚拟机好用,老师用过没有

    作者回复: 抱歉啊,没怎么用过,帮不上你。

    2020-05-25
    2
收起评论
19
返回
顶部