08 2016 档案

摘要:做任务单用go实现了异步日志,计划c++化练练手。本以为分分钟搞定的事,结果debug到凌晨两点/(ㄒoㄒ)/~~ 第一版关键代码如下: 共有五处Bug哟~ 用std::thread做成员,初始化列表指定子线程启动函数,该函数访问资源时,可能都没初始化好(ctor中调度出去了) Stop逻辑是后添加 阅读全文
posted @ 2016-08-26 16:20 *蚂蚁* 阅读(495) 评论(2) 推荐(0)
摘要:用过的语言按时序算:c++、lua(粗浅脚本)、erlang、c#(unity)、lua、go。印象最深的是erlang,因为特别吃亏,嗯。 那会连多线程、多进程都不怎么了解,虽然看了erlang的进程通信模型,mail_box、gen_server原理,但不理解什么时候要它们。还有递归为主的编码方 阅读全文
posted @ 2016-08-25 18:23 *蚂蚁* 阅读(148) 评论(0) 推荐(0)
摘要:看项目的tcp通信模块时跟同事的偶然讨论,意外拉出来好几样东西,体验非常棒,记录下来~( ̄0  ̄)y 周梦飞 12:08:27 周梦飞 12:08:27 我们的tcp网络直接用的conn,之前在看别人项目里见到有用bufio.Reader优化的 张明 12:13:45 张明 12:13:45 io. 阅读全文
posted @ 2016-08-11 10:40 *蚂蚁* 阅读(855) 评论(0) 推荐(0)
摘要:【c++端游】 第一个接触的游戏项目,MMORPG,虽说MMORPG有蛮高的技术门槛,但那会大多在写逻辑,很少深入底层,所以收获有限。 win平台的,整体看分了三层:HomeServer、GameServer、四个DB进程(AccountDB、CharDB、LogDB、MailDB)。HomeSer 阅读全文
posted @ 2016-08-10 21:25 *蚂蚁* 阅读(442) 评论(0) 推荐(0)
摘要:刚出道时候写了这样一个Bug:(这bug让我们赚了,两个多月没人抽到好东西~) 作死的优先级问题 这个功能测了两遍都没发现问题。第二次还是数值策划反馈:一个多月了没爆好产出,有些不正常,再测一遍…… 为什么一直没发现? 由于“LIMIT_RMB”外网环境下非常大,QA要跑到很麻烦,所以内网测试时把这 阅读全文
posted @ 2016-08-10 17:51 *蚂蚁* 阅读(516) 评论(3) 推荐(0)
摘要:上周发来个运营需求:服务器得接收各类运营消息,并记录下来(二进制文件、入库)。 我们的消息处理是单线程轮询取队列的方式,如在响应函数中直接调IO等耗时操作,整个处理线程都会被阻塞。所以设计了这个异步日志模块。核心代码如下: Append()给逻辑线程调用的,负责填充buffer,buffer被写满即 阅读全文
posted @ 2016-08-10 17:02 *蚂蚁* 阅读(673) 评论(0) 推荐(0)
摘要:和UDP这种“滚珠”式的协议不同(一份数据就是一个udp packet),TCP以报文段的方式传递数据,其大小受网络链路的限制。在SYN报文段中互相通告最大报文段长(MSS)。所以业务层交付的数据,会被TCP拆分/合并为合适的报文段(这也就是为嘛TCP数据跟水流似的,没有边界)。 对于每个报文段而言 阅读全文
posted @ 2016-08-09 18:34 *蚂蚁* 阅读(2300) 评论(0) 推荐(0)
摘要:《TCP/IP详解·卷一》看了三遍才算整明白个大概,一直想做个总结。 最初对TCP的印象很简单:丢包重传、流数据。丢包重传很好理解,“流数据”是什么鬼? 知乎上看到个极好的解释:把TCP看作用管子往对端灌水,水是数据,它们之间没有边界,且先发先到;UDP是往对端滚小球,它们之间有明确边界,且可能每个 阅读全文
posted @ 2016-08-04 20:39 *蚂蚁* 阅读(3444) 评论(0) 推荐(0)
摘要:入行时一直用c++写端游的逻辑,对这两者的区别几乎是0。 最先意识到有不同是在看了设计模式之后,但也没啥自己想法,代码照旧,只是依稀有个印象:都说组合好,少用继承。 用c++的那段时间对这句经验是没多少感受的。后来用erlang、lua、go开始自己设计搭建基础框架,这才在编码层级感受到两者的巨大不 阅读全文
posted @ 2016-08-02 23:12 *蚂蚁* 阅读(198) 评论(0) 推荐(0)