微博是这样炼成的:从聊天室到Twitter的技术实现
基本信息
编辑推荐
BBS、IM、微博,互联网到移动互联网的
交流平台将更加深刻地改变世界。
这些社会现象后面的技术本质是如何炼成的?
本书为你抽丝剥茧,揭晓答案。
推荐阅读
内容简介回到顶部↑
本书结合项目实践、构架设计、行业知识介绍和学习方法分析为一体,讲解了从原始的命令行聊天室到流行的twitter系统的技术实现和构架分析。本书将带领读者分析完成具有行业代表性的仿qq im项目、中国移动cmpp网关项目、仿twitter系统三大典型项目的构架设计和实现。在具体的项目实践过程中,融入了tcp/ip编程、设计模式、udp编程、p2p通信、通信加密技术、java nio技术、jmf视频通信、rmi远程调用、hessian web service、memcached缓存系统等技术专题。目的是通过由浅入深、项目驱动的实践分析,让读者深入掌握java网络编程和网络通信项目的构架设计,并引导启发读者能自行分析技术表象背后的原理。
本书面向有一定java编程基础的中高级读者和初入行的一线软件开发者,也适合作为高等院校相关专业师生的参考书。
本书面向有一定java编程基础的中高级读者和初入行的一线软件开发者,也适合作为高等院校相关专业师生的参考书。
作译者回到顶部↑
目录回到顶部↑
绪论 1
第1章 javake起步:聊天室的实现 5
1.1 从零开始实现公共聊天室 5
1.1.1 网络基础知识 5
1.1.2 一步一步创建简单服务器 8
1.1.3 服务器读写消息实现 11
1.1.4 群聊服务器实现 20
1.1.5 群聊客户端实现 37
1.2 实现xmpp通信的im系统 46
1.2.1 初识xmpp 46
1.2.2 交互流程描述 47
1.2.3 xmpp消息格式定义 49
1.2.4 服务器端代码的实现 50
1.2.5 客户端代码的实现 57
1.2.6 缺陷分析 65
1.3 程序结构性问题分析 65
1.3.1 整体结构设计的重要性 65
1.3.2 方法定义时细节的处理 66
1.3.3 高耦合的问题 67
1.4 javake项目需求分析 68
第1章 javake起步:聊天室的实现 5
1.1 从零开始实现公共聊天室 5
1.1.1 网络基础知识 5
1.1.2 一步一步创建简单服务器 8
1.1.3 服务器读写消息实现 11
1.1.4 群聊服务器实现 20
1.1.5 群聊客户端实现 37
1.2 实现xmpp通信的im系统 46
1.2.1 初识xmpp 46
1.2.2 交互流程描述 47
1.2.3 xmpp消息格式定义 49
1.2.4 服务器端代码的实现 50
1.2.5 客户端代码的实现 57
1.2.6 缺陷分析 65
1.3 程序结构性问题分析 65
1.3.1 整体结构设计的重要性 65
1.3.2 方法定义时细节的处理 66
1.3.3 高耦合的问题 67
1.4 javake项目需求分析 68
序言回到顶部↑
希望以下介绍能帮助您理解本书要旨——买回一本刁;是自己想要的书的痛苦,我比你经历得多。
1.本书缘起
本书是我在近十午软件开发和培训生涯基础上的处女作。谈不上十年磨一剑,至少也包含了我两年的思考。图书的缘起首先要感谢的是人民邮电出版社的蒋编辑,没有他的梳理规划和鼓励,本书的内容可能永远只是我头脑中的片断。促使我能坚持把这本书写完的动力,来源于我在蓝杰所带领的学生们的期盼和学习热情,感谢你们!当然,写作本书的时间是我的同事陈九龙、熊向军先生长期的加班所换取来的,一句谢谢无法全部代表我的感激。
2.本书特点
(1)项目驱动。
本书的技术点主要是网络通信、安全加密和项目设计构架3方面。讲解的技术要点有TCP/IP编程、设计模式、UDP编程、P2P通信、通信加密技术、Java NIO技术、JMF视频通信、RMI远程调用、Hessian Web Service、Memcached缓存系统等。这些看似难以理解和掌握的技术要点通过循序渐进的案例实践,被一步一步构建到一个完整的项目中。读者只要跟随本书一路走下来,至少能实践完成3个典型项目:仿QQ IM项目(JavaKe)、中国移动CMPP网关项目、仿Twitter项目(JTwitter)。同时,读者还可对相关行业业务知识进行详细深入的了解。有实践项目,才有深入理解,才叫做“掌握技术”。
(2)启发式讲解。
做老师的经历让我明白“老师没有权力直接告诉学生答案”的道理。本书的目的不仅限于告诉读者“可以这样写代码”,而是通过提出需求、分析技术实现、分析缺陷改进、提示原理探究的渐进式讲解路线,充分调动读者实践和思考的积极性。在掌握技术要点、完成实践项目的同时,希望读者明白:可以这样实现、还可以那样实现,两种实现有什么优劣点,各自的原理是什么。
另外,本书中的代码不是仅为“示例”而编写的,从每行代码的注解命名到类与类之间的关系分析,都是合乎规范和经过严谨思考的。“代码就是程序员的小说”,希望读者能注重体会本书的代码质量规范和其中的设计思想。
3.本书读者对象
如果读者已有几年的Web开发工作经验,却开始渐渐厌烦千篇一律的CRUD代码操作,编写“优雅、艺术”性代码的机会越来越少,编码就像是在各种现成框架中做填空题一样。本书将为你打开Java技术的另一个精彩世界。
如果读者是正在学习Java开发的征战者,对线程和I/O有些粗浅了解,却被各种名词堆砌的Web(J2EE)技术搞得眼花缭乱,急切地想去掌握那些能以不变应万变、根本性、原理性的技术“干货”,那么本书就是为你量身打造的。
如果读者还是徘徊在“Hello Word”左右的菜鸟,请慎选。但如果你拥有坚持实践加思考的坚强毅力,能经受住本书的考验,那么你也肯定会变成一只“大鹏”。
书中的不足和错误在所难免,如果读者能不吝指教,我尤为感谢,我的邮箱是JavaFound@Gmail.com。
胡东锋
2010年1月7日 于岳麓山下
1.本书缘起
本书是我在近十午软件开发和培训生涯基础上的处女作。谈不上十年磨一剑,至少也包含了我两年的思考。图书的缘起首先要感谢的是人民邮电出版社的蒋编辑,没有他的梳理规划和鼓励,本书的内容可能永远只是我头脑中的片断。促使我能坚持把这本书写完的动力,来源于我在蓝杰所带领的学生们的期盼和学习热情,感谢你们!当然,写作本书的时间是我的同事陈九龙、熊向军先生长期的加班所换取来的,一句谢谢无法全部代表我的感激。
2.本书特点
(1)项目驱动。
本书的技术点主要是网络通信、安全加密和项目设计构架3方面。讲解的技术要点有TCP/IP编程、设计模式、UDP编程、P2P通信、通信加密技术、Java NIO技术、JMF视频通信、RMI远程调用、Hessian Web Service、Memcached缓存系统等。这些看似难以理解和掌握的技术要点通过循序渐进的案例实践,被一步一步构建到一个完整的项目中。读者只要跟随本书一路走下来,至少能实践完成3个典型项目:仿QQ IM项目(JavaKe)、中国移动CMPP网关项目、仿Twitter项目(JTwitter)。同时,读者还可对相关行业业务知识进行详细深入的了解。有实践项目,才有深入理解,才叫做“掌握技术”。
(2)启发式讲解。
做老师的经历让我明白“老师没有权力直接告诉学生答案”的道理。本书的目的不仅限于告诉读者“可以这样写代码”,而是通过提出需求、分析技术实现、分析缺陷改进、提示原理探究的渐进式讲解路线,充分调动读者实践和思考的积极性。在掌握技术要点、完成实践项目的同时,希望读者明白:可以这样实现、还可以那样实现,两种实现有什么优劣点,各自的原理是什么。
另外,本书中的代码不是仅为“示例”而编写的,从每行代码的注解命名到类与类之间的关系分析,都是合乎规范和经过严谨思考的。“代码就是程序员的小说”,希望读者能注重体会本书的代码质量规范和其中的设计思想。
3.本书读者对象
如果读者已有几年的Web开发工作经验,却开始渐渐厌烦千篇一律的CRUD代码操作,编写“优雅、艺术”性代码的机会越来越少,编码就像是在各种现成框架中做填空题一样。本书将为你打开Java技术的另一个精彩世界。
如果读者是正在学习Java开发的征战者,对线程和I/O有些粗浅了解,却被各种名词堆砌的Web(J2EE)技术搞得眼花缭乱,急切地想去掌握那些能以不变应万变、根本性、原理性的技术“干货”,那么本书就是为你量身打造的。
如果读者还是徘徊在“Hello Word”左右的菜鸟,请慎选。但如果你拥有坚持实践加思考的坚强毅力,能经受住本书的考验,那么你也肯定会变成一只“大鹏”。
书中的不足和错误在所难免,如果读者能不吝指教,我尤为感谢,我的邮箱是JavaFound@Gmail.com。
胡东锋
2010年1月7日 于岳麓山下
媒体评论回到顶部↑
大学毕业设计时,我用Turbo C写了1万多行代码,感觉受益匪浅。但是,现在很多大学生4年下来都写不了多少代码,计算机是一门偏工程的学科,如果你不多动手,要想成为软件高手,那是天方夜谭。这本书引领读者设计和实现的3个典型项目极具实战性,值得有志成为软件高手的同学们研读。
罗铁庚 博士 博赛软件CEO
身边做老师的朋友很多,东锋算是极有天赋的一位。师者,传道授业解惑也,相信本书丰富实用的内容以及通俗易懂的语言能带给你莫大的收获,它会告诉你一个程序梦想是如何被激发又是如何被炼成的。
王冀 西塞教育CEO
很喜欢胡老师讲课的方式:在学习过程中提出问题,提出假设,然后通过实践检验理论,再对理论进行总结和理解。关手这—点大家在本书中能深刻地体会到。本书的案例有较高的技术难度,但会提升读者的开发能力和对原理的理解。
郭群芳 腾讯科技
一个资深的Java研究者,一个广读古今中外名著的文人,一个身为老师却和我们以兄弟相称的人,一个教我们Java,教我怎们样进步,永不放弃的人——这就是胡老师给我的印象!相信本书能带你走进“Java技术的另一个精彩世界”!我向大家极力推荐此书,走近Java,走近Twitter。
邓小明 搜狐畅游
胡老师多年的工作、学习和实践经验,对网络通信的认识在本书中表现得淋漓尽致,令人折服。本书通过一个个具体的项目实践,让我们学到的不侧又是网络通信方面的知识,同时也让我们了解到?[乍为代码工作者应该注意的很多细节,以及作为一名优秀程序员所应具备的设计思想。本书值得一看!
李嘉鹏 支付宝
罗铁庚 博士 博赛软件CEO
身边做老师的朋友很多,东锋算是极有天赋的一位。师者,传道授业解惑也,相信本书丰富实用的内容以及通俗易懂的语言能带给你莫大的收获,它会告诉你一个程序梦想是如何被激发又是如何被炼成的。
王冀 西塞教育CEO
很喜欢胡老师讲课的方式:在学习过程中提出问题,提出假设,然后通过实践检验理论,再对理论进行总结和理解。关手这—点大家在本书中能深刻地体会到。本书的案例有较高的技术难度,但会提升读者的开发能力和对原理的理解。
郭群芳 腾讯科技
一个资深的Java研究者,一个广读古今中外名著的文人,一个身为老师却和我们以兄弟相称的人,一个教我们Java,教我怎们样进步,永不放弃的人——这就是胡老师给我的印象!相信本书能带你走进“Java技术的另一个精彩世界”!我向大家极力推荐此书,走近Java,走近Twitter。
邓小明 搜狐畅游
胡老师多年的工作、学习和实践经验,对网络通信的认识在本书中表现得淋漓尽致,令人折服。本书通过一个个具体的项目实践,让我们学到的不侧又是网络通信方面的知识,同时也让我们了解到?[乍为代码工作者应该注意的很多细节,以及作为一名优秀程序员所应具备的设计思想。本书值得一看!
李嘉鹏 支付宝







点击看大图







加载中...
