2.5k 2 分钟

来到公司后了解到我们的游戏服务器是使用 tcp 协议进行通信的,使用 epoll 来监听和处理 socket. 网络协议会一定程度游戏数据的网络传输的效率、安全性、完整性、顺序性等,因此网络协议的选择一定要恰当.

2.6k 2 分钟

在码代码时会经常遇到 stl 容器类的传递,stl 类内数据量较大时,拷贝时会耗费大量资源,需要避免,所以需要了解何时会调用拷贝构造函数.

网上看到一种答案:

拷贝构造函数调用的几种情况:

  1. 当用类的一个对象去初始化该类的另一个对象(或引用)时系统自动调用拷贝构造函数实现拷贝赋值。
  2. 若函数的形参为类对象,调用函数时,实参赋值给形参,系统自动调用拷贝构造函数。
  3. 当函数的返回值是类对象时,系统自动调用拷贝构造函数。

为验证正确性,以下做了个实验.

1.3k 1 分钟

经过几个礼拜的实习,终于有点熟悉公司的环境了。我在公司的工作环境大致如下:

  • 语言: 主要使用 c++, 还会有一些 lua、go 等语言
    编辑器: vim
    编译器: gcc, 编译时使用 Makefile
    版本控制: git、svn, 代码的管理主要通过 git, 配置文件的管理主要通过 svn
    调试工具: gdb

从刚开始什么都不会,编码、调试什么的都无从下手,现在终于能够上手了。以下总结一下这几个礼拜中的一些心得,主要是一些开发时的技巧.(以下截图都是网上找的,因为公司代码不方便放出来~)

13k 12 分钟

我一直很疑惑 vim 为什么还有很多人使用,交互十分困难,上手难度很大。记得当时第一次用 vim 时,修改文件和保存文件都搞了半天。但后来听说很多公司实际开发时都会用 vim. 于是去网上找了找 vim 的优势,大概可以总结成以下几点:

# - vim 对于一个远程 shell 是最友好的编辑器 -

alt 键一般是难以通过远程登陆传播的,而 ctrl 键部分组合会被终端吃掉。而 vim 的交互只需要通过字母的组合键和冒号的指令。只有 vim 这种为终端 shell 设计的编辑器。他的快捷键设计使得自己能够正常的在 shell 中执行自己的绝大部分操作而不出故障. 这是我认为 vim 最重要的一点优势.

# - 拥有较好的一致性 -

如果用 IDE 的话,不同的 IDE 功能不同,换一个新的 IDE 要习惯一个新的 IDE 的配置。但是 vim 只要你掌握最基本的用法就可以.

# - 完全依靠键盘,不使用鼠标 -

不能使用鼠标可以说是 vim 交互的缺点,但当你习惯以后,这反而会成为一种优势。一切操作都依靠键盘以后很多时候是可以提高工作效率的.