2018年5月15日
摘要: MapReduce是Google的一项重要技术,它首先是一个编程模型,用以进行大数据量的计算。对于大数据量的计算,通常采用的处理手法就是并行计算。但对许多开发者来说,自己完完全全实现一个并行计算程序难度太大,而MapReduce就是一种简化并行计算的编程模型,它使得那些没有多有多少并行计算经验的开发 阅读全文
posted @ 2018-05-15 23:00 liangxb 阅读(425) 评论(0) 推荐(0) 编辑
  2018年5月13日
摘要: 一、RPC基础概念 1.1 RPC的基础概念 RPC,即Remote Procdure Call,中文名:远程过程调用; (1)它允许一台计算机程序远程调用另外一台计算机的子程序,而不用去关心底层的网络通信细节,对我们来说是透明的。因此,它经常用于分布式网络通信中。 RPC协议假定某些传输协议的存在 阅读全文
posted @ 2018-05-13 21:54 liangxb 阅读(244) 评论(0) 推荐(0) 编辑
  2018年5月12日
摘要: HDFS的工作机制 概述 HDFS集群分为两大角色:NameNode、DataNode NameNode负责管理整个文件系统的元数据 DataNode 负责管理用户的文件数据块 文件会按照固定的大小(blocksize)切成若干块后分布式存储在若干台datanode上 每一个文件块可以有多个副本,并 阅读全文
posted @ 2018-05-12 21:08 liangxb 阅读(684) 评论(0) 推荐(0) 编辑
  2018年3月18日
摘要: 第8章 SRP:单一职责原则 一个类应该只有一个发生变化的原因。 8.1 定义职责 在SRP中我们把职责定义为变化的原因。如果你想到多于一个的动机去改变一个类,那么这个类就具有多于一个的职责。同时,我们很难注意到这一点。我们习惯于以组的形式去考虑职责。违反SRP的示例代码: 大多数人会认为这个接口看 阅读全文
posted @ 2018-03-18 16:10 liangxb 阅读(200) 评论(0) 推荐(0) 编辑
摘要: 第7章 什么是敏捷设计 可以使用许多不同的媒介描述设计,但是设计最终体现为源代码。从根本上讲,源代码就是设计。 7.1 设计臭味 如果幸运,你会在项目开始时就想到了系统的清晰图像。系统设计是存在你脑中的一幅至关重要的图像。如果幸运一点,在首次发布时,设计依然保持清楚。 接着,事情开始变糟。软件像一片 阅读全文
posted @ 2018-03-18 16:09 liangxb 阅读(389) 评论(0) 推荐(0) 编辑
摘要: 第5章 重构 在Martin Fowler的名著《重构》一书中,他把重构定义为:“在不改变代码外在行为的前提下对对代码做出修改,以改进代码内部结构的过程。”可是我们为什么要改进已经能够工作的代码结构呢?我们不是都知道“如果它没有坏,就不要去修理它!”吗? 每一个软件模块都有3项职责。第一个职责是它运 阅读全文
posted @ 2018-03-18 16:08 liangxb 阅读(590) 评论(0) 推荐(0) 编辑
摘要: 第4章 测试 编写单元测试是进行验证,更是进行设计。同样,它更是在编写文档。编写单元测试终结了许多反馈循环,尤其是功能验证方面的反馈循环。 4.1 测试驱动开发 假设我们遵循如下3条简单规则: (1)除非编写了一个不能通过的单元测试,否则不编写任何产品代码。 (2)只要编写正好导致测试不通过或者编译 阅读全文
posted @ 2018-03-18 11:19 liangxb 阅读(284) 评论(0) 推荐(0) 编辑
摘要: 第3章 计划3.1 初始探索 在项目开始时,开发人员会和客户商讨一下关于新系统的情况,以确定出所有真正重要的信息。然而,他们不会试图去确定所有的特性。随着项目的进展,客户会不断的发现新的特性。特性发现的过程会一直持续到项目完成。 当识别出一个特性时,会把它分解成一个或者多个用户故事,并把这些用户故事 阅读全文
posted @ 2018-03-18 11:18 liangxb 阅读(326) 评论(0) 推荐(0) 编辑
摘要: 第2章 极限编程概述 作为开发人员,我们应该记住,XP并非唯一选择。--Pete McBreen,软件技术专家在第1章中,我们概述了有关敏捷软件开发方法方面的内容,但它没有确切地告诉我们去做些什么;其中给出了一些泛泛的陈述和目标,却没有给出实际的指导方法。本章要改变这种状况。2.1 极限编程实践2. 阅读全文
posted @ 2018-03-18 11:16 liangxb 阅读(460) 评论(0) 推荐(0) 编辑
  2018年3月17日
摘要: 第1章 敏捷实践 敏捷软件开发宣言:人和交互 重于 过程和工具可以工作的软件 重于 面面俱到的文档客户合作 重于 合同谈判随时应对变化 重于 遵循计划虽然右项也有其价值,但左项更加重要。 1.人和交互重于过程和工具 人是获得成功的最为重要的因素。如果团队中没有优秀的成员,那么就算是使用好的过程也不能 阅读全文
posted @ 2018-03-17 23:21 liangxb 阅读(480) 评论(0) 推荐(0) 编辑