摘要: 《C++ 工程实践》新增第15节“C++ 编译链接模型精要”PDF 下载:https://github.com/downloads/chenshuo/documents/CppPractice.pdf
阅读全文
摘要: 《C++ 工程实践》新增第14节“用 STL algorithm 秒杀几道算法面试题”PDF 下载:https://github.com/downloads/chenshuo/documents/CppPractice.pdf
阅读全文
摘要: 本文总结了std::string的三种常见实现方式。全文见https://github.com/downloads/chenshuo/documents/CppPractice.pdf第13节。
阅读全文
摘要: 陈硕 (giantchen_AT_gmail)http://blog.csdn.net/Solstice http://weibo.com/giantchen陈硕关于 C++ 工程实践的系列文章: http://blog.csdn.net/Solstice/category/802325.aspx排版正常的版本: http://www.cnblogs.com/Solstice/category/287661.html陈硕博客文章合集下载: http://blog.csdn.net/Solstice/archive/2011/02/24/6206154.aspx本作品采用“Creative Co
阅读全文
摘要: 本文是前一篇《C++ 工程实践(7):iostream 的用途与局限》的后续,在这篇文章的“iostream 与标准库其他组件的交互”一节,我简单地提到iostream的对象和C++标准库中的其他对象(主要是容器和string)具有不同的语义,主要体现在iostream不能拷贝或赋值。今天全面谈一谈我对这个问题的理解。
阅读全文
摘要: C++ iostream 的主要作用是让初学者有一个方便的命令行输入输出试验环境,在真实的项目中很少用到 iostream,因此不必把精力花在深究 iostream 的格式化与 manipulator。iostream 的设计初衷是提供一个可扩展的类型安全的 IO 机制,其整个设计复杂不堪,iostream 在实际项目中的用处非常有限,为此投入过多学习精力实在不值。
阅读全文
摘要: 陈硕 (giantchen AT gmail)blog.csdn.net/Solstice前几天我在新浪微博上出了两道有关 TCP 的思考题,引发了一场讨论 http://weibo.com/1701018393/eCuxDrta0Nn 。第一道初级题目是:有一台机器,它有一个 IP,上面运行了一个 TCP 服务程序,程序只侦听一个端口,问:从理论上讲(只考虑 TCP/IP 这一层面,不考虑IPv...
阅读全文
摘要: 本文以一个 Sudoku Solver 为例,回顾了并发网络服务程序的多种设计方案,并介绍了使用 muduo 网络库编写多线程服务器的两种最常用手法。以往的例子展现了 Muduo 在编写单线程并发网络服务程序方面的能力与便捷性,今天我们看一看它在多线程方面的表现。
阅读全文
摘要: 本文谈一谈我在学习网络编程方面的一些个人经验。“网络编程”这个术语的范围很广,本文指用Sockets API开发基于TCP/IP的网络应用程序。1. 网络编程的一些胡思乱想,谈谈我对这一领域的认识 2. 几本必看的书,基本上还是W. Richard Stevents那几本
阅读全文
摘要: 本文介绍用 muduo 实现一个简单的 socks4a 代理服务器
阅读全文
摘要: 根据以上分析,似乎要 4 台 NTP 服务器才能满足基本的高可用需求,您同意吗?
阅读全文
摘要: 本文介绍用 muduo 实现一个简单的 topic-based 消息广播服务,这其实是“聊天室”的一个简单扩展,不过聊天的不是人,而是分布式系统中的程序。
阅读全文
摘要: 本文讨论了在编写单元测试时 mock 系统调用(以及其他第三方库)的几种做法。
阅读全文
摘要: 根据公司的规模和技术水平不同,分布式系统的运维分为几重境界,以下是我对各重境界的简要描述。
阅读全文
摘要: 本文介绍如何使用 timing wheel 来踢掉空闲的连接,一个连接如果若干秒没有收到数据,就认为是空闲连接。
阅读全文
摘要: 本文介绍如何使用 test harness 来测试一个具有内部逻辑的网络服务程序。
阅读全文
摘要: Muduo 网络编程示例之六:限制服务器的最大并发连接数陈硕 (giantchen_AT_gmail)Blog.csdn.net/Solstice t.sina.com.cn/giantchen这是《Muduo 网络编程示例》系列的第六篇文章。Muduo 全系列文章列表: http://blog.csdn.net/Solstice/category/779646.aspx本文已以大家都熟悉的 EchoServer 介绍如何限制服务器的并发连接数。本文的代码见 http://code.google.com/p/muduo/source/browse/trunk/examples/maxconne
阅读全文
摘要: 以单独的进程作为 test harness 对于开发分布式程序相当有帮助,它能达到单元测试的自动化程度和细致程度,又避免了单元测试对功能代码结构的侵入与依赖。
阅读全文
摘要: 看到一道热烈讨论的“移动用户资费统计系统”编程面试题,本文给出我的做法。http://blog.csdn.net/zhangxiaoxiang/archive/2011/04/06/6304117.aspx为避免版权纠纷,我这里就不引用原文了。 完整的代码见 https://github.com/chenshuo/recipes/tree/master/java/ 其中 billing/ 目录是 Java 代码,groovy/ 目录是计费规则。这份代码依赖 Groovy、JUnit、Joda date time (JSR-310) 等第三方库,见 run.sh 中 class path 的设置
阅读全文
摘要: 本文介绍一个简单的网络程序 roundtrip,用于测量两台机器之间的网络延迟,即“往返时间 / round trip time / RTT”。这篇文章主要考察定长 TCP 消息的分包,TCP_NODELAY 的作用。
阅读全文
摘要: 本文介绍 Muduo 中输入输出缓冲区的设计与实现。
阅读全文
摘要: 本文介绍如何将前文介绍的 protobuf 打包方案与 muduo::net::Buffer 结合,实现 protobuf codec 与 message dispatcher。
阅读全文
摘要: 在接收到 protobuf 数据之后,如何自动创建具体的 Protobuf Message 对象,再做的反序列化。其实,Google Protobuf 本身具有很强的反射功能,可以根据 type name 创建具体类型的 Message 对象,我们直接利用即可。
阅读全文
摘要: 摘要:本篇博客没有新东西,只不过是把去年在珠三角技术沙龙做的一次演讲的其中一张 ppt 展开讲一讲。分布式系统中的每个长期运行的、会与其他机器打交道的进程都应该提供一个管理接口,对外提供一个维修探查通道,可以查看进程的全部状态。一种具体的做法是在程序里内置 http 服务器。
阅读全文
摘要: 昨天跟朋友聊天,谈到了分布式系统中如何为进程取标识符(process identifier),写篇博客简单总结一下我的观点:以四元组 ip:port:start_time:pid 作为分布式系统中进程的全局唯一标识符(gpid)
阅读全文