自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(76)
  • 资源 (61)
  • 收藏
  • 关注

原创 访问github加速

https://github.com/terrymanu/miracle-framework/tree/master/miracle-framework-remote/miracle-framework-remote-netty

2021-11-05 12:26:06 580

原创 Paxos理解之我见(二)

Paxos如何提高集群的并行计算能力。已经在Paxos理解之我见讲述了Paxos的思路。下面讲一下我对Paxos关键条件的理解和总结。Paxos集群的前提条件:一、多数派:大于集群的半数以上。二、集群中的服务器指决议编号比它之前处理的大的,大于则通过。小于反对不通过。三、提议:向集群其他服务器发送本服务器的数据变更。多数派通过后(多数派将接收的数据再通过的同时,将数据也进行了变

2015-07-26 18:18:38 646

原创 Paxos理解之我见

公元2015年的某个晚上9:30左右,理解透了Paxos算法思想,豁然开朗,醍醐灌顶。之前困扰已久的分布式内存数据一致性的问题,有好的解决思路了。心情高兴,从公司回去后,已经接近十一点了。在满大街找饭吃的过程中,又开始了新的思考。思考分布式内存中数据一致性的问题,是为了解决海量并发场景的。那么Paxos算法很巧妙地解决了,在正常的网络通信环境,网络抖动,丢包

2015-07-26 18:14:06 728

原创 MongoDB使用指南

http://localhost:28017http://localhost:27017

2014-09-28 14:19:44 720

转载 Ant权威指南-读书笔记

对于许多基于Java的工程而言,对所有Java源文件进行编译已不再是构建这些工程所需的唯一步骤。对于典型的HelloWorld程序、书中的例子以及简单applet,源文件的编译已经足够了。但是还有一些复杂的基于Java的工程,如Web应用或基于Swing的程序(如JBuilder),要求做更多的工作。必须根据资源控制得到最新的资源;未由Java编译器自动处理的依赖关系也需要得到管理;各种类必须捆绑

2014-02-07 13:52:04 864

原创 读书笔记-MySQL存储过程-变量

DECLARE语句允许我们创建变量。它将出现在代码块中任何游标和处理及任何过程语句声明之前,DECLARE语句的语法如下:

2013-12-25 11:40:59 1204

原创 读书笔记-MySQL存储过程编程教程-触发器

触发器是一种在数据库表被INSERT,UPDATE或者DELETE等(DML)语句所作用时激活的特殊额存储程序。只要表发生改变就会激活触发器的功能,因为触发器直接依附于表,所以程序代码无法绕过数据库触发器。触发器通常被用来实现严格的商业逻辑,高效的反响格式胡数据和审查表的更改状况。触发器可以被定义触发与特定的DML语句执行之前或之后。我们创建了一个在对sales表进行INSERT操作完成前的触

2013-12-24 18:56:59 780

原创 读书笔记-MySQL存储过程-存储函数

存储函数和存储过程不同的地方有以下几点:1.函数的参数列表中模式只能为IN。2.函数必须返回一个值,它的类型被定义于函数的头部

2013-12-24 18:38:02 899

原创 MySQL存储过程编程教程读书笔记-第二章MySQL存储过程编程指南-存储过程部分

MySQL存储过程编程时一个复杂的主题,我们将在本章中为你提供完成基本任务的内容,其中包括:1、怎样创建存储过程2、存储过程怎样进行输入输出3、怎样和数据库交互4、怎样用MySQL存储编程语言创建过程,函数和触发器第一个存储过程实例:delimiter $$drop procedure if exists HelloWorld$$create procedure Hel

2013-12-24 17:52:00 1026

翻译 高扩展的基于NIO的服务器架构(二)

Reactor模式如下图所示,将不同事件的检测分离开,当一种事件发生时一个事件处理器EventHandler将通知与该事件处理相对应的专用工作线程采用这种架构,连接的通道不得不注册在一个Selector上。这样才能通过调用register方法使通道有效。...SocketChannel channel = serverChannel.accept();channel.con

2013-11-17 19:59:15 1169

翻译 高扩展的基于NIO的服务器架构

当你考虑写一个扩展性良好的基于Java的服务器时,相信你会毫不犹豫地使用Java的NIO包。为了确保你的服务器能够健壮、稳定地运行,你可能会花大量的时间阅读博客和教程来了解线程同步的NIO selector 类和处理常见的陷阱上。本篇文章介绍了一个基本的、面向连接的基于NIO的服务器架构。在介绍之前,让我们先来看一下该它首选的线程模型和它的基本组件。线程架构模型最先想到的实现多线程服务器程

2013-11-17 18:34:58 1688

转载 HashMap的工作原理

HashMap的工作原理是近年来常见的Java面试题。几乎每个Java程序员都知道HashMap,都知道哪里要用HashMap,知道HashTable和HashMap之间的区别,那么为何这道面试题如此特殊呢?是因为这道题考察的深度很深。这题经常出现在高级或中高级面试中。投资银行更喜欢问这个问题,甚至会要求你实现HashMap来考察你的编程能力。ConcurrentHashMap和其它同步集合的引入

2013-11-17 16:06:57 626

原创 程序员提升自我素养应该读的书(包含团队管理、自我素质、技术书籍类)

应该读的书籍包括编码、设计、架构、软技能、领导力、职场几大类。希望大家闲暇时多看一下提升程序员的自我修养

2013-11-10 15:49:06 1684 2

原创 UML类图关系(泛化、依赖、关联、聚合、组合)

一、泛化关系表示类与类之间的继承关系,接口与接口之间的继承关系,或类对接口的实现关系。一般化的关系是从子类指向父类的,与继承或实现的方法相反。二、关联关系表示类与类之间的联接,它使一个类知道另一个类的属性和方法。体现的是两个类、或者类与接口之间语义级别的一种强依赖关系,不存在依赖的偶然性、关系也不是临时性的,一般是长期的,而且双方的关系一般是平等的。表现在代码层为被关联类以B类属性的形

2013-11-08 21:57:36 1361

原创 原生JavaScript实现弹球游戏

JavaScript灵活多变,本文将介绍如何运用原生态JavaScript代码,在不依赖任何类库(包括JQuery)的情况下,编写复杂的弹球游戏,希望大家进一步驾驭JavaScript语言。

2013-11-05 20:38:33 4208 6

原创 原生JavaScript实现连连看游戏

原生JavaScript编写网页版连连看游戏,源码可在http://download.csdn.net/detail/zhangjinpeng66/6276583中下载,不依赖任何类库(包括JQuery),以简洁、较少的行数实现。连连看游戏最关键的难点在于如何实现路径搜索算法,本游戏将通过最简单的一次查找(即两图片相邻)开始逐层递归实现最难的二次拐弯查找。除此之外,JavaScript语言是众所周知较难驾驭的语言,本游戏不依赖任何第三方类库(包括JQuery)对深入了解JavaScript语言大有帮助。

2013-11-05 13:39:18 2726 2

原创 JBoss和Tomcat

JBoss在J2EE应用服务器领域已成为发展最为迅速的应用服务器。在市场占有率和服务满意度上取得了巨大的成功,丝毫不逊色于其他的非开源竞争对手,如WebSphere、WebLogic、ApplicationServer。JBoss Web的诸多优越性能,正是其广为流传的原因。基于Tomcat内核,并对Tomcat的不足之处进行了改进

2013-11-04 18:29:48 1212

原创 Catalina中连接器的简易实现一

在前面的文章中提到,Catalina中有两个模块:连接器和容器。下面将实现一个创建更好的请求和相应对象的连接器,用来改进上文简易版基于Java的Servlet容器实现。

2013-11-03 17:59:37 962

原创 简易版基于Java的Servlet容器实现

如上文简易版基于Java的Web服务器实现中该服务器可以处理静态页面,在上文基础上实现既可以处理静态页面和Servlet的简易服务器。

2013-11-03 15:50:06 2032 2

原创 简易版基于Java的处理静态资源服务器实现

一个基于java的web服务器使用这两个重要的类:java.net.Socket和java.net.ServerSocket,并通过HTTP消息进行通信。在实现Web服务器之前有必要简要说明一下超文本传输协议(HTTP)。超文本传输协议(HTTP)http是一种无状态的请求和相应协议,请大家暂时记住无状态这一概念,在后续介绍session时将会向大家阐述有状态和无状态的区别。

2013-11-03 14:01:53 3609 1

原创 浅谈Catalina架构

Catalina是一个非常复杂的、设计优雅的、模块化的Servlet容器内核。基于上文中Servlet容器是如何工作的,可以将Catalina看成是有两个主要模块所组成的:连接器(connector)和容器(container)。当然两个大模块中还有更多的小组件,在之后的文章中将会详细介绍。下面将介绍连接器和容器是如何相互配合工作的。

2013-11-02 15:46:21 1244

原创 Servlet容器是如何工作的

servlet容器是一个复杂的系统。不过,一个servlet容器要为一个servlet的请求提供服务,基本上有三件事要做:

2013-11-02 15:26:17 1181

转载 iBATIS实战—第一部分介绍

本书从对iBATIS的高级介绍开始。接下来的两章将讨论iBATIS的理念,正是这种理念的不同使得iBATIS有别于其他的持久化方案。对Java来说,有许多种可选的持久化方案,到底在何时使用哪一种方案,可能是一个非常值得探讨的问题。通过阅读本部分的内容,你应该能够明白iBATIS背后的理念和它的价值,当然你也就知道应该在何时何地使用它了。第一章iBATIS的理念iBATIS并不试图隐藏SQL

2013-10-26 17:18:31 811

转载 iBATIS实战-导读

本书第一部分为iBATIS高级介绍部分,分别介绍了iBATIS的设计理念和iBATIS的内涵。这两章为哪些对iBATIS的基础感兴趣的人提供了相关的背景知识。如果你想获得有关iBATIS的比较实际的应用,并且立即开始使用它,可以直接跳到本书的第二部分。第3章-第7章组成了本书的第二部分,该部分主要介绍了基本的iBATIS应用。如果你打算利用iBATIS进行开发,该部分便是必读内容。第三章介绍如

2013-10-26 16:38:44 665

转载 iBATIS实战-读者须知

本书假定读者已具备了一些相关知识。假设你已经了解Java,因此书中对Java不会着墨过多。在阅读本书之前,你应该已经感受过使用JDBC所带来的痛苦,甚至可能体验过某些O/RM(对象关系映射)框架的缺陷。同时我们还加定了你了解SQL。iBATIS是一个以SQL为中心的框架。iBATIS并不试图隐藏SQL,SQL语句在iBATIS框架中并被自动生成,而是完全在你自己的控制之下,因此你最好具备一些S

2013-10-26 16:23:03 688

原创 网页无限下拉的实现原理

随着瀑布流的布局深入人心,传统意义上的翻页已经不能满足用户的请求。现在越来越多的网站,使用无限下拉的方式来展现内容,其实现原理为:1.首先预先加载一部分内容,并显示出滚动条。2.监听浏览器滚动条。3.当滚动条快到浏览器底部的时候,触发请求。4.加载新的面代码如下:var bodyObj = document.documentElement || document.bod

2013-10-23 14:39:23 3137

转载 利用CSS、JavaScript及Ajax实现图片预加载的三大方法

图片的加载速度影响着网站整体的用户体验,尤其对于包含大量图片的网站。对图片进行预加载,不失为一个高效的解决方案。如何实现预加载,本文将例举利用CSS、JavaScript及Ajax实现图片预加载的三大方法。预加载图片是提高用户体验的一个很好的方法。图片预先加载到浏览器中,访问者便可顺利地在你的网站上冲浪,并享受到极快的加载速度。这对图片画廊及图片占据很大比例的网站来说是十分有利的,它保证了图片

2013-10-23 14:23:46 940

原创 jQuery对象与dom对象相互转换

jQuery选择器得到的jQuery对象和标准的javascript中的document.getElementById()取得的dom对象是两种不同的对象类型。如$('#id')得到的是jQuery对象,它不能使用js总的dom方法。因此,jQuery对象如果需要使用标准的dom方法,就需要进行对象转换。jQuery对象jQuery对象就是通过jQuery包装DOM对象后产生的对象。jQu

2013-10-14 15:22:07 796

原创 jQuery取得iframe中元素方法

在iframe子页面获取父页面元素代码如下:$.('#objld', parent.document); 在父页面获取iframe子页面的元素代码如下:$("#objid", document.iframes('iframe').document)或$(document.getElementById('iframeId').contentWindow.documen

2013-10-14 14:59:41 671

原创 jQuery Ajax事件-seriallize()

序列表表格内容为字符串。返回值jQuery示例序列表表格内容为字符串,用于Ajax请求。HTML代码:Results: Single Single2 Multiple Multiple2 Multiple# che

2013-10-13 21:01:36 969

原创 jQuery Ajax事件-jQuery.ajaxSetup(options)

设置全局AJAX默认选项。参数见'$.ajax'说明。返回值jQuery参数options(可选):选项设置。所有设置项均为可选设置。示例设置AJAX请求默认地址为"/xmlhttp/",禁止触发全局AJAx事件,用POST代替默认GET方法。其后的AJAX请求不再设置任何选项参数。jQuery代码:$.ajaxSetup({ url: "/xmlht

2013-10-13 20:49:25 1000

原创 jQuery Ajax事件-ajaxSuccess(callback)

AJAX请求成功时执行函数。AJAX事件。XMLHttpRequest对象和设置作为参数传递给回调函数。返回值jQuery参数callback(Function):待执行函数示例当AJAX请求成功后显示信息。jQuery代码:$("#msg").ajaxSuccess(function(evt, request, settings) { $(this)

2013-10-13 20:41:13 2647

原创 jQuery Ajax事件-ajaxStop(callback)

AJAX请求结束时执行函数。Ajax事件。返回值jQuery参数callback(Function):待执行函数示例AJAX请求结束后隐藏信息。jQuery代码:$("#loading").ajaxStop(function() { $(this).hide();});

2013-10-13 20:36:47 731 1

原创 jQuery Ajax事件-ajaxStart(callback)

AJAX请求开始时执行函数。Ajax事件。返回值jQuery参数callback(Function):待执行函数示例$("#loading").ajaxStart(function() { $(this).show();});

2013-10-13 20:33:14 834 1

原创 jQuery Ajax事件-ajaxSend(callback)

AJAX请求发送前执行函数。Ajax事件。XMLHttpRequest对象和设置作为参数传递给回调函数。返回值jQuery参数callback(Function):待执行函数示例AJAX请求发送前显示信息。jQuery代码:$("#msg").ajaxSend(function(evt, request, settings) { $(this).app

2013-10-13 20:29:52 986

原创 jQuery Ajax事件-ajaxError(callback)

AJAX请求发生错误时执行函数。Ajax事件。XMLHttpRequest对象和设置作为参数传递给回调函数。捕捉到的错误可作为最后一个参数传递。返回值jQuery参数callback(Function):待执行函数function(event, XMLHttpRequest, ajaxOptions, thrownError) { // thrownError只有

2013-10-13 20:24:34 1430

原创 jQuery Ajax事件—ajaxComplete(callback)

ajaxComplete(callback)Ajax请求时完成执行函数。Ajax事件。XMLHttpRequest对象和设置作为参数传递给回调函数。返回值jQuery参数callback(Function):待执行函数示例AJAX请求完成时执行函数。jQuery代码:$("#msg").ajaxComplete(function(event, request

2013-10-13 20:17:05 1284 1

原创 jQuery Ajax请求-jQuery.post(url, [data], [callback], [type])

通过远程调用HTTP POST请求载入信息。这是一个简单的POST请求功能以取代复杂$.ajax。请求成功时可调用回调函数。如果需要在出错时执行函数,请使用$.ajax。返回值XMLHttpRequest参数url(String): 发送请求地址。data(Map):(可选)待发送Key/value参数。callback(Function):(可选)发送成功时回调函数。

2013-10-13 20:12:10 1454

原创 jQuery Ajax请求-jQuery.getScript(url, [callback])

通过HTTP GET请求载入并执行一个JavaScript文件。jQuery1.2版本之前,getScript只能调用同域js文件。1.2中,您可以跨域调用JavaScript文件。注意:Safari2或更早的版本不能再全局作用域中同步执行脚本。如果通过getScript加入脚本,请加入延时函数。返回值XMLHttpRequest参数url(String):带载入js文件地址。

2013-10-13 20:06:27 1528

原创 jQueryAjax请求-jQuery.getJSON(url, [data], [callback])

通过HTTP GET请求载入JSON数据。在jQuery1.2中,您可以通过使用JSONP形式的回调函数来加载其他网络域的JSON数据,如"myurl?callback=?"。jQuery将自动替换?为正确的函数名,已执行回调函数。注意:此行以后的代码将在这个回调函数执行前执行。返回值XMLHttpRequest参数url(String): 发送请求地址。data(Ma

2013-10-13 19:52:10 1458

设计模式之禅

前 言 [0第0]一部分 [0大0]旗不挥,谁敢冲锋—6[0大0]设计原则全新解读 [0第0]1章 单一职责原则2 1.1 我是“牛”类,我可以担任多职吗2 1.2 绝杀技,打破你的传统思维3 1.3 我单纯,所以我快乐6 1.4 佳实践7 [0第0]2章 里氏替换原则8 2.1 爱恨纠葛的父子关系8 2.2 纠纷不断,规则压制9 2.3 佳实践18 [0第0]3章 依赖倒置原则19 3.1 依赖倒置原则的定义19 3.2 言而无信,你太需要契约20 3.3 依赖的三种写[0法0]25 3.4 佳实践26 [0第0]4章 接口隔离原则28 4.1 接口隔离原则的定义28 4.2 美女何其多,观点各不同29 4.3 保证接口的纯洁性33 4.4 佳实践35 [0第0]5章 迪米特[0法0]则36 5.1 迪米特[0法0]则的定义36 5.2 我的[0知0]识你[0知0]道得越少越好36 5.3 佳实践43 [0第0]6章 开闭原则44 6.1 开闭原则的定义44 6.2 开闭原则的庐山真面目44 6.3 为什么要采用开闭原则49 6.4 如何使用开闭原则51 6.5 佳实践55 [0第0]二部分 真刀实枪—23种设计模式完美演绎 [0第0]7章 单例模式58 7.1 我是皇帝我[0独0]苗58 7.2 单例模式的定义59 7.3 单例模式的应用60 7.3.1 单例模式的[0优0]点60 7.3.2 单例模式的缺点60 7.3.3 单例模式的使用场景61 7.3.4 单例模式的注意事项61 7.4 单例模式的扩展62 7.5 佳实践64 [0第0]8章 工厂方[0法0]模式65 8.1 女娲造人的故事65 8.2 工厂方[0法0]模式的定义69 8.3 工厂方[0法0]模式的应用70 8.3.1 工厂方[0法0]模式的[0优0]点70 8.3.2 工厂方[0法0]模式的使用场景71 8.4 工厂方[0法0]模式的扩展71 8.5 佳实践77 [0第0]9章 抽象工厂模式78 9.1 女娲的失误78 9.2 抽象工厂模式的定义83 9.3 抽象工厂模式的应用86 9.3.1 抽象工厂模式的[0优0]点86 9.3.2 抽象工厂模式的缺点86 9.3.3 抽象工厂模式的使用场景86 9.3.4 抽象工厂模式的注意事项86 9.4 佳实践87 [0第0]10章 模板方[0法0]模式88 10.1 辉煌工程—制造悍马88 10.2 模板方[0法0]模式的定义93 10.3 模板方[0法0]模式的应用94 10.3.1 模板方[0法0]模式的[0优0]点94 10.3.2 模板方[0法0]模式的缺点95 10.3.3 模板方[0法0]模式的使用场景95 10.4 模板方[0法0]模式的扩展95 10.5 佳实践99 [0第0]11章 建造者模式100 11.1 变化是永恒的100 11.2 建造者模式的定义109 11.3 建造者模式的应用111 11.3.1 建造者模式的[0优0]点111 11.3.2 建造者模式的使用场景111 11.3.3 建造者模式的注意事项111 11.4 建造者模式的扩展111 11.5 佳实践112 [0第0]12章 代理模式113 12.1 我是游戏113 12.2 代理模式的定义116 12.3 代理模式的应用118 12.3.1 代理模式的[0优0]点118 12.3.2 代理模式的使用场景119 12.4 代理模式的扩展119 12.4.1 普通代理119 12.4.2 强制代理121 12.4.3 代理是有个性的126 12.4.4 动态代理128 12.5 佳实践134 [0第0]13章 原型模式135 13.1 个性化电子账单135 13.2 原型模式的定义141 13.3 原型模式的应用142 13.3.1 原型模式的[0优0]点142 13.3.2 原型模式的使用场景142 13.4 原型模式的注意事项143 13.4.1 构造函数不[0会0]被执行143 13.4.2 浅拷贝和深拷贝144 13.4.3 clone与final两个冤家146 13.5 佳实践146 [0第0]14章 中介者模式147 14.1 进销存管理是这个样子的吗147 14.2 中介者模式的定义156 14.3 中介者模式的应用159 14.3.1 中介者模式的[0优0]点159 14.3.2 中介者模式的缺点159 14.3.3 中介者模式的使用场景159 14.4 中介者模式的实际应用160 14.5 佳实践161 [0第0]15章 命令模式162 15.1 项目经理也难[0当0]162 15.2 命令模式的定义170 15.3 命令模式的应用173 15.3.1 命令模式的[0优0]点173 15.3.2 命令模式的缺点173 15.3.3 命令模式的使用场景173 15.4 命令模式的扩展173 15.4.1 未讲完的故事173 15.4.2 反悔问题174 15.5 佳实践175 [0第0]16章 责任链模式178 16.1 古代妇女的枷锁—“三从四德”178 16.2 责任链模式的定义186 16.3 责任链模式的应用189 16.3.1 责任链模式的[0优0]点189 16.3.2 责任链模式的缺点190 16.3.3 责任链模式的注意事项190 16.4 佳实践190 [0第0]17章 装饰模式192 17.1 罪恶的成绩单192 17.2 装饰模式的定义198 17.3 装饰模式应用201 17.3.1 装饰模式的[0优0]点201 17.3.2 装饰模式的缺点201 17.3.3 装饰模式的使用场景201 17.4 佳实践201 [0第0]18章 策略模式203 18.1 刘备江东娶妻,赵云他容易吗203 18.2 策略模式的定义206 18.3 策略模式的应用208 18.3.1 策略模式的[0优0]点208 18.3.2 策略模式的缺点208 18.3.3 策略模式的使用场景209 18.3.4 策略模式的注意事项209 18.4 策略模式的扩展209 18.5 佳实践214 [0第0]19章 适配器模式215 19.1 业务发展—上帝才能控制215 19.2 适配器模式的定义221 19.3 适配器模式的应用223 19.3.1 适配器模式的[0优0]点223 19.3.2 适配器模式的使用场景224 19.3.3 适配器模式的注意事项224 19.4 适配器模式的扩展224 19.5 佳实践229 [0第0]20章 迭代器模式230 20.1 整理项目信息—苦差事230 20.2 迭代器模式的定义236 20.3 迭代器模式的应用239 20.4 佳实践239 [0第0]21章 组合模式240 21.1 公司的人事架构是这样的吗240 21.2 组合模式的定义253 21.3 组合模式的应用255 21.3.1 组合模式的[0优0]点255 21.3.2 组合模式的缺点256 21.3.3 组合模式的使用场景256 21.3.4 组合模式的注意事项256 21.4 组合模式的扩展256 21.4.1 真实的组合模式256 21.4.2 透明的组合模式257 21.4.3 组合模式的遍历259 21.5 佳实践260 [0第0]22章 观察者模式262 22.1 韩非子身边的卧底是谁派来的262 22.2 观察者模式的定义271 22.3 观察者模式的应用273 22.3.1 观察者模式的[0优0]点273 22.3.2 观察者模式的缺点274 22.3.3 观察者模式的使用场景274 22.3.4 观察者模式的注意事项274 22.4 观察者模式的扩展275 22.4.1 Java世界中的观察者模式275 22.4.2 项目中真实的观察者模式276 22.4.3 订阅发布模型277 22.5 佳实践277 [0第0]23章 门面模式278 23.1 我要投递信件278 23.2 门面模式的定义283 23.3 门面模式的应用284 23.3.1 门面模式的[0优0]点284 23.3.2 门面模式的缺点285 23.3.3 门面模式的使用场景285 23.4 门面模式的注意事项285 23.4.1 一个子系统可以有多个门面285 23.4.2 门面不参与子系统内的业务逻辑286 23.5 佳实践288 [0第0]24章 备忘录模式289 24.1 如此追女孩子,你还不乐289 24.2 备忘录模式的定义294 24.3 备忘录模式的应用297 24.3.1 备忘录模式的使用场景297 24.3.2 备忘录模式的注意事项297 24.4 备忘录模式的扩展297 24.4.1 clone方式的备忘录297 24.4.2 多状态的备忘录模式300 24.4.3 多备份的备忘录304 24.4.4 封装得更好一点305 24.5 佳实践307 [0第0]25章 访问者模式308 25.1 员工的隐私何在308 25.2 访问者模式的定义316 25.3 访问者模式的应用320 25.3.1 访问者模式的[0优0]点320 25.3.2 访问者模式的缺点320 25.3.3 访问者模式的使用场景320 25.4 访问者模式的扩展321 25.4.1 统计功能321 25.4.2 多个访问者323 25.4.3 [0[0双0]0]分派326 25.5 佳实践328 [0第0]26章 状态模式329 26.1 城市的纵向发展功臣—电梯329 26.2 状态模式的定义341 26.3 状态模式的应用343 26.3.1 状态模式的[0优0]点343 26.3.2 状态模式的缺点344 26.3.3 状态模式的使用场景344 26.3.4 状态模式的注意事项344 26.4 佳实践344 [0第0]27章 解释器模式346 27.1 四则运算你[0会0]吗346 27.2 解释器模式的定义352 27.3 解释器模式的应用354 27.3.1 解释器模式的[0优0]点354 27.3.2 解释器模式的缺点354 27.3.3 解释器模式使用的场景355 27.3.4 解释器模式的注意事项355 27.4 佳实践355 [0第0]28章 享元模式356 28.1 内存溢出,司空见惯356 28.2 享元模式的定义361 28.3 享元模式的应用364 28.3.1 享元模式的[0优0]点和缺点364 28.3.2 享元模式的使用场景364 28.4 享元模式的扩展365 28.4.1 线程安全的问题365 28.4.2 性能平衡366 28.5 佳实践369 [0第0]29章 桥梁模式371 29.1 我有一个梦想371 29.2 桥梁模式的定义379 29.3 桥梁模式的应用381 29.3.1 桥梁模式的[0优0]点381 29.3.2 桥梁模式的使用场景382 29.3.3 桥梁模式的注意事项382 29.4 佳实践382 [0第0]三部分 谁的地盘谁做主—设计模式PK [0第0]30章 创建类模式[0大0]PK384 30.1 工厂方[0法0]模式VS建造者模式384 30.1.1 按工厂方[0法0]建造[0超0]人384 30.1.2 按建造者模式建造[0超0]人386 30.1.3 佳实践389 30.2 抽象工厂模式VS建造者模式390 30.2.1 按抽象工厂模式生产车辆390 30.2.2 按建造者模式生产车辆394 30.2.3 佳实践399 [0第0]31章 结构类模式[0大0]PK400 31.1 代理模式VS装饰模式400 31.1.1 代理模式400 31.1.2 装饰模式402 31.1.3 佳实践403 31.2 装饰模式VS适配器模式404 31.2.1 用装饰模式描述丑小鸭404 31.2.2 用适配器模式实现丑小鸭407 31.2.3 佳实践410 [0第0]32章 行为类模式[0大0]PK411 32.1 命令模式VS策略模式411 32.1.1 策略模式实现压缩算[0法0]411 32.1.2 命令模式实现压缩算[0法0]414 32.1.3 小结419 32.2 策略模式VS状态模式420 32.2.1 策略模式实现人生420 32.2.2 状态模式实现人生423 32.2.3 小结425 32.3 观察者模式VS责任链模式426 32.3.1 责任链模式实现DNS解析过程427 32.3.2 触发链模式实现DNS解析过程432 32.3.3 小结437 [0第0]33章 跨战区PK438 33.1 策略模式VS桥梁模式438 33.1.1 策略模式实现邮件发送439 33.1.2 桥梁模式实现邮件发送442 33.1.3 佳实践445 33.2 门面模式VS中介者模式446 33.2.1 中介者模式实现工资计算446 33.2.2 门面模式实现工资计算451 33.2.3 佳实践454 33.3 包装模式群PK455 33.3.1 代理模式455 33.3.2 装饰模式457 33.3.3 适配器模式459 33.3.4 桥梁模式461 33.3.5 佳实践464 [0第0]四部分 完美世界—设计模式混编 [0第0]34章 命令模式+责任链模式466 34.1 搬移UNIX的命令466 34.2 混编小结481 [0第0]35章 工厂方[0法0]模式+策略模式483 35.1 迷你版的交易系统483 35.2 混编小结493 [0第0]36章 观察者模式+中介者模式495 36.1 事件触发器的开发495 36.2 混编小结508 [0第0]五部分 扩展篇 [0第0]37章 MVC框架510 37.1 MVC框架的实现510 37.1.1 MVC的系统架构512 37.1.2 模型管理器518 37.1.3 值栈522 37.1.4 视图管理器522 37.1.5 工具类526 37.2 佳实践528 [0第0]38章 新模式530 38.1 规格模式530 38.1.1 规格模式的实现530 38.1.2 佳实践543 38.2 对象池模式546 38.2.1 正确的池化546 38.2.2 对象池模式的意图547 38.2.3 佳实践549 38.3 雇工模式549 38.3.1 雇工合作549 38.3.2 雇工模式的意图551 38.3.3 佳实践552 38.4 黑板模式552 38.4.1 黑板模式的意图552 38.4.2 黑板模式的实现方[0法0]553 38.5 空对象模式554 38.5.1 空对象模式的例子554 38.5.2 佳实践555 附录 23种设计模式彩图

2019-01-29

约束最优化问题

约束最优化问题 在约束最优化问题之中在原有无约束最优化问题的基础上加入了约束条件: {█(min┬(x∈R^n )⁡〖f(x)〗@s.t. g_i (x)≤0,i=1,⋯,m@h_j (x)=0,j=1,⋯,n)┤ ( 3.24 ) 约束包括不等式约束和等式约束。其中f,g,h均为连续可微函数。为了便于计算通常使用广义拉格朗日函数来将函数和约束集中到一个函数之中:

2019-01-21

用python解决数据结构和算法

学 Python 仅仅只学 Python 语法和 API 是远远不够的,掌握算法和数据结构这种永远都不会过时的核心技能才是决定一个程序员职业发展的关键因素。算法和数据结构对专业程序员来说重要性不言而喻,同样一个问题,不同算法效率可谓千差万别。在问题规模很小的时候你可能感知不到,但是一旦数据上升到TB级别,两者的差距就像西瓜和芝麻的差别了。

2018-11-27

图像处理、分析与机器视觉

本书是英文第4版的中文翻译,大约有五分之一的内容更新。主要更新的内容包括:增加了一些新的算法,增加了习题部分,重写了部分内容。更为具体的内容更新请参考作者序。本书是在第3版中文翻译的基础上,按照直译的原则进行翻译的,与英文版形成完全的对照。对于英文版中明显存在的排印或疏忽类的错误,都进行了更正。由于这些错误一般都很明显,因此译文中没有专门声明,读者如果对照英文版,不难看出其出处。

2018-11-27

数据挖掘概念与技术

《数据挖掘:概念与技术(原书第3版)》完整全面地讲述数据挖掘的概念、方法、技术和全新研究进展。本书对前两版做了全面修订,加强和重新组织了全书的技术内容,重点论述了数据预处理、频繁模式挖掘、分类和聚类等的内容,还全面讲述了OLAP和离群点检测,并研讨了挖掘网络、复杂数据类型以及重要应用领域。   《数据挖掘:概念与技术(原书第3版)》是数据挖掘和知识发现领域内的所有教师、研究人员、开发人员和用户都必读的参考书,是一本适用于数据分析、数据挖掘和知识发现课程的优秀教材,可以用做高年级本科生或者一年级研究生的数据挖掘导论教材。

2018-11-27

深入理解机器学习 从原理到算法

本书介绍机器学习方法的原理及方法,同时引入了学习的计算复杂性、凸性和稳定性、PAC贝叶斯方法、压缩界等概念,以及随机梯度下降、神经元网络和结构化输出等方法。作者既讲述重要的机器学习算法的工作原理和动机,还指出其固有的优势和缺点,是有兴趣了解机器学习理论和方法以及应用的学生和专业人员的良好教材或参考书。

2018-11-27

机器视觉 伯特霍尔德 霍恩 著

《机器视觉》提出了一中从成像到图像分析、再到场景分析的一致研究方法。它既可以作为视觉领域中的“霍恩学派”的个人思想表现,也可以作为一本优秀的教科书。每一个从事计算机视觉相关领域研究的科学家和技术人员,都应该认真阅读本书!

2018-11-27

机器学习实战-中文版

机器学习是人工智能研究领域中一个极其重要的研究方向,在现今的大数据时代背景下,捕获数据并从中萃取有价值的信息或模式,成为各行业求生存、谋发展的决定性手段,这使得这一过去为分析师和数学家所专属的研究领域越来越为人们所瞩目。   《机器学习实战》主要介绍机器学习基础,以及如何利用算法进行分类,并逐步介绍了多种经典的监督学习算法,如k近邻算法、朴素贝叶斯算法、Logistic回归算法、支持向量机、AdaBoost集成方法、基于树的回归算法和分类回归树(CART)算法等。第三部分则重点介绍无监督学习及其一些主要算法:k均值聚类算法、Apriori算法、FP-Growth算法。第四部分介绍了机器学习算法的一些附属工具。   《机器学习实战》通过精心编排的实例,切入日常工作任务,摒弃学术化语言,利用高效的可复用Python代码来阐释如何处理统计数据,进行数据分析及可视化。通过各种实例,读者可从中学会机器学习的核心算法,并能将其运用于一些策略性任务中,如分类、预测、推荐。另外,还可用它们来实现一些更高级的功能,如汇总和简化等。

2018-11-06

图解机器学习扫描版带书签

187张图解轻松入门   提供可执行的Matlab程序代码   覆盖机器学习中经典、用途广的算法   专业实用   东京大学教授、机器学习专业专家执笔,浓缩机器学习的关键知识点   图文并茂   187张图示帮助理解,详略得当,为读懂大部头开路。   角度新颖   实战导向   配有可执行的MATLAB程序代码,边学习边实践。

2018-10-19

统计学习方法

统计学习是计算机及其应用领域的一门重要的学科。《统计学习方法》全面系统地介绍了统计学习的主要方法,特别是监督学习方法,包括感知机、k近邻法、朴素贝叶斯法、决策树、逻辑斯谛回归与支持向量机、提升方法、em算法、隐马尔可夫模型和条件随机场等。除第1章概论和最后一章总结外,每章介绍一种方法。叙述从具体问题或实例入手,由浅入深,阐明思路,给出必要的数学推导,便于读者掌握统计学习方法的实质,学会运用。为满足读者进一步学习的需要,书中还介绍了一些相关研究,给出了少量习题,列出了主要参考文献。   《统计学习方法》是统计学习及相关课程的教学参考书,适用于高等院校文本数据挖掘、信息检索及自然语言处理等专业的大学生、研究生,也可供从事计算机应用相关专业的研发人员参考。

2018-10-19

史上最全的架构师图谱

本文是笔者多年来积累和收集的知识技能图谱,有的是笔者原创总结的最佳实践,有的是小伙伴们的分享,其中每个秘籍图谱里面的内容都是互联网高并发架构师应该了解和掌握的知识,笔者索性把这些图谱收集在一起,并且归类便于查找和学习,希望能够帮助到每一位想成为架构师或者已经是架构师的小伙伴,这里我们的标题“史上最全的架构师图谱”是本文的目标,作者计划把这篇文章作为一个开放性的文章,如果读者发现更多的图谱,请联系作者本人,我们把更多的图谱、思维导图汇集在其一起,最终一定能成为互联网上“史上最全的架构师图谱”。 作者:李艳鹏 链接:http://www.jianshu.com/p/c8382065bd2b 來源:简书 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

2017-09-08

Java程序性能优化

《Java程序性能优化:让你的Java程序更快、更稳定》以Java性能调优为主线,系统地阐述了与Java性能优化相关的知识与技巧。《Java程序性能优化:让你的Java程序更快、更稳定》共6章,先后从软件设计、软件编码、JVM调优以及程序故障排除等方面介绍针对Java程序的优化方法。第1章介绍性能的基本概念、定律、系统调优的过程和注意事项;第2章从设计层面介绍与性能相关的设计模式、组件。第3章从代码层面介绍如何编写高性能的Java程序;第4章介绍并行开发和如何通过多线程提高系统性能;第5章立足于JVM虚拟机层面,介绍如何通过设置合理的JVM参数提升Java程序的性能;第6章为工具篇,介绍获取和监控程序或系统性能指标的各种工具,包括相关的故障排查工具。 《Java程序性能优化:让你的Java程序更快、更稳定》适合所有Java程序员、软件设计师、架构师以及软件开发爱好者,对于有一定经验的Java工程师,《Java程序性能优化:让你的Java程序更快、更稳定》更能帮助突破技术瓶颈,深入Java内核开发!一个优秀的程序员,不仅要会编写程序,更要会编写高质量的程序感受Java开发中的大智慧,让你的Java程序更优美。专注于Java应用程序的优化方法、技巧和思想,深入剖析软件设计层面、代码层面、JVM虚拟机层面的优化方法

2016-10-13

深入理解Java虚拟机:JVM高级特性与最佳实践

《深入理解Java虚拟机:JVM高级特性与最佳实践》编辑推荐:围绕内存管理、执行子系统、编程编译与优化、高效并发等核心内容对JVM进行全面而深入的分析,深刻揭示JVM的工作原理;注重实现,以解决实践中的疑难问题为首要目的,包含大量经典案例和最佳实践。

2016-10-13

redis设计与实现

本书[1] 主要分为四大部分。第一部分“数据结构与对象”介绍了Redis中的各种对象及其数据结构,并说明这些数据结构如何影响对象的功能和性能。第二部分“单机数据库的实现”对Redis实现单机数据库的方法进行了介绍,包括数据库、RDB持久化、AOF持久化、事件等。第三部分“多机数据库的实现”对Redis的Sentinel、复制、集群三个多机功能进行了介绍。第四部分“独立功能的实现”对Redis中各个相对独立的功能模块进行了介绍,涉及发布与订阅、事务、Lua脚本、排序、二进制位数组、慢查询日志、监视器等。

2016-10-13

多线程依次循环打印26个英文字母

多线程依次循环打印26个英文字母

2016-03-03

Nginx 安全配置指南技术手册.pdf

Nginx安全配置指南基数手册 pdf 非常实用的一本书

2015-12-13

MySQL高性能书籍_第3版(中文)pdf

高性能MYSQL 第三版(中文)PDF2013.5版中文版(全本) 《高性能MySQL(第3版)》是MySQL 领域的经典之作,拥有广泛的影响力。第3 版更新了大量的内容,不但涵盖了最新MySQL 5.5版本的新特性,也讲述了关于固态盘、高可扩展性设计和云计算环境下的数据库相关的新内容,原有的基准测试和性能优化部分也做了大量的扩展和补充。全书共分为16 章和6 个附录,内容涵盖MySQL 架构和历史,基准测试和性能剖析,数据库软硬件性能优化,复制、备份和恢复,高可用与高可扩展性,以及云端的MySQL 和MySQL相关工具等方面的内容。每一章都是相对独立的主题,读者可以有选择性地单独阅读。 本书不但适合数据库管理员(DBA)阅读,也适合开发人员参考学习。不管是数据库新手还是专家,相信都能从本书有所收获。

2015-10-19

Maven权威指南中文版pdf(高清带完整目录)

Maven权威指南 完整版的Maven权威指南,包括了其他版本缺失的12,13,15,17,18章以及附录.目录书签更加详细,且未加密,可自己加批注或高亮文字等.非扫描版. Tim O'Brien Sonatype, Inc. John Casey Sonatype, Inc. Brian Fox Sonatype, Inc. Bruce Snyder Jason Van Zyl Sonatype, Inc. Juven Xu(译) Sonatype, Inc. Abstract Maven权威指南是一本关于Apache Maven的书。 版权 1. Creative Commons BY-ND-NC 序: Beta 0.2 前言 1. 如何使用本书 2. 你的反馈 3. 字体约定[1] 4. Maven书写约定[2] 5. 致谢 1. 介绍 Apache Maven 1.1. Maven... 它是什么? 1.2. 约定优于配置(Convention Over Configuration) 1.3. 一个一般的接口 1.4. 基于Maven插件的全局性重用 1.5. 一个“项目”的概念模型 1.6. Maven是Ant的另一种选择么? 1.7. 比较Maven和Ant 1.8. 总结 2. 安装和运行Maven 2.1. 验证你的Java安装 2.2. 下载Maven 2.3. 安装Maven 2.3.1. 在Mac OSX上安装Maven 2.3.2. 在Microsoft Windows上安装Maven 2.3.3. 在Linux上安装Maven 2.3.4. 在FreeBSD或OpenBSD上安装Maven 2.4. 验证Maven安装 2.5. Maven安装细节 2.5.1. 用户相关配置和仓库 2.5.2. 升级Maven 2.6. 获得Maven帮助 2.7. 使用Maven Help插件 2.7.1. 描述一个Maven插件 2.8. 关于Apache软件许可证 I. Maven实战 3. 一个简单的Maven项目 3.1. 简介 3.1.1. 下载本章的例子 3.2. 创建一个简单的项目 3.3. 构建一个简单的项目 3.4. 简单的项目对象模型 (Project Object Model) 3.5. 核心概念 3.5.1. Maven插件和目标 (Plugins and Goals) 3.5.2. Maven生命周期 (Lifecycle) 3.5.3. Maven坐标 (Coordinates) 3.5.4. Maven仓库(Repositories) 3.5.5. Maven依赖管理 (Dependency Management) 3.5.6. 站点生成和报告 (Site Generation and Reporting) 3.6. 小结 4. 定制一个Maven项目 4.1. 介绍 4.1.1. 下载本章样例 4.2. 定义Simple Weather项目 4.2.1. Yahoo! Weather RSS 4.3. 创建Simple Weather项目 4.4. 定制项目信息 4.5. 添加新的依赖 4.6. Simple Weather源码 4.7. 添加资源 4.8. 运行Simple Weather项目 4.8.1. Maven Exec 插件 4.8.2. 浏览你的项目依赖 4.9. 编写单元测试 4.10. 添加测试范围依赖 4.11. 添加单元测试资源 4.12. 执行单元测试 4.12.1. 忽略测试失败 4.12.2. 跳过单元测试 4.13. 构建一个打包好的命令行应用程序 5. 一个简单的Web应用 5.1. 介绍 5.1.1. 下载本章样例 5.2. 定义这个简单的Web应用 5.3. 创建这个简单的Web应用 5.4. 配置Jetty插件 5.5. 添加一个简单的Servlet 5.6. 添加J2EE依赖 5.7. 小结 6. 一个多模块项目 6.1. 简介 6.1.1. 下载本章样例 6.2. simple-parent 项目 6.3. simple-weather 模块 6.4. simple-webapp 模块 6.5. 构建这个多模块项目 6.6. 运行Web应用 7. 多模块企业级项目 7.1. 简介 7.1.1. 下载本章样例 7.1.2. 多模块企业级项目 7.1.3. 本例中所用的技术 7.2. simple-parent项目 7.3. simple-model模块 7.4. simple-weather模块 7.5. simple-persist模块 7.6. simple-webapp模块 7.7. 运行这个Web应用 7.8. simple-command模块 7.9. 运行这个命令行程序 7.10. 小结 7.10.1. 编写接口项目程序 8. 优化和重构POM 8.1. 简介 8.2. POM清理 8.3. 优化依赖 8.4. 优化插件 8.5. 使用Maven Dependency插件进行优化 8.6. 最终的POM 8.7. 小结 II. Maven参考 9. 项目对象模型 9.1. 简介 9.2. POM 9.2.1. 超级POM 9.2.2. 最简单的POM 9.2.3. 有效POM 9.2.4. 真正的POM 9.3. POM语法 9.3.1. 项目版本 9.3.1.1. 版本构建号 9.3.1.2. SNAPSHOT版本 9.3.1.3. LATEST 和 RELEASE 版本 9.3.2. 属性引用 9.4. 项目依赖 9.4.1. 依赖范围 9.4.2. 可选依赖 9.4.3. 依赖版本界限 9.4.4. 传递性依赖 9.4.4.1. 传递性依赖和范围 9.4.5. 冲突解决 9.4.6. 依赖管理 9.5. 项目关系 9.5.1. 坐标详解 9.5.2. 多模块项目 9.5.3. 项目继承 9.6. POM最佳实践 9.6.1. 依赖归类 9.6.2. 多模块 vs. 继承 9.6.2.1. 简单项目 9.6.2.2. 多模块企业级项目 9.6.2.3. 原型父项目 10. 构建生命周期 10.1. 简介 10.1.1. 清理生命周期 (clean) 10.1.2. 默认生命周期 (default) 10.1.3. 站点生命周期 (site) 10.2. 打包相关生命周期 10.2.1. JAR 10.2.2. POM 10.2.3. Maven Plugin 10.2.4. EJB 10.2.5. WAR 10.2.6. EAR 10.2.7. 其它打包类型 10.3. 通用生命周期目标 10.3.1. Process Resources 10.3.2. Compile 10.3.3. Process Test Resources 10.3.4. Test Compile 10.3.5. Test 10.3.6. Install 10.3.7. Deploy 11. 构建Profile 11.1. Profile是用来做什么的? 11.1.1. 什么是构建可移植性 11.1.1.1. 不可移植构建 11.1.1.2. 环境可移植性 11.1.1.3. 组织(内部)可移植性 11.1.1.4. 广泛(全局)可移植性 11.1.2. 选择一个适当级别的可移植性 11.2. 通过Maven Profiles实现可移植性 11.2.1. 覆盖一个项目对象模型 11.3. 激活Profile 11.3.1. 激活配置 11.3.2. 通过属性缺失激活 11.4. 外部Profile 11.5. Settings Profile 11.5.1. 全局Settings Profile 11.6. 列出活动的Profile 11.7. 提示和技巧 11.7.1. 常见的环境 11.7.2. 安全保护 11.7.3. 平台分类器 11.8. 小结 12. Maven套件 12.1. 简介 12.2. Assembly基础 12.2.1. 预定义的套件描述符 12.2.2. 构建一个套件Building an Assembly 12.2.3. 套件作为依赖 12.2.4. 通过套件依赖组装套件 12.3. 套件描述符概述 12.4. 套件描述符 12.4.1. 套件描述符中的属性引用 12.4.2. 必须的套件信息 12.5. 控制一个套件的内容 12.5.1. Files 元素 12.5.2. FileSets 元素 12.5.3. fileSets的默认排除模式 12.5.4. dependencySets 元素 12.5.4.1. 自定义依赖输出目录 12.5.4.2. 依赖输出位置的属性插值 12.5.4.3. 通过范围包含或排除依赖 12.5.4.4. 微调:依赖包含和排除 12.5.4.5. 传递性依赖,项目构件,项目附属构件 12.5.4.6. 高级拆解选项 12.5.4.7. 依赖集合小结 12.5.5. moduleSets 元素 12.5.5.1. 模块选择 12.5.5.2. 源码选择 12.5.5.3. moduleSets中outputDirectoryMapping的插值 12.5.5.4. 字节码选择 12.5.5.5. moduleSets, 父POM,和binaries元素 12.5.6. Repositories元素 12.5.7. 管理套件的根目录 12.5.8. componentDescriptors和containerDescriptorHandlers 12.6. 最佳实践 12.6.1. 标准的,可重用的套件描述符 12.6.2. 分发(聚合)套件 12.7. 总结 13. 属性和资源过滤 13.1. 简介 13.2. Maven属性 13.2.1. Maven项目的属性 13.2.2. Maven的Settings属性 13.2.3. 环境变量属性 13.2.4. Java系统属性 13.2.5. 用户定义的属性 13.3. 资源过滤 14. Maven和Eclipse: m2eclipse 14.1. 简介 14.2. m2eclipse 14.3. 安装 m2eclipse 插件 14.3.1. 安装前提条件 14.3.1.1. 安装 Subclipse 14.3.1.2. 安装 Mylyn 14.3.1.3. 安装 AspectJ Tools Platform (AJDT) 14.3.1.4. 安装 Web Tools Platform (WTP) 14.3.2. 安装 m2eclipse 14.4. 开启 Maven 控制台 14.5. 创建一个 Maven 项目 14.5.1. 从 SCM 签出一个 Maven 项目 14.5.2. 用Maven Archetype创建一个Maven项目 14.5.3. 创建一个 Maven 模块 14.6. 创建一个Maven POM文件 14.7. 导入Maven项目 14.7.1. 导入一个Maven项目 14.7.2. 具体化一个Maven项目 14.8. 运行Maven构建 14.9. 使用Maven进行工作 14.9.1. 添加及更新依赖或插件 14.9.2. 创建一个Maven模块 14.9.3. 下载源码 14.9.4. 打开项目页面 14.9.5. 解析依赖 14.10. 使用Maven仓库进行工作 14.10.1. 搜索 Maven 构件和 Java 类 14.10.2. 为Maven仓库编制索引 14.11. 使用基于表单的POM编辑器 14.12. 在m2eclipse中分析项目依赖 14.13. Maven 选项 14.14. 小结 15. 站点生成 15.1. 简介 15.2. 使用Maven构建项目站点 15.3. 自定义站点描述符 15.3.1. 自定义页面端图片 15.3.2. 自定义导航菜单 15.4. 站点目录结构 15.5. 编写项目文档 15.5.1. APT样例 15.5.2. FML样例 15.6. 部署你的项目web站点 15.6.1. 配置服务器认证 15.6.2. 配置文件和目录模式 15.7. 自定义站点外观 15.7.1. 自定义站点CSS 15.7.2. 创建自定义的站点模板 15.7.3. 可重用的web站点皮肤 15.7.4. 创建自定义的主题CSS 15.7.5. 在皮肤中自定义站点模板 15.8. 提示与技巧 15.8.1. 给HEAD嵌入XHTML 15.8.2. 在你站点logo下添加链接 15.8.3. 为你的站点添加导航链接 15.8.4. 添加项目版本 15.8.5. 修改发布日期格式和位置 15.8.6. 使用Doxia宏 16. 仓库管理器 16.1. 简介 16.1.1. Nexus历史 16.2. 安装Nexus 16.2.1. 从Sonatype下载Nexus 16.2.2. 安装Nexus 16.2.3. 运行Nexus 16.2.4. 安装后检查单 16.2.5. 为Redhat/Fedora/CentOS设置启动脚本 16.2.6. 升级Nexus版本 16.3. 使用Nexus 16.3.1. 浏览仓库 16.3.2. 浏览组 16.3.3. 搜索构件 16.3.4. 浏览系统RSS源 16.3.5. 浏览日志文件和配置 16.3.6. 更改你的密码 16.4. 配置Maven使用Nexus 16.4.1. 使用Nexus中央代理仓库 16.4.2. 使用Nexus作为快照仓库 16.4.3. 为缺少的依赖添加仓库 16.4.4. 添加一个新的仓库 16.4.5. 添加一个仓库至一个组 16.5. 配置Nexus 16.5.. 定制服务器配置 16.5.2. 管理仓库 16.5.3. 管理组 16.5.4. 管理路由 16.5.5. 网络配置 16.6. 维护仓库 16.7. 部署构件至Nexus 16.7.1. 部署发布版 16.7.2. 部署快照版 16.7.3. 部署第三方构件 17. 编写插件 17.1. 简介 17.2. Maven编程 17.2.1. 什么是反转控制? 17.2.2. Plexus简介 17.2.3. 为什么使用Plexus? 17.2.4. 什么是插件? 17.3. 插件描述符 17.3.1. 层插件描述符元素 17.3.2. Mojo配置 17.3.3. 插件依赖 17.4. 编写自定义插件 17.4.1. 创建一个插件项目 17.4.2. 一个简单的Java Mojo 17.4.3. 配置插件前缀 17.4.4. 插件中的日志 17.4.5. Mojo类注解 17.4.6. 当Mojo失败的时候 17.5. Mojo参数 17.5.1. 为Mojo参数提供值 17.5.2. 多值的Mojo参数 17.5.3. 依赖于一个Plexus组件 17.5.4. Mojo参数注解 17.6. 插件和Maven生命周期 17.6.1. 执行平行的生命周期 17.6.2. 创建自定义的生命周期 17.6.3. 覆盖默认生命周期 18. 使用可选语言编写插件 18.1. 使用Ant编写插件 18.2. 创建一个Ant插件 18.3. 使用JRuby编写插件 18.3.1. 创建一个JRuby插件 18.3.2. Ruby Mojo实现 18.3.3. Ruby Mojo中使用日志 18.3.4. Raise一个MojoError 18.3.5. 在JRuby中引用Plexus组件 18.4. 使用Groovy编写插件 18.4.1. 创建一个Groovy插件 A. 附录: Settings细节 A.1. 简介 A.2. Settings细节 A.2.1. 简单值 A.2.2. 服务器(Servers) A.2.3. 镜像(Mirrors) A.2.4. 代理(Proxies) A.2.5. Profiles A.2.6. 激活(Activation) A.2.7. 属性(Properties) A.2.8. 仓库(Repositories) A.2.9. 插件仓库 A.2.10. 激活的Profile B. 附录: Sun规格说明可选实现 List of Figures List of Examples

2014-10-23

疯狂Java讲义随书光盘第二版

IT名家李刚老师名著,Java工程师不可或缺的可参考经典资源

2014-05-05

HTTP权威指南

HTTP(HyperText Transfer Protocol,超文本传输协议)是Web客户端与服务器交互文档和信息时所使用的协议,是每个成功Web事务的幕后推手。众所周知,我们每天访问公司内部网络、搜索绝版书籍、研究统计信息时所使用的浏览器的核心就是HTTP。但HTTP的应用远不仅仅是浏览Web内容。由于HTTP既简单又普及,很多其他网络应用程序也选择了它,尤其是采用SOAP和XML-RPC这样的Web服务。 《HTTP权威指南》详细解释了HTTP协议,包括它是如何工作的,如何用它来开发基于Web的应用程序。但本书并不只介绍了HTTP,还探讨了HTTP有效工作所依赖的所有其他核心因特网技术。尽管HTTP是本书的中心内容,但本书的本质是理解Web的工作原理,以及如何将这些知识应用到Web编程和管理之中去,主要涵盖HTTP的技术运作方式、产生动机、性能和目标,以及一些相关技术问题。 《HTTP权威指南》是HTTP协议及相关Web技术方面的权威著作,主要内容包括: HTTP方法、首部以及状态码 优化代理和缓存的方法 设计Web机器人和爬虫的策略 Cookies、认证以及安全HTTP 国际化及内容协商 重定向及负载平衡策略 本书由具有多年实践经验的专家编写,通过简洁、精确的语言和大量翔实的细节图解帮助读者形象地理解Web幕后所发生的事情,详细说明了Web上每条请求的实际运行情况。要想高效地进行Web开发,所有Web程序员、管理员和应用程序开发者都应该熟悉HTTP。很多书籍只介绍了Web的使用方式,而本书则深入说明了Web的工作原理。

2014-04-24

便携式网页版jQuery_API

与传统API不同,本API是网页形式,便于开发者查询

2014-03-10

JavaScript实现连连看游戏

时间:2013年7月20日-2013年7月24日 游戏介绍:采用HTML(非HTML5)、CSS、JavaScript编写,网页上部为砖块,下部为挡板。开始后球从挡板中间斜向上移动碰撞墙壁和砖块,碰到砖块后砖块消失。通过键盘的左右键移动位于底部的挡板接球。小球击中砖块后有可能下落绿色或黄色魔法棒,挡板移动碰到黄色魔法棒时挡板变短,碰到绿色魔法棒时挡板变长。 作者:张金鹏

2013-09-16

JavaScript实现弹球游戏

游戏介绍:采用HTML(非HTML5)、CSS、JavaScript编写,网页上部为砖块,下部为挡板。开始后球从挡板中间斜向上移动碰撞墙壁和砖块,碰到砖块后砖块消失。通过键盘的左右键移动位于底部的挡板接球。小球击中砖块后有可能下落绿色或黄色魔法棒,挡板移动碰到黄色魔法棒时挡板变短,碰到绿色魔法棒时挡板变长。 作者:张金鹏

2013-09-16

HTML5全套知识打包

含HTML5高级程序设计、22个HTML技巧、HTML5设计原理、揭秘HTML5和CSS

2013-08-05

云计算核心技术剖析.pdf

第一部分 理论篇 第1章 云计算的概念 1.1 什么是云计算 1.1.1 云计算的优点 1.1.2 云计算的特点 1.2 云计算的由来 1.2.1 思想演化 1.2.2 技术支撑 1.3 云计算的诞生 1.3.1 SaaS的诞生 1.3.2 “IT不再重要”的发表 1.3.3 Google的三大核心技术 1.3.4 AWS的推出 1.3.5 IBM和Google的合作 1.4 云计算的成长 1.5 云计算的影响 1.5.1 服务器供应商 1.5.2 软件开发商 1.5.3 云终端供应商 1.5.4 云供应商 1.5.5 整个IT产业 1.6 云计算的使用场景 1.6.1 IDC云 1.6.2 企业云 1.6.3 云存储系统 1.6.4 虚拟桌面云 1.6.5 开发测试云 1.6.6 大规模数据处理云 1.6.7 协作云 1.6.8 游戏云 1.6.9 HPC云 1.6.10 云杀毒 第2章 云计算的架构 2.1 云的架构 2.1.1 SaaS 2.1.2 PaaS 2.1.3 IaaS 2.1.4 云管理层 2.1.5 架构示例 2.2 云的4种模式 2.21 公有云 2.2.2 私有云 2.2.3 混合云 2.2.4 行业云 第二部分 产品与技术篇 第3章 Google App Engine 31 Google的云计算产品 3.1.1 SaaS层 3.1.2 PaaS层 3.1.3 IaaS层 3.1.4 云客户端 3.2 Google的核心技术 3.2.1 分布式基础设施 3.2.2 分布式大规模数据处理 3.2.3 分布式数据库技术 3.2.4 数据中心优化技术 3.3 Google的设计思想和整体架构 3.3.1 设计思想 3.3.2 整体架构 3.4 Google App Engine简介 3.4.1 历史 3.4.2 功能 3.4.3 使用流程 3.4.4 主要组成部分 3.4.5 编程模型 3.4.6 限制和资费 3.5 Google App Engine的使用 3.5.1 例子 3.5.2 搭建环境 3.5.3 初始化项目 3.5.4 编写数据库代码 3.5.5 添加Web 处理方法 3.5.6 测试和部署 3.6 Google App Engine的架构 3.6.1 设计理念 3.6.2 架构 3.6.3 流程 3.6.4 Python版和Java版的区别 3.7 本地测试服务器的设计 3.7.1 架构 3.7.2 工作流程 3.8 Datastore的设计 3.8.1 使用方面 3.8.2 实现方面 3.9 总结 3.9.1 注意点 3.9.2 最佳实践 3.9.3 适用场景 3.9.4 对未来的期望 第4章 Salesforce Forcecom 4.1 Salesforce简介 4.1.1 公司历史 4.1.2 Salesforce的整体架构 4.1.3 Forcecom 4.2 多租户的介绍 4.2.1 概念 4.2.2 多租户技术的优缺点 4.2.3 常见的多租户模型 4.3 Forcecom的多租户架构(上) 4.3.1 总体架构 4.3.2 元数据驱动 4.3.3 应用服务器 4.3.4 共享数据库 4.4 Forcecom的多租户架构(下) 4.4.1 应用服务器的模块 4.4.2 数据库表的设计 4.4.3 Apex 4.5 总结 4.5.1 设计理念 4.5.2 经验教训 第5章 系统虚拟化 5.1 系统虚拟化简介 5.1.1 虚拟化的概念 5.1.2 系统虚拟化的概念 5.1.3 系统虚拟化技术的分类 5.1.4 系统虚拟化的用处 5.2 x86虚拟化技术 5.2.1 虚拟机的3大特征 5.2.2 为什么x86架构很难被虚拟化 5.2.3 CPU虚拟化 5.2.4 内存虚拟化 5.2.5 I/O虚拟化 5.2.6 总结与预测 5.3 VMware vSphere的简介 5.3.1 VMware的思路 5.3.2 VMware vSphere 5.4 VMware ESX的架构 5.4.1 Service Console 5.4.2 VMKernel 5.5 虚拟网络 5.5.1 简介 5.5.2 虚拟网卡 5.5.3 虚拟交换机 5.6 动态迁移背后的奥秘 5.6.1 动态迁移的实现机制 5.6.2 动态迁移今后的挑战 5.7 虚拟器件 5.7.1 虚拟器件的定义 5.7.2 虚拟器件的主要组成部分 5.7.3 虚拟器件的生命周期 5.7.4 虚拟器件的好处 5.7.5 虚拟器件的不足之处 5.7.6 业界支持 5.7.7 虚拟器件与云计算 5.8 OVF协议 5.8.1 OVF信封 5.8.2 OVF环境文件 5.8.3 使用流程 5.9 VMware的云计算计划 5.9.1 VMware vCloud Express 5.9.2 VMware vCloud Director 5.9.3 VMforce 5.1 Xen的架构 5.10.1 Xen简介 5.10.2 半虚拟化技术介绍 5.10.3 Xen的架构 5.11 Xen的实现机制 5.11.1 超级调用 5.11.2 vCPU调度 5.11.3 中断虚拟化 5.11.4 内存管理 5.11.5 I/O系统 5.11.6 信息传递 5.11.7 时间管理 5.12 Intel VT技术 5.12.1 VT-x 5.12.2 EPT 5.12.3 VT-d 5.12.4 VT-c 5.13 最新的进展 5.13.1 VMware vSphere 41 5.13.2 Xen 40 5.13.3 Intel VT的PLE技术 第6章 Amazon EC2 6.1 AWS的概况 6.1.1 简介 6.1.2 产品类别 6.1.3 产品特点 6.1.4 成功案例 6.2 Amazon EC2简介 6.3 Amazon EC2的主要模块 6.3.1 AMI 6.3.2 实例 6.3.3 存储 6.3.4 安全方面 6.3.5 可用区 6.3.6 网络方面 6.3.7 Web管理界面 6.3.8 API 6.4 Amazon EC2的使用 6.4.1 准备账号 6.4.2 创建实例 6.4.3 启动服务 6.5 Amazon EC2的优缺点 6.5.1 优点 6.5.2 不足之处 第7章 Cisco UCS 7.1 什么是UCS 7.2 UCS的架构 7.2.1 Cisco UCS 6100系列互联阵列 7.2.2 Cisco UCS管理程序 7.2.3 Cisco UCS 2100系列扩展模块 7.2.4 Cisco UCS 5100系列刀片机箱 7.2.5 Cisco B系列刀片服务器 7.2.6 Cisco UCS网络适配器 7.3 UCS的核心技术之内存扩展 7.3.1 Xeon 5500内存架构 7.3.2 思科的内存扩展技术 7.4 UCS的核心技术之VN-Link 7.4.1 虚拟网络的难题 7.4.2 Cisco Nexus 1000V的方案 157 7.4.3 NIV的方案 7.5 UCS的核心技术之统一网络 7.5.1 数据中心的现状 7.5.2 统一网络简介 7.5.3 统一网络的基石 7.5.4 不足之处 7.6 为虚拟化而生 7.6.1 虚拟化的目标 7.6.2 服务器整合 7.6.3 简化系统管理 7.6.4 加速应有部署 第8章 云计算的安全 8.1 云计算安全的概念 8.1.1 新的挑战 8.1.2 现有安全系统的不足 8.1.3 云计算的优势 8.2 云计算安全的架构 8.2.1 云客户端 8.2.2 云端 8.2.3 第三方机构 8.3 Salesforce Forcecom的安全机制 8.3.1 整体监管和合规性 8.3.2 用户管理 8.3.3 数据管理 8.3.4 系统和网络 8.3.5 物理设施 8.4 AWS的安全机制 8.4.1 整体监管和合规性 8.4.2 用户管理 8.4.3 数据管理 8.4.4 应用保护 8.4.5 系统与网络 8.4.6 物理设施 8.5 为什么云计算更安全 8.5.1 安全管理方面 8.5.2 高可用性方面 8.5.3 数据安全方面 8.5.4 人才方面 8.5.5 广域网方面 8.5.6 总结 第三部分 实践篇 第9章 深入分析BigTable 9.1 BigTable简介 9.2 BigTable的架构 9.3 BigTable的数据模型和调用接口 9.3.1 数据模型 9.3.2 调用接口 9.4 BigTable的存储模型 9.4.1 Tablet的运行机制 9.4.2 SSTable的介绍 9.4.3 Compaction机制 9.5 BigTable的分布式模型 9.5.1 综述 9.5.2 Chubby 9.5.3 如何定位Tablet 9.5.4 如何分配Tablet 9.6 BigTable的文件系统 9.6.1 GFS简介 9.6.2 GFS的架构 9.6.3 GFS与BigTable的协作 191 9.7 BigTable的优化技术 9.7.1 局部性群组 9.7.2 压缩 9.7.3 通过缓存提高读操作的性能 9.7.4 Bloom过滤器 9.7.5 提交日志的实现 9.7.6 利用不变性 9.8 BigTable的功能集 9.8.1 论文中提到的特性 9.8.2 新特性 第10章 YunTable概览 10.1 为什么要开发YunTable 10.2 YunTable的目标 10.2.1 02版的主要目标 10.2.2 一些限制 10.3 YunTable的数据模型 10.4 YunTable的命令行 10.4.1 Add命令 10.4.2 Put命令 10.4.3 Get命令 10.5 YunTable的架构 10.5.1 Master节点 10.5.2 Region节点 10.5.3 客户端 10.6 工作流程 10.6.1 流程1:启动Master节点 10.6.2 流程2:启动Region节点 10.6.3 流程3:启动客户端 10.6.4 流程4:添加Master节点 10.6.5 流程5:添加Region节点 10.6.6 流程6:创建表格 10.6.7 流程7:创建列组 10.6.8 流程8:添加数据 10.6.9 流程9:根据Row Key查询 10.7 YunTable的使用 10.7.1 准备环境 10.7.2 测试用例 10.8 YunTable的规划 第11 章 YunTable的代码剖析 11.1 基础知识 11.1 编程规范 11.1.2 代码结构 11.1.3 开发环境 11.1.4 重要设定 11.2 基础部分 11.2.1 Utils 11.2.2 List 11.2.3 Item 11.2.4 Conf 11.2.5 RPC 11.3 Master部分 11.3.1 数据结构部分 11.3.2 对外接口部分 11.3.3 实现部分 11.4 Region部分 11.4.1 Region 11.4.2 WAL 11.4.3 Tablet 11.4.4 Memstore 11.4.5 YFile 11.5 客户端部分 11.5.1 数据结构部分 11.5.2 实现部分 第四部分 展望篇 第12章 云计算的未来 12.1 云计算的服务模式 12.1.1 比较 12.1.2 未来的竞争 12.2 云计算的商业模式 12.2.1 “超市”模式 12.2.2 “电厂”模式 12.2.3 “超市”模式和“电厂”模式的区别 12.2.4 超市还是电厂 12.3 云计算与中国 12.3.1 现状 12.3.2 对未来的期望 12.4 云计算最新技术 12.4.1 Facebook的Open Compute项目 12.4.2 VMware的开源PaaS CloudFoundry 12.4.3 YunEngine 12.5 聊聊科技产业的未来 12.5.1 潜在的优势 12.5.2 主要方向 12.5.3 驱动力

2013-05-11

架构之美高清pdf

编辑推荐   健壮、优雅、灵活和易维护的软件架构是怎样炼成的?《架构之美》通过一系列优秀的文章回答了这个问题,这些文章来自于十几位当今一流的软件设计师和架构师。在每篇文章中,作者都向们展示了一个著名的软件架构,并分析了什么让其具有创新性,让其极其符合设计目标。   《架构之美》内容包括:   Facebook的架构如何建立在以数据为中心的应用生态系统之上。   Xen的创新架构对操作系统未来的影响。   KDE项目的社区过程如何让软件的架构从粗略的草图演进为漂亮的系统。   不断滋长的特征如何让GNUEmacs获得从未预料到的功能。   JikesRVM自优化、自足执行的运行时环境背后的魔法。 ·致我们终将逝去的青春(电影纪念版) >>·谢谢你离开我(张小娴最新散文) >> 内容简介   《架构之美》围绕5个主题领域来组织《架构之美》的内容:概述、企业应用、系统、最终用户应用和编程语言。《架构之美》让最优秀的设计师和架构师来描述他们选择的软件架构,剥开架构的各层,展示他们如何让软件做到实现功能、可靠、易用、高效率、可维护、可移植和优雅。 作者简介   王海鹏,1994年毕业于华东师范大学。拥有理学士(物理)和文学士(英国语言文学)学位。独立的咨询顾问、培训讲师、译者和软件开发者。已翻译十余本软件开发书籍,主题涵盖敏捷方法学、需求工程、 UML 建模和测试。拥有15年软件开发经验,目前主要的研究领域是软件架构和方法学,致力于提高软件开发的品质和效率。 媒体评论   “本书的作者们在介绍软件架构的基本实践和最佳实践方面干得很漂亮,他们也同样漂亮地介绍了各式各样的现代系统。我特别喜欢他们谈及的架构的广泛性,从Emacs到Facebook,从非常正式的系统到非常有灵气的系统。   简而言之,这是一本非常及时的书,对于软件架构的艺术、科学和实践是非常有益的贡献。”   ——GradyBooch,IBM院士 目录 序 前言 第一部分 论架构 第1章 什么是架构 1.1 简介 1.2 创建软件架构 1.3 架构结构 1.4 好的架构 1.5 美丽的架构 1.6 致谢 1.7 参考文献 第2章 两个系统的故事:现代软件神话 2.1 混乱大都市 2.2 设计之城 2.3 说明什么问题 2.4 轮到您了 2.5 参考文献 第二部分 企业级应用架构 第3章 伸缩性架构设计 3.1 简介 3.2 背景 3.3 架构 3.4 关于架构的思考 第4章 记忆留存 4.1 功能和约束 4.2 工作流 4.3 架构关注点 4.4 用户反应 4.5 结论 第5章 面向资源的架构:在Web中 5.1 简介 5.2 传统的Web服务 5.3 Web 5.4 面向资源的架构 5.5 数据驱动的应用 5.6 应用面向资源的架构 5.7 结论 第6章 数据增长:Facebook平台的架构 6.1 简介 6.2 创建一个社会关系Web服务 6.3 创建社会关系数据查询服务 6.4 创建一个社会关系Web门户:FBML 6.5 系统的支持功能 6.6 总结 第三部分 系统架构 第7章 Xen和虚拟化之美 7.1 简介 7.2 Xenoservers 7.3 虚拟化的挑战 7.4 半虚拟化 7.5 Xen的变换形式 7.6 改变的硬件,改变的Xen 7.7 经验教训 7.8 延伸阅读 第8章 Guardian:一个容错操作系统环境 8.1 Tandem/16,将来所有的计算机都会像这样构建 8.2 硬件 8.3 机械布局 8.4 处理器架构 8.5 处理器间总线 8.6 输入/输出 8.7 进程结构 8.8 消息系统 8.9 文件系统 8.10 民间传说 8.11 弊端 8.12 后继者 8.13 延伸阅读 第9章 JPC:一个纯Java的x86PC模拟程序 9.1 简介 9.2 概念验证 9.3 PC架构 9.4 Java性能技巧 9.5 把4GB放入4GB:这不起作用 9.6 保护模式的危险 9.7 从事一项毫无成功希望的斗争 9.8 劫持JVM 9.9 最终灵活性 9.10 最佳安全性 9.11 第二次做会更好 第10章 元循环虚拟机的力量:JikesRVM 10.1 背景 10.2 与运行时环境相关的传言 10.3 JikesRVM简史 10.4 一个自足执行的运行时自举 10.5 运行时组件 10.6 经验教训 参考文献 第四部分 最终用户应用架构 第11章 GNUEmacs:滋长的特性是其优势 11.1 使用中的Emacs 11.2 Emacs的架构 11.3 滋长的特性 11.4 另外两个架构 第12章 当集市开始构建教堂 12.1 简介 12.2 KDE项目的历史和组织结构 12.3 Akonadi 12.4 ThreadWeaver 第五部分 语言与架构 第13章 软件架构:面向对象与面向功能 13.1 概述 13.2 示例 13.3 面向功能解决方案的模块性评价 13.4 面向对象视图 13.5 面向对象模块性的评价和改进 13.6 代理:将操作封装到对象中 致谢 参考文献 第14章 重读经典 14.1 所有东西都是对象 14.2 类型是隐式定义的 14.3 问题 14.4 砖块和灰浆建筑架构

2013-05-10

设计模式之禅各章节源码

前 言 第一部分 大旗不挥,谁敢冲锋——6大设计原则全新解读 第1章 单一职责原则 1.1 我是“牛”类,我可以担任多职吗 1.2 绝杀技,打破你的传统思维 1.3 我单纯,所以我快乐 1.4 最佳实践 第2章 里氏替换原则 2.1 爱恨纠葛的父子关系 2.2 纠纷不断,规则压制 2.3 最佳实践 第3章 依赖倒置原则 3.1 依赖倒置原则的定义 3.2 言而无信,你太需要契约 3.3 依赖的三种写法 3.4 最佳实践 第4章 接口隔离原则 4.1 接口隔离原则的定义 4.2 美女何其多,观点各不同 4.3 保证接口的纯洁性 4.4 最佳实践 第5章 迪米特法则 5.1 迪米特法则的定义 5.2 我的知识你知道得越少越好 5.3 最佳实践 第6章 开闭原则 6.1 开闭原则的定义 6.2 开闭原则的庐山真面目 6.3 为什么要采用开闭原则 6.4 如何使用开闭原则 6.5 最佳实践 第二部分 真刀实枪——23种设计模式完美演绎 第7章 单例模式 7.1 我是皇帝我独苗 7.2 单例模式的定义 7.3 单例模式的应用 7.4 单例模式的扩展 7.5 最佳实践 第8章 工厂方法模式 8.1 女娲造人的故事 8.2 工厂方法模式的定义 8.3 工厂方法模式的应用 8.3.1 工厂方法模式的优点 8.3.2 工厂方法模式的使用场景 8.4 工厂方法模式的扩展 8.5 最佳实践 第9章 抽象工厂模式 9.1 女娲的失误 9.2 抽象工厂模式的定义 9.3 抽象工厂模式的应用 9.3.1 抽象工厂模式的优点 9.3.2 抽象工厂模式的缺点 9.3.3 抽象工厂模式的使用场景 9.3.4 抽象工厂模式的注意事项 9.4 最佳实践 第10章 模板方法模式 10.1 辉煌工程-制造悍马 10.2 模板方法模式的定义 10.3 模板方法模式的应用 10.4 模板方法模式的扩展 10.5 最佳实践 第11章 建造者模式 11.1 变化是永恒的 11.2 建造者模式的定义 11.3 建造者模式的应用 11.4 建造者模式的扩展 11.5 最佳实践 第12章 代理模式 12.1 我是游戏至尊 12.2 代理模式的定义 12.3 代理模式的应用 12.3.1 代理模式的优点 12.3.2 代理模式的应用 12.4 代理模式的扩展 12.4.1 普通代理 12.4.2 强制代理 12.4.3 代理是有个性的 12.4.4 虚拟代理 12.4.5 动态代理 12.5 最佳实践 第13章 原型模式 13.1 个性化电子账单 13.2 原型模式的定义 13.3 原型模式的应用 13.3.1 原型模式的优点 13.3.2 原型模式的使用场景 13.4 原型模式的注意事项 13.4.1 构造函数不会被执行 13.4.2 浅拷贝和深拷贝 13.4.3 clone与final两个冤家 13.5 最佳实践 第14章 中介者模式 14.1 进销存管理是这个样子的吗? 14.2 中介者模式的定义 14.3 中介者模式的应用 14.4 中介者模式的实际应用 14.5 最佳实践 第15章 命令模式 15.1 项目经理也难当 15.2 命令模式的定义 15.3 命令模式的应用 15.3.1 命令模式的优点 15.3.2 命令模式的缺点 15.3.3 命令模式的使用场景 15.4 命令模式的扩展 15.4.1 未讲完的故事 15.4.2 反悔问题 15.5 最佳实践 第16章 责任链模式 16.1 古代妇女的枷锁-“三从四德” 16.2 责任链模式的定义 16.3 责任链模式的应用 16.3.1 责任链模式的优点 16.3.2 责任链模式的缺点 16.3.3 责任链模式的注意事项 16.4 最佳实践 第17章 装饰模式 17.1 罪恶的成绩单 17.2 装饰模式的定义 17.3 装饰模式应用 17.3.1 装饰模式的优点 17.3.2 装饰模式的缺点 17.3.3 装饰模式的应用 17.4 最佳实践 第18章 策略模式 18.1 刘备江东娶妻,赵云他容易吗 18.2 策略模式的定义 18.3 策略模式的应用 18.3.1 策略模式的优点 18.3.2 策略模式的缺点 18.3.3 策略模式的应用 18.3.4 策略模式的注意事项 18.4 策略模式的扩展 18.5 最佳实践 第19章 适配器模式 19.1 业务发展-上帝才能控制 19.2 适配器模式的定义 19.3 适配器模式的应用 19.3.1 适配器模式的优点 19.3.2 适配器模式的应用 19.3.3 适配器模式的注意事项 19.4 适配器模式的扩展 19.5 最佳实践 第20章 迭代器模式 20.1 整理项目信息-苦差事 20.2 迭代器模式的定义 20.3 迭代器模式的应用 20.4 最佳实践 第21章 组合模式 21.1 公司的人事架构是这样的吗 21.2 组合模式的定义 21.3 组合模式的应用 21.3.1 组合模式的优点 21.3.2 组合模式的缺点 21.3.3 组合模式的应用 21.3.4 组合模式的注意事项 21.4 组合模式的扩展 21.4.1 真实的组合模式 21.4.2 透明的组合模式 21.4.3 组合模式的遍历 21.5 最佳实践 第22章 观察者模式 22.1 韩非子身边的卧底是谁派来的 22.2 观察者模式的定义 22.3 观察者模式的应用 22.3.1 观察者模式的优点 22.3.2 观察者模式的缺点 22.3.3 观察者模式的应用 22.3.4 观察者模式的注意事项 22.4 观察者模式的扩展 22.4.1 Java世界中的观察者模式 22.4.2 项目中真实观察者模式 22.4.3 订阅发布模型 22.5 最佳实践 第23章 门面模式 23.1 我要投递信件 23.2 门面模式的定义 23.3 门面模式的应用 23.3.1 门面模式的优点 23.3.2 门面模式的缺点 23.3.3 门面模式的应用 23.4 门面模式的注意事项 23.4.1 一个子系统可以有多个门面 23.4.2 门面不参与子系统内的业务逻辑 23.5 最佳实践 第24章 备忘录模式 24.1 如此追女孩子,你还不乐 24.2 备忘录模式的定义 24.3 备忘录模式的应用 24.3.1 备忘录模式的应用 24.3.2 备忘录模式的注意事项 24.4 备忘录模式的扩展 24.4.1 clone方式的备忘录 24.4.2 多状态的备忘录模式 24.4.3 多备份的备忘录 24.4.4 封装得更好一点 24.5 最佳实践 第25章 访问者模式 25.1 员工的隐私何在? 25.2 访问者模式的定义 25.3 访问者模式的应用 25.3.1 访问者模式的优点 25.3.2 访问者模式的缺点 25.3.3 访问者模式的应用 25.4 访问者模式的扩展 25.4.1 统计功能 25.4.2 多个访问者 25.4.3 双分派 25.5 最佳实践 第26章 状态模式 26.1 城市的纵向发展功臣-电梯 26.2 状态模式的定义 26.3 状态模式的应用 26.3.1 状态模式的优点 26.3.2 状态模式的缺点 26.3.3 状态模式的应用 26.3.4 状态模式的注意事项 26.4 最佳实践 第27章 解释器模式 27.1 四则运算你会吗 27.2 解释器模式的定义 27.3 解释器模式的应用 27.3.1 解释器模式的优点 27.3.2 解释器模式的缺点 27.3.3 解释器模式使用的场景 27.3.4 解释器模式的注意事项 27.4 最佳实践 第28章 享元模式 28.1 内存溢出,司空见惯 28.2 享元模式的定义 28.3 享元模式的应用 28.3.1 享元模式优点和缺点 28.3.2 享元模式的应用 28.4 享元模式的扩展 28.4.1 线程安全的问题 28.4.2 性能平衡 28.5 最佳实践 第29章 桥梁模式 29.1 我有一个梦想…… 29.2 桥梁模式的定义 29.3 桥梁模式的应用 29.3.1 桥梁模式的优点 29.3.2 桥梁模式的应用 29.3.3 桥梁模式的注意事项 29.4 最佳实践 第三部分 谁的地盘谁做主——设计模式PK 第30章 创建类模式大PK 30.1 工厂方法模式VS建造者模式 30.1.1 按工厂方法建造超人 30.1.2 按建造者模式建造超人 30.1.3 最佳实践 30.2 抽象工厂模式VS建造者模式 30.2.1 按抽象工厂模式生产车辆 30.2.2 按建造者模式生产车辆 30.2.3 最佳实践 第31章 结构类模式大PK 31.1 代理模式VS装饰模式 31.1.1 代理模式 31.1.2 装饰模式 31.1.3 最佳实践 31.2 装饰模式VS适配器模式 31.2.1 按装饰模式描述丑小鸭 31.2.2 按适配器模式实现丑小鸭 31.2.3 最佳实践 第32章 行为类模式大PK 32.1 命令模式VS策略模式 32.1.1 策略模式实现压缩算法 32.1.2 命令模式实现压缩算法 32.1.3 小结 32.2 策略模式VS状态模式 32.2.1 策略模式实现人生 32.2.2 状态模式实现人生 32.2.3 小结 32.3 观察者模式VS责任链模式 32.3.1 责任链模式实现DNS解析过程 32.3.2 触发链模式实现DNS解析过程 32.3.3 小结 第33章 跨战区PK 33.1 策略模式VS桥梁模式 33.1.1 策略模式实现邮件发送 33.1.2 桥梁模式实现邮件发送 33.1.3 最佳实践 33.2 门面模式VS中介者模式 33.2.1 中介者模式实现工资计算 33.2.2 门面模式实现工资计算 33.2.3 最佳实践 33.3 包装模式群PK 33.3.1 代理模式 33.3.2 装饰模式 33.3.3 适配器模式 33.3.4 桥梁模式 33.3.5 最佳实践 第四部分 完美世界——设计模式混编 第34章 命令模式+责任链模式 34.1 搬移UNIX的命令 34.2 混编小结 第35章 工厂方法模式+策略模式 35.1 迷你版的交易系统 35.2 混编小结 第36章 观察者模式+中介者模式 36.1 事件触发器的开发 36.2 混编小结 第37章 规格模式 37.1 规格模式的实现 37.2 最佳实践 第38章 MVC框架 38.1 MVC框架的实现 38.1.1 MVC的系统架构 38.1.2 模型管理器 38.1.3 值栈 38.1.4 视图管理器 38.1.5 工具类 38.2 最佳实践

2013-05-09

鼠标拖动调整table列宽实例.rar

简洁易用,适合初级、中级、高级各类Web前端开发者。

2013-05-08

JavaScript设计模式PDF+源码

各章源代码及高清pdf文档 作者简介   Ross Harmes,资深Web程序员,有10多年编程经验。现任Yahoo前端工程师。他是开源图片博客软件Birch的开发者。Blog地址为Http://tecrhfoolery.com。   Dustin Diaz,资深Web程序员,现任Google用户界面工程师。新一代JavaScript框架DEDlChain(兼具jQuery和YUI的优势)的开发者。他还是一位中长跑健将,800米跑曾经在全美国排名第13。拥有西班牙语学士学位。个人网站http://dustindiaz.com。 媒体评论   “本书道前人所未道,引导你从编写代码进化为设计代码。书中绝大部分示例代码都来自YUI等实战项目,并进行了深入剖析。强烈推荐。”   ——Nicholas C.Zakas,著名.JavaScript专家,Yarl00前端工程师,畅销书《JavaScript高级程序设计》作者   “毫不夸张地说,这是我有生以来读到的最好的一本JavaScript图书。作者讲授了大量独门的专家经验。”   ——Mostafa Farghaly,埃及程序员 目录 第一部分 面向对象的JavaScript 第1章 富有表现力的JavaScript 1.1 JavaScript的灵活性 1.2 弱类型语言 1.3 函数是一等对象 1.4 对象的易变性 1.5 继承 1.6 JavaScript中的设计模式 1.7 小结 第2章 接口 2.1 什么是接口 2.1.1 接口之利 2.1.2 接口之弊 2.2 其他面向对象语言处理接口的方式 2.3 在JavaScript中模仿接口 2.3.1 用注释描述接口 2.3.2 用属性检查模仿接口 2.3.3 用鸭式辨型模仿接口 2.4 本书采用的接口实现方法 2.5 Interface类 2.5.1 Interface类的使用场合 2.5.2 Interface类的用法 2.5.3 示例:使用Interface类 2.6 依赖于接口的设计模式 2.7 小结 第3章 封装和信息隐藏 3.1 信息隐藏原则 3.1.1 封装与信息隐藏 3.1.2 接口扮演的角色 3.2 创建对象的基本模式 3.2.1 门户大开型对象 3.2.2 用命名规范区别私用成员 3.2.3 作用域、嵌套函数和闭包 3.2.4 用闭包实现私用成员 3.3 更多高级对象创建模式 3.3.1 静态方法和属性 3.3.2 常量 3.3.3 单体和对象工厂 3.4 封装之利 3.5 封装之弊 3.6 小结 第4章 继承 4.1 为什么需要继承 4.2 类式继承 4.2.1 原型链 4.2.2 extend函数 4.3 原型式继承 4.3.1 对继承而来的成员的读和写的不对等性 4.3.2 clone函数 4.4 类式继承和原型式继承的对比 4.5 继承与封装 4.6 掺元类 4.7 示例:就地编辑 4.7.1 类式继承解决方案 4.7.2 原型式继承解决方案 4.7.3 掺元类解决方案 4.8 继承的适用场合 4.9 小结 第5章 单体模式 5.1 单体的基本结构 5.2 划分命名空间 5.3 用作特定网页专用代码的包装器的单体 5.4 拥有私用成员的单体 5.4.1 使用下划线表示法 5.4.2 使用闭包 5.4.3 两种技术的比较 5.5 惰性实例化 5.6 分支 5.7 示例:用分支技术创建XHR对象 5.8 单体模式的适用场合 5.9 单体模式之利 5.10 单体模式之弊 5.11 小结 第6章 方法的链式调用 6.1 调用链的结构 6.2 设计一个支持方法链式调用的JavaScript库 6.3 使用回调从支持链式调用的方法获取数据 6.4 小结 第二部分 设计模式 第7章 工厂模式 7.1 简单工厂 7.2 工厂模式 7.3 工厂模式的适用场合 7.3.1 动态实现 7.3.2 节省设置开销 7.3.3 用许多小型对象组成一个大对象 7.4 示例:XHR工厂 7.4.1 专用型连接对象 7.4.2 在运行时选择连接对象 7.5 示例:RSS阅读器 7.6 工厂模式之利 7.7 工厂模式之弊 7.8 小结 第8章 桥接模式 8.1 示例:事件监听器 8.2 桥接模式的其他例子 8.3 用桥接模式联结多个类 8.4 示例:构建XHR连接队列 8.4.1 添加核心工具 8.4.2 添加观察者系统 8.4.3 开发队列的基本框架 8.4.4 实现队列 8.4.5 哪些地方用了桥接模式 8.5 桥接模式的适用场合 8.6 桥接模式之利 8.7 桥接模式之弊 8.8 小结 第9章 组合模式 9.1 组合对象的结构 9.2 使用组合模式 9.3 示例:表单验证 9.3.1 汇合起来 9.3.2 向FormItem添加操作 9.3.3 向层次体系中添加类 9.3.4 添加更多操作 9.4 示例:图片库 9.5 组合模式之利 9.6 组合模式之弊 9.7 小结 第10章 门面模式 10.1 一些你可能已经知道的门面元素 10.2 JavaScript库的门面性质 10.3 用作便利方法的门面元素 10.4 示例:设置HTML元素的样式 10.5 示例:设计一个事件工具 10.6 实现门面模式的一般步骤 10.7 门面模式的适用场合 10.8 门面模式之利 10.9 门面模式之弊 10.10 小结 第11章 适配器模式 11.1 适配器的特点 11.2 适配原有实现 11.3 示例:适配两个库 11.4 示例:适配电子邮件API 11.4.1 用适配器包装Web邮件API 11.4.2 从fooMail转向dedMail 11.5 适配器模式的适用场合 11.6 适配器模式之利 11.7 适配器模式之弊 11.8 小结 第12章 装饰者模式 12.1 装饰者的结构 12.1.1 接口在装饰者模式中的角色 12.1.2 装饰者模式与组合模式的比较 12.2 装饰者修改其组件的方式 12.2.1 在方法之后添加行为 12.2.2 在方法之前添加行为 12.2.3 替换方法 12.2.4 添加新方法 12.3 工厂的角色 12.4 函数装饰者 12.5 装饰者模式的适用场合 12.6 示例:方法性能分析器 12.7 装饰者模式之利 12.8 装饰者模式之弊 12.9 小结 第13章 享元模式 13.1 享元的结构 13.2 示例:汽车登记 13.2.1 内在状态和外在状态 13.2.2 用工厂进行实例化 13.2.3 封装在管理器中的外在状态 13.3 管理外在状态 13.4 示例:Web日历 13.4.1 把日期对象转化为享元 13.4.2 外在数据保存在哪里 13.5 示例:工具提示对象 13.5.1 未经优化的Tooltip类 13.5.2 作为享元的Tooltip 13.6 保存实例供以后重用 13.7 享元模式的适用场合 13.8 实现享元模式的一般步骤 13.9 享元模式之利 13.10 享元模式之弊 13.11 小结 第14章 代理模式 14.1 代理的结构 14.1.1 代理如何控制对本体的访问 14.1.2 虚拟代理、远程代理和保护代理 14.1.3 代理模式与装饰者模式的比较 14.2 代理模式的适用场合 14.3 示例:网页统计 14.4 包装Web服务的通用模式 14.5 示例:目录查找 14.6 创建虚拟代理的通用模式 14.7 代理模式之利 14.8 代理模式之弊 14.9 小结 第15章 观察者模式 15.1 示例:报纸的投送 15.1.1 推与拉的比较 15.1.2 模式的实践 15.2 构建观察者API 15.2.1 投送方法 15.2.2 订阅方法 15.2.3 退订方法 15.3 现实生活中的观察者 15.4 示例:动画 15.5 事件监听器也是观察者 15.6 观察者模式的适用场合 15.7 观察者模式之利 15.8 观察者模式之弊 15.9 小结 第16章 命令模式 16.1 命令的结构 16.1.1 用闭包创建命令对象 16.1.2 客户、调用者和接收者 16.1.3 在命令模式中使用接口 16.2 命令对象的类型 16.3 示例:菜单项 16.3.1 菜单组合对象 16.3.2 命令类 16.3.3 汇合起来 16.3.4 添加更多菜单项 16.4 示例:取消操作和命令日志 16.4.1 使用命令日志实现不可逆操作的取消 16.4.2 用于崩溃恢复的命令日志 16.5 命令模式的适用场合 16.6 命令模式之利 16.7 命令模式之弊 16.8 小结 第17章 职责链模式 17.1 职责链的结构 17.2 传递请求 17.3 在现有层次体系中实现职责链 17.4 事件委托 17.5 职责链模式的适用场合 17.6 图片库的进一步讨论 17.6.1 用职责链提高组合对象的效率 17.6.2 为图片添加标签 17.7 职责链模式之利 17.8 职责链模式之弊 17.9 小结

2013-05-04

JavaScript设计模式源码

对应JavaScript设计模式PDF各章源代码

2013-05-04

JavaScript设计模式 .Ross.Harmes.扫描版.pdf

从这里开始,真正掌握JavaScript的精髓。   Google和Yahoo专家联手揭秘世界顶尖公司的技术内幕   Amazon全五星誉图书   Web应用取代桌面程序的时代已经到来!作为Web前端的核心技术,JavaScript的重要性不言而喻,它有望成为下一代统治性程序语言。但由于业界长期的误解和滥用,也有不少人仍然对此半信半疑。那么,JavaScript到底能否当此大任呢? 本书中,Google和Yahoo公司的两位资深Web专家对此给出了掷地有声的肯定回答。作者针对常见的开发任务,从YUI等实战代码中取材,提供了专家级的解决方案,不仅透彻剖析了JavaScript中的面向对象编程。而且深入探讨了如何用JavaScript实现以前只在服务器端应用的设计模式。如何根据实际场景选择恰当的设计模式,开发出高质量的企业级代码。本书充分证明:JavaScript不仅毫不逊色于其他高级语言,已经是一种成熟且强大的面向对象语言。而且还拥有Java和C++等语言不具备的面向未来的特性,因此更加灵活、更富于表现力。 无论是前端工程师-还是服务器端程序员,通过本书都将使自己的JavaScript功力提升到前所未有的高度。 内容简介   《JavaScript设计模式》共有两部分。第一部分给出了实现具体设计模式所需要的面向对象特性的基础知识,主要包括接口、封装和信息隐藏、继承、单体模式等内容。第二部分则专注于各种具体的设计模式及其在JavaScript 语言中的应用,主要介绍了工厂模式、桥接模式、组合模式、门面模式等几种常见的模式。为了让每一章中的示例都尽可能地贴近实际应用,书中同时列举了一些JavaScript 程序员最常见的任务,然后运用设计模式使其解决方案变得更模块化、更高效并且更易维护,其中较为理论化的例子则用于阐明某些要点。《JavaScript设计模式》适合各层次的Web 前端开发人员阅读和参考,也适合有C++/Java/C# 背景的服务器端程序员学习。 作者简介   Ross Harmes,资深Web程序员,有10多年编程经验。现任Yahoo前端工程师。他是开源图片博客软件Birch的开发者。Blog地址为Http://tecrhfoolery.com。   Dustin Diaz,资深Web程序员,现任Google用户界面工程师。新一代JavaScript框架DEDlChain(兼具jQuery和YUI的优势)的开发者。他还是一位中长跑健将,800米跑曾经在全美国排名第13。拥有西班牙语学士学位。个人网站http://dustindiaz.com。 媒体评论   “本书道前人所未道,引导你从编写代码进化为设计代码。书中绝大部分示例代码都来自YUI等实战项目,并进行了深入剖析。强烈推荐。”   ——Nicholas C.Zakas,著名.JavaScript专家,Yarl00前端工程师,畅销书《JavaScript高级程序设计》作者   “毫不夸张地说,这是我有生以来读到的最好的一本JavaScript图书。作者讲授了大量独门的专家经验。”   ——Mostafa Farghaly,埃及程序员 目录 第一部分 面向对象的JavaScript 第1章 富有表现力的JavaScript 1.1 JavaScript的灵活性 1.2 弱类型语言 1.3 函数是一等对象 1.4 对象的易变性 1.5 继承 1.6 JavaScript中的设计模式 1.7 小结 第2章 接口 2.1 什么是接口 2.1.1 接口之利 2.1.2 接口之弊 2.2 其他面向对象语言处理接口的方式 2.3 在JavaScript中模仿接口 2.3.1 用注释描述接口 2.3.2 用属性检查模仿接口 2.3.3 用鸭式辨型模仿接口 2.4 本书采用的接口实现方法 2.5 Interface类 2.5.1 Interface类的使用场合 2.5.2 Interface类的用法 2.5.3 示例:使用Interface类 2.6 依赖于接口的设计模式 2.7 小结 第3章 封装和信息隐藏 3.1 信息隐藏原则 3.1.1 封装与信息隐藏 3.1.2 接口扮演的角色 3.2 创建对象的基本模式 3.2.1 门户大开型对象 3.2.2 用命名规范区别私用成员 3.2.3 作用域、嵌套函数和闭包 3.2.4 用闭包实现私用成员 3.3 更多高级对象创建模式 3.3.1 静态方法和属性 3.3.2 常量 3.3.3 单体和对象工厂 3.4 封装之利 3.5 封装之弊 3.6 小结 第4章 继承 4.1 为什么需要继承 4.2 类式继承 4.2.1 原型链 4.2.2 extend函数 4.3 原型式继承 4.3.1 对继承而来的成员的读和写的不对等性 4.3.2 clone函数 4.4 类式继承和原型式继承的对比 4.5 继承与封装 4.6 掺元类 4.7 示例:就地编辑 4.7.1 类式继承解决方案 4.7.2 原型式继承解决方案 4.7.3 掺元类解决方案 4.8 继承的适用场合 4.9 小结 第5章 单体模式 5.1 单体的基本结构 5.2 划分命名空间 5.3 用作特定网页专用代码的包装器的单体 5.4 拥有私用成员的单体 5.4.1 使用下划线表示法 5.4.2 使用闭包 5.4.3 两种技术的比较 5.5 惰性实例化 5.6 分支 5.7 示例:用分支技术创建XHR对象 5.8 单体模式的适用场合 5.9 单体模式之利 5.10 单体模式之弊 5.11 小结 第6章 方法的链式调用 6.1 调用链的结构 6.2 设计一个支持方法链式调用的JavaScript库 6.3 使用回调从支持链式调用的方法获取数据 6.4 小结 第二部分 设计模式 第7章 工厂模式 7.1 简单工厂 7.2 工厂模式 7.3 工厂模式的适用场合 7.3.1 动态实现 7.3.2 节省设置开销 7.3.3 用许多小型对象组成一个大对象 7.4 示例:XHR工厂 7.4.1 专用型连接对象 7.4.2 在运行时选择连接对象 7.5 示例:RSS阅读器 7.6 工厂模式之利 7.7 工厂模式之弊 7.8 小结 第8章 桥接模式 8.1 示例:事件监听器 8.2 桥接模式的其他例子 8.3 用桥接模式联结多个类 8.4 示例:构建XHR连接队列 8.4.1 添加核心工具 8.4.2 添加观察者系统 8.4.3 开发队列的基本框架 8.4.4 实现队列 8.4.5 哪些地方用了桥接模式 8.5 桥接模式的适用场合 8.6 桥接模式之利 8.7 桥接模式之弊 8.8 小结 第9章 组合模式 9.1 组合对象的结构 9.2 使用组合模式 9.3 示例:表单验证 9.3.1 汇合起来 9.3.2 向FormItem添加操作 9.3.3 向层次体系中添加类 9.3.4 添加更多操作 9.4 示例:图片库 9.5 组合模式之利 9.6 组合模式之弊 9.7 小结 第10章 门面模式 10.1 一些你可能已经知道的门面元素 10.2 JavaScript库的门面性质 10.3 用作便利方法的门面元素 10.4 示例:设置HTML元素的样式 10.5 示例:设计一个事件工具 10.6 实现门面模式的一般步骤 10.7 门面模式的适用场合 10.8 门面模式之利 10.9 门面模式之弊 10.10 小结 第11章 适配器模式 11.1 适配器的特点 11.2 适配原有实现 11.3 示例:适配两个库 11.4 示例:适配电子邮件API 11.4.1 用适配器包装Web邮件API 11.4.2 从fooMail转向dedMail 11.5 适配器模式的适用场合 11.6 适配器模式之利 11.7 适配器模式之弊 11.8 小结 第12章 装饰者模式 12.1 装饰者的结构 12.1.1 接口在装饰者模式中的角色 12.1.2 装饰者模式与组合模式的比较 12.2 装饰者修改其组件的方式 12.2.1 在方法之后添加行为 12.2.2 在方法之前添加行为 12.2.3 替换方法 12.2.4 添加新方法 12.3 工厂的角色 12.4 函数装饰者 12.5 装饰者模式的适用场合 12.6 示例:方法性能分析器 12.7 装饰者模式之利 12.8 装饰者模式之弊 12.9 小结 第13章 享元模式 13.1 享元的结构 13.2 示例:汽车登记 13.2.1 内在状态和外在状态 13.2.2 用工厂进行实例化 13.2.3 封装在管理器中的外在状态 13.3 管理外在状态 13.4 示例:Web日历 13.4.1 把日期对象转化为享元 13.4.2 外在数据保存在哪里 13.5 示例:工具提示对象 13.5.1 未经优化的Tooltip类 13.5.2 作为享元的Tooltip 13.6 保存实例供以后重用 13.7 享元模式的适用场合 13.8 实现享元模式的一般步骤 13.9 享元模式之利 13.10 享元模式之弊 13.11 小结 第14章 代理模式 14.1 代理的结构 14.1.1 代理如何控制对本体的访问 14.1.2 虚拟代理、远程代理和保护代理 14.1.3 代理模式与装饰者模式的比较 14.2 代理模式的适用场合 14.3 示例:网页统计 14.4 包装Web服务的通用模式 14.5 示例:目录查找 14.6 创建虚拟代理的通用模式 14.7 代理模式之利 14.8 代理模式之弊 14.9 小结 第15章 观察者模式 15.1 示例:报纸的投送 15.1.1 推与拉的比较 15.1.2 模式的实践 15.2 构建观察者API 15.2.1 投送方法 15.2.2 订阅方法 15.2.3 退订方法 15.3 现实生活中的观察者 15.4 示例:动画 15.5 事件监听器也是观察者 15.6 观察者模式的适用场合 15.7 观察者模式之利 15.8 观察者模式之弊 15.9 小结 第16章 命令模式 16.1 命令的结构 16.1.1 用闭包创建命令对象 16.1.2 客户、调用者和接收者 16.1.3 在命令模式中使用接口 16.2 命令对象的类型 16.3 示例:菜单项 16.3.1 菜单组合对象 16.3.2 命令类 16.3.3 汇合起来 16.3.4 添加更多菜单项 16.4 示例:取消操作和命令日志 16.4.1 使用命令日志实现不可逆操作的取消 16.4.2 用于崩溃恢复的命令日志 16.5 命令模式的适用场合 16.6 命令模式之利 16.7 命令模式之弊 16.8 小结 第17章 职责链模式 17.1 职责链的结构 17.2 传递请求 17.3 在现有层次体系中实现职责链 17.4 事件委托 17.5 职责链模式的适用场合 17.6 图片库的进一步讨论 17.6.1 用职责链提高组合对象的效率 17.6.2 为图片添加标签 17.7 职责链模式之利 17.8 职责链模式之弊 17.9 小结

2013-05-04

绝妙JavaScript特效自动显示绚丽字体

绝妙JavaScript特效自动显示绚丽字体,效果让你目瞪扣呆、瞠目结舌

2013-05-02

1500个前端开发常用JavaScript特效

1500个前端开发常用JavaScript特效,实例超多,特效实用,欢迎下载学习

2013-05-02

纯JavaScript实现超级画图工具

纯JavaScript实现超级画图工具,功能强悍,能自动画图,并具有画图轨迹记忆功能。

2013-04-30

纯JavaScript实现画图工具

页面简洁美观,画笔,橡皮擦等功能。画笔可选大小、样色,并可导出图片。

2013-04-30

纯JavaScript写的五子棋

各浏览器兼容,人机对战,你肯定下不过电脑

2013-04-30

数据结构与算法分析 Java语言描述第2版

中文名: 数据结构与算法分析_Java语言描述(第2版) 作者: 韦斯 译者: 冯舜玺 图书分类: 软件 资源格式: PDF 版本: 扫描版 出版社: 机械工业出版社 书号: ISBN:9787111231837 发行时间: 2009年01月01日 地区: 大陆 语言: 简体中文 简介: 内容简介 《数据结构与算法分析:Java语言描述(第2版)》是国外数据结构与算法分析方面的经典教材,使用卓越的Java编程语言作为实现工具讨论了数据结构(组织大量数据的方法)和算法分析(对算法运行时间的估计)。随着计算机速度的不断增加和功能的日益强大,人们对有效编程和算法分析的要求也不断增长。《数据结构与算法分析:Java语言描述(第2版)》把算法分析与最有效率的Java程序的开发有机地结合起来,深入分析每种算法,内容全面、缜密严格,并细致讲解精心构造程序的方法。 内容截图 目录: 译者序 前言 第1章 引论 1.1 本书讨论的内容 1.2 数学知识复习 1.2.1 指数 1.2.2 对数 1.2.3 级数 1.2.4 模运算 1.2.5 证明的方法 1.3 递归简论 1.4 实现泛型特性构件pre-Java5 1.4.1 使用Object表示泛型 1.4.2 基本类型的包装 1.4.3 使用接口类型表示泛型 1.4.4 数组类型的兼容性 1.5 利用Java5泛性实现泛型特性成分 1.5.1 简单的泛型类和接口 1.5.2 自动装箱/拆箱 1.5.3 带有限制的通配符 1.5.4 泛型static方法 1.5.5 类型限界 1.5.6 类型擦除 1.5.7 对于泛型的限制 1.6 函数对象 小结 练习 参考文献 第2章 算法分析 2.1 数学基础 2.2 模型 2.3 要分析的问题 2.4 运行时间计算 2.4.1 一个简单的例子 2.4.2 一般法则 2.4.3 最大子序列和问题的求解 2.4.4 运行时间中的对数 2.4.5 检验你的分析 2.4.6 分析结果的准确性 小结 练习 参考文献 第3章 表、栈和队列 3.1 抽象数据类型 3.2 表ADT 3.2.1 表的简单数组实现 3.2.2 简单链表 3.3 JavaCollectionsAPI中的表 3.3.1 Collection接口 3.3.2 Iterator接口 3.3.3 List接口、ArrayList类和LinkedList类 3.3.4 例:remove方法对LinkedList类的使用 3.3.5 关于ListIterator接口 3.4 ArrayList类的实现 3.4.1 基本类 3.4.2 迭代器、Java嵌套类和内部类 3.5 LinkedList类的实现 3.6 栈ADT 3.6.1 栈模型 3.6.2 栈的实现 3.6.3 应用 3.7 队列ADT 3.7.1 队列模型 3.7.2 队列的数组实现 3.7.3 队列的应用 小结 练习 第4章 树 4.1 预备知识 4.1.1 树的实现 4.1.2 树的遍历及应用 4.2 二叉树 4.2.1 实现 4.2.2 例子:表达式树 4.3 查找树ADT——二叉查找树 4.3.1 contains方法 4.3.2 findMin方法和findMax方法 4.3.3 insert方法 4.3.4 remove方法 4.3.5 平均情况分析 4.4 AVL树 4.4.1 单旋转 4.4.2 双旋转 4.5 伸展树 4.5.1 一个简单的想法(不能直接使用) 4.5.2 展开 4.6 树的遍历 4.7 B树 4.8 标准库中的集合与映射 4.8.1 关于Set接口 4.8.2 关于Map接口 4.8.3 TreeSet类和TreeMap类的实现 4.8.4 使用多个映射的例 小结 练习 参考文献 第5章 散列 5.1 一般想法 5.2 散列函数 5.3 分离链接法 5.4 不用链表的散列表 5.4.1 线性探测法 5.4.2 平方探测法 5.4.3 双散列 5.5 再散列 5.6 标准库中的散列表 5.7 可扩散列 小结 练习 参考文献 第6章 优先队列(堆) 6.1 模型 6.2 一些简单的实现 6.3 二叉堆 6.3.1 结构性质 6.3.2 堆序性质 6.3.3 基本的堆操作 6.3.4 其他的堆操作 6.4 优先队列的应用 6.4.1 选择问题 6.4.2 事件模拟 6.5 d-堆 6.6 左式堆 6.6.1 左式堆性质 6.6.2 左式堆操作 6.7 斜堆 6.8 二项队列 6.8.1 二项队列结构 6.8.2 二项队列操作 6.8.3 二项队列的实现 6.9 标准库中的优先队列 小结 练习 参考文献 第7章 排序 7.1 预备知识 7.2 插入排序 7.2.1 算法 7.2.2 插入排序的分析 7.3 一些简单排序算法的下界 7.4 希尔排序 7.5 堆排序 7.6 归并排序 7.7 快速排序 7.7.1 选取枢纽元 7.7.2 分割策略 7.7.3 小数组 7.7.4 实际的快速排序例程 7.7.5 快速排序的分析 7.7.6 选择问题的线性期望时间算法 7.8 排序算法的一般下界 7.9 桶式排序 7.10 外部排序 7.10.1 为什么需要一些新的算法 7.10.2 外部排序模型 7.10.3 简单算法 7.10.4 多路合并 7.10.5 多相合并 7.10.6 替换选择 小结 练习题 参考文献 第8章 不相交集类 8.1 等价关系 8.2 动态等价性问题 8.3 基本数据结构 8.4 灵巧求并算法 8.5 路径压缩 8.6 路径压缩和按秩求并的最坏情形 8.7 一个应用 小结 练习题 参考文献 第9章 图论算法 9.1 若干定义 9.2 拓扑排序 9.3 最短路径算法 9.3.1 无权最短路径 9.3.2 Dijkstra算法 9.3.3 具有负边值的图 9.3.4 无圈图 9.3.5 所有点对最短路径 9.3.6 最短路径的例子 9.4 网络流问题 9.5 最小生成树 9.5.1 Prim算法 9.5.2 Kruskal算法 9.6 深度优先搜索的应用 9.6.1 无向图 9.6.2 双连通性 9.6.3 欧拉回路 9.6.4 有向图 9.6.5 查找强分支 9.7 NP完全性介绍 9.7.1 难与易 9.7.2 NP类 9.7.3 NP完全问题 小结 练习 参考文献 第10章 算法设计技巧 10.1 贪婪算法 10.1.1 一个简单的调度问题 10.1.2 哈夫曼编码 10.1.3 近似装箱问题 10.2 分治算法 10.2.1 分治算法的运行时间 10.2.2 最近点问题 10.2.3 选择问题 10.2.4 一些算术问题的理论改进 10.3 动态规划 10.3.1 用一个表代替递归 10.3.2 矩阵乘法的顺序安排 10.3.3 最优二叉查找树 10.3.4 所有点对最短路径 10.4 随机化算法 10.4.1 随机数发生器 10.4.2 跳跃表 10.4.3 素性测试 10.5 回溯算法 10.5.1 收费公路重建问题 10.5.2 博弈 小结 练习 参考文献 第11章 摊还分析 11.1 一个无关的智力问题 11.2 二项队列 11.3 斜堆 11.4 斐波那契堆 11.4.1 切除左式堆中的节点 11.4.2 二项队列的懒惰合并 11.4.3 斐波那契堆操作 11.4.4 时间界的证明 11.5 伸展树 小结 练习 参考文献 第12章 高级数据结构及其实现 12.1 自顶向下伸展树 12.2 红黑树 12.2.1 自底向上的插入 12.2.2 自顶向下红黑树 12.2.3 自顶向下的删除 12.3 确定性跳跃表 12.4 AA树 12.5 treap树 12.6 kd树 12.7 配对堆 小结 练习

2013-04-11

轻量级J2EE企业应用实战struts2+hibernate+spring源码

国内IT大牛人物李刚的软件案例:如工作流管理系统、新闻发布系统、人事管理系统等

2013-04-07

架构之美(超清晰)pdf

健壮、优雅、灵活和易维护的软件架构是怎样炼成的?《架构之美》通过一系列优秀的文章回答了这个问题,这些文章来自于十几位当今一流的软件设计师和架构师。在每篇文章中,作者都向们展示了一个著名的软件架构,并分析了什么让其具有创新性,让其极其符合设计目标。   《架构之美》内容包括:   Facebook的架构如何建立在以数据为中心的应用生态系统之上。   Xen的创新架构对操作系统未来的影响。   KDE项目的社区过程如何让软件的架构从粗略的草图演进为漂亮的系统。   不断滋长的特征如何让GNUEmacs获得从未预料到的功能。   JikesRVM自优化、自足执行的运行时环境背后的魔法 内容简介   《架构之美》围绕5个主题领域来组织《架构之美》的内容:概述、企业应用、系统、最终用户应用和编程语言。《架构之美》让最优秀的设计师和架构师来描述他们选择的软件架构,剥开架构的各层,展示他们如何让软件做到实现功能、可靠、易用、高效率、可维护、可移植和优雅。 ·查看全部>>作者简介   王海鹏,1994年毕业于华东师范大学。拥有理学士(物理)和文学士(英国语言文学)学位。独立的咨询顾问、培训讲师、译者和软件开发者。已翻译十余本软件开发书籍,主题涵盖敏捷方法学、需求工程、 UML 建模和测试。拥有15年软件开发经验,目前主要的研究领域是软件架构和方法学,致力于提高软件开发的品质和效率。 ·查看全部>>媒体评论   “本书的作者们在介绍软件架构的基本实践和最佳实践方面干得很漂亮,他们也同样漂亮地介绍了各式各样的现代系统。我特别喜欢他们谈及的架构的广泛性,从Emacs到Facebook,从非常正式的系统到非常有灵气的系统。   简而言之,这是一本非常及时的书,对于软件架构的艺术、科学和实践是非常有益的贡献。”   ——GradyBooch,IBM院士 ·查看全部>>目录 序 前言 第一部分 论架构 第1章 什么是架构 1.1 简介 1.2 创建软件架构 1.3 架构结构 1.4 好的架构 1.5 美丽的架构 1.6 致谢 1.7 参考文献 第2章 两个系统的故事:现代软件神话 2.1 混乱大都市 2.2 设计之城 2.3 说明什么问题 2.4 轮到您了 2.5 参考文献 第二部分 企业级应用架构 第3章 伸缩性架构设计 3.1 简介 3.2 背景 3.3 架构 3.4 关于架构的思考 第4章 记忆留存 4.1 功能和约束 4.2 工作流 4.3 架构关注点 4.4 用户反应 4.5 结论 第5章 面向资源的架构:在Web中 5.1 简介 5.2 传统的Web服务 5.3 Web 5.4 面向资源的架构 5.5 数据驱动的应用 5.6 应用面向资源的架构 5.7 结论 第6章 数据增长:Facebook平台的架构 6.1 简介 6.2 创建一个社会关系Web服务 6.3 创建社会关系数据查询服务 6.4 创建一个社会关系Web门户:FBML 6.5 系统的支持功能 6.6 总结 第三部分 系统架构 第7章 Xen和虚拟化之美 7.1 简介 7.2 Xenoservers 7.3 虚拟化的挑战 7.4 半虚拟化 7.5 Xen的变换形式 7.6 改变的硬件,改变的Xen 7.7 经验教训 7.8 延伸阅读 第8章 Guardian:一个容错操作系统环境 8.1 Tandem/16,将来所有的计算机都会像这样构建 8.2 硬件 8.3 机械布局 8.4 处理器架构 8.5 处理器间总线 8.6 输入/输出 8.7 进程结构 8.8 消息系统 8.9 文件系统 8.10 民间传说 8.11 弊端 8.12 后继者 8.13 延伸阅读 第9章 JPC:一个纯Java的x86PC模拟程序 9.1 简介 9.2 概念验证 9.3 PC架构 9.4 Java性能技巧 9.5 把4GB放入4GB:这不起作用 9.6 保护模式的危险 9.7 从事一项毫无成功希望的斗争 9.8 劫持JVM 9.9 最终灵活性 9.10 最佳安全性 9.11 第二次做会更好 第10章 元循环虚拟机的力量:JikesRVM 10.1 背景 10.2 与运行时环境相关的传言 10.3 JikesRVM简史 10.4 一个自足执行的运行时自举 10.5 运行时组件 10.6 经验教训 参考文献 第四部分 最终用户应用架构 第11章 GNUEmacs:滋长的特性是其优势 11.1 使用中的Emacs 11.2 Emacs的架构 11.3 滋长的特性 11.4 另外两个架构 第12章 当集市开始构建教堂 12.1 简介 12.2 KDE项目的历史和组织结构 12.3 Akonadi 12.4 ThreadWeaver 第五部分 语言与架构 第13章 软件架构:面向对象与面向功能 13.1 概述 13.2 示例 13.3 面向功能解决方案的模块性评价 13.4 面向对象视图 13.5 面向对象模块性的评价和改进 13.6 代理:将操作封装到对象中 致谢 参考文献 第14章 重读经典 14.1 所有东西都是对象 14.2 类型是隐式定义的 14.3 问题 14.4 砖块和灰浆建筑架构 参考文献 跋 ·收起全部<<前言  从编辑手里拿到厚厚的《架构之美》译稿时,恰巧是我刚刚讲完一场消息系统架构的讲座之后。而正是在昨天,一位想要创业的朋友跟我说要寻找一位懂得“架构”的高人与他一起创业。要知道与代码不同的是,“虚幻”的架构常常让人认为其有很多玄妙之处,只因它大多难以落在纸上。特别是与很多大师谈及架构时,经常落入他们的一些“陷阱”,并往往为自己达不到大师的精明与技巧而叹息。殊不知,被我们所津津乐道的这些架构,是他们在日常工作里经历了大量的错误、重复的尝试、无数的代码、长久的考验所积淀下来的只言片语。本书将数十人的经历与只言片语,经过深思熟虑后抽象出规律,使之可以不断复用。而另一方面,又将架构的过程娓娓道来,尝试让读者思考架构的过程与思路。在这里,更多的过程与思考被展现出来,更多的原因与为什么让我们了解。这本书里展现了很多绚丽的故事,犹如士兵阅读将军的传记一样,阅读本书将会让你更鼓起勇气追寻大师们的脚步,但永远要记住,每一滴汗水才真正是你成长路上的每一个记号,要在自己的工作里更深地去理解每一处不同,架构出属于自己的系统。感谢译者和出版者为我们带来这样一本传奇的架构故事书。 ·查看全部>>精彩书摘   第一部分  论架构   第1章 什么是架构   1.5 美丽的架构   所有前面的方法都有助于我们判断一个架构是否“足够好”——也就是说,是否有可能指导开发者和测试者构建一个系统,并满足系统的利益相关人的功能和质量关注点。在我们每天使用的系统中存在着许多好的架构。   但是,超越足够好的架构是怎样的呢?如果有一个“软件架构名人堂”,那会怎样?哪些架构会陈列在这个艺术馆的墙上?这个想法可能没有你想象的那么遥远——在软件产品线领域,这样的“名人堂”的确存在。(注1)进入“软件产品线名人堂”的条件包括获得商业上的成功、影响其他产品线的架构(其他产品线可能“借用、复制、窃取”这个架构)、拥有足够的文档从而让其他人“不必通过道听途说”就能够理解该架构。   我们将为更一般的“架构名人堂”或“美丽架构艺术馆”的候选者设立怎样的条件呢?   首先我们应该认识到,这是一个软件系统的艺术馆,而不是其他艺术馆,我们的系统构建的目的是为了使用。所以,我们也许从一开始就应该关注该架构的实用性:它应该每天被许多人使用。   但是,在使用架构之前,它必须先构建,所以我们应该关注该架构的可构建性。我们会寻找那些具有定义良好的使用结构的架构,它们支持增量式构建,这样,通过每次构建迭代我们都能得到一个有用的、可测试的系统。我们也会寻找那些具有定义良好的模块接口、本来就很好测试的架构,这样,构建的过程就是透明的、可见的。   接来下,我们想寻找那些展示了持久性的架构——也就是说,那些经过了时间考验的架构。我们生活在一个技术环境以从未有过的加速度变化的年代。美丽的架构应该预期到变更的需要,允许期望的修改能够容易而有效地进行。我们想寻找那些避免了“衰老地平线”(Klein

2013-03-25

HTML5游戏开发(全)pdf

HMTL5有望成为网络游戏开发的热门新平台。HTML5游戏能够运行于包括iPhone系列和iPad系列在内的计算机、智能手机以及平板电脑上。今天,我们加入HTML5游戏开发的急先锋,明日将成为时代的弄潮儿。   本书将展示如何使用最新的HTML5和CSS3 Web标准来构建纸牌游戏、绘图游戏、物理游戏,甚至是多人网络游戏。本书讲解清晰、系统全面,参照本书的讲解就能构建出6款示例游戏。   HTML5、CSS3以及相关的JavaScript API是网络上最新的热点话题。这些标准给我们带来一个新的游戏市场—HTML5游戏。通过新的功能,我们能用HTML5元素、CSS3属性,以及JavaScript来设计运行于浏览器的游戏。   本书根据关注话题的侧重点而分成9章。 我们将通过创建6款游戏来具体学习如何绘制游戏对象、绘制动画、加入音频、连接玩家,以及用Box2D物理引擎构建游戏。   本书内容:   第1章介绍HTML5、CSS3,以及相关的JavaScript API 新功能。该章还演示了利用这些功能和特性能创建什么样的游戏。   第2章通过使用DOM和jQuery创建传统《乒乓球》游戏来开始我们的游戏开发之旅。   第3章探讨CSS3新功能,讨论如何用DOM和CSS3来创建《纸牌记忆配对》游戏。   第4章介绍在页面中通过新Canvas元素来绘制游戏并与之进行交互的新方式,还演示如何用Canvas来构建《解题》游戏。   第5章通过在Canvas中绘制渐变效果和加入图像进行美化,完善前面介绍的《解题》游戏。该章还讨论基于帧的动画精灵和多层管理方法。   第6章使用Audio元素给游戏添加声音效果和背景音乐。该章还讨论各浏览器对声音格式的兼容性,并在该章结尾完成一款由键盘驱动的音乐游戏。   第7章使用新的本地存储API保存和恢复游戏进度,记录最佳成绩功能,进一步增强第3章所创建的CSS3《纸牌记忆配对》游戏。   第8章讨论能让浏览器持久连接到socket服务器的新WebSocket API,用于实现多人联网玩游戏,并在该章完成《我画你猜》游戏。   第9章传授如何把Box2D(著名物理引擎)集成到Canvas游戏中。该章讨论如何创建物体、应用力、连接物体,以及如何把图形与物体进行关联,并最终创建一款平台汽车游戏。   阅读本书你需要做的准备   你需要最新的现代Web浏览器,一个优秀的文本编辑器,HTML、CSS以及JavaScript的基本知识。   本书读者对象   本书适合于对HTML、CSS和JavaScript有基本理解,并希望设计网页类Canvas游戏、基于DOM游戏的设计者。

2013-03-25

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除