自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

技术架构公社

微信公众号【技术架构公社】

  • 博客(58)
  • 资源 (17)
  • 收藏
  • 关注

原创 JUC并发编程 - ReentrantReadWriteLock源码分析

前言ReentrantReadWriteLock锁是AQS的另一种实现,它做到了可重入、可中断,分为公平和非公平两类实现,并且实现了读锁和写锁两类同时控制。在使用时,读写锁持有的同一个Lock实例,通过控制锁的行为,及CLH节点状态,来操作读锁和写锁,对于写少读多的场景,能提高效率。由于我对AQS及ReentrantLock的源码已经做过分析,因此本篇文章对经常出现的代码流程介绍的会较为粗略,初次接触ReentrantReadWriteLock源码的同学,建议先从前面的文章看起,这样反而更能清晰的理

2020-08-22 12:41:15 288

原创 Mockito+JUnit实现单元测试

这种组合方式,可以理解为仅依赖的是JUnit和Mockito,spring没写是因为关键注解的使用,并没有用到@Resource、@ComponentScan等,1、首先导入包<dependencies> <!--spring的包忽略--> ... <dependency> <groupId>junit</groupId> <artifactId>junit<.

2020-08-21 09:50:30 820

原创 Mockito+JUnit+Spring实现单元测试

这种组合方式,依赖的是JUnit和Spring容器,进行对象注入,而Mockit的作用是在spring生成的bean中,注入mock对象。相当于使用了Mockito的一部分功能。首先导入包<dependencies> <!--spring的包忽略--> ... <dependency> <groupId>junit</groupId> <artifactId>jun.

2020-08-21 09:46:38 556

原创 JUC并发编程 - ReentrantLock源码分析

前言前面分析了AQS类的源码,但真正实现AQS的实现类都在JUC中,当然AQS也是JUC的一部分,只是它不面向应用,除非自己去继承实现一套逻辑。在java的java.util.concurrent包,简称JUC,其内包含的类都与多线程有关,是非常重要的一个包。接下来准备针对JUC下常用类进行分析,剖析它们的原理及使用特点。而本文将针对比较常用的ReentrantLock源码来分析。Re...

2020-04-15 10:58:40 260

原创 面试必考AQS-await和signal的实现原理

Condition接口这个接口为我们提供了2类方法,await()和signal(),其实现类ConditionObject,是AQS中的一个子类。在介绍AQS结构的文章中,ConditionObject类被跳过了,这个类的存在与CLH模型关联度不是很强,但在并发编程中却是不可或缺的一环,它提供的await()和signal()方法,能够为多线程之间交互提供帮助,能让线程暂停和恢复,是很重要的...

2020-04-08 16:46:16 2080 1

原创 面试必考AQS-共享锁的申请与释放,传播状态

引子前文《面试必考AQS-AQS源码全局分析》已经对AQS中对于共享 锁的申请与释放流程进行了总结。而对于申请与释放,在AQS中提现的是与锁并无关系,而是针对同步队列的操作,向同步队列中添加、移除Node实例对象,操作Node中的线程对象。而我们日常使用的锁类,只是表象,何时可以加锁、解锁,达到何种条件才算加锁成功、解锁成功,这才是AQS锁实现的功能。接下来将从源码层面看一下,共享锁的申请与释...

2020-04-03 11:37:33 486

原创 面试必考AQS-排它锁的申请与释放

引子前文《面试必考AQS-排它锁的申请与释放》已经对AQS中对于排它锁的申请与释放流程进行了总结。而对于申请与释放,在AQS中提现的是与锁并无关系,而是针对同步队列的操作,向同步队列中添加、移除Node实例对象,操作Node中的线程对象。而我们日常使用的锁类,只是表象,何时可以加锁、解锁,达到何种条件才算加锁成功、解锁成功,这才是AQS锁实现的功能。接下来将从源码层面看一下,排它锁的申请与释放...

2020-03-26 11:11:31 284

原创 面试必考AQS-AQS源码全局分析

源码划分在《面试必考AQS-AQS概览》中我将AQS的源码,大致分为六部分,总结一下分别是:链表节点类、链表头尾指针 条件对象 同步器状态/资源 用于cas操作的变量及方法 一些实例方法操作链表及同步器状态状态 一些抽象方法等待被实现接下来就逐个介绍这些内容。抽象方法介绍AQS中包含5个未实现方法,也就是等待子类来实现个性化逻辑的,他们是:protected bo...

2020-03-25 09:59:16 201

原创 面试必考AQS-AQS概览

AQS的含义AQS是java.util.concurrent.locks.AbstractQueuedSynchronizer的简称,直译就是“抽象队列同步器”,它是java中大部分lock类的间接实现者。AQS中实现的各种逻辑非常精妙,在此膜拜一下Doug Lea老爷子。刚刚有提到AQS间接实现了lock类,检查java中提供的lock类,如ReentrantLock,Reentrant...

2020-03-24 16:32:10 211

转载 Dubbo可扩展机制实战

Dubbo可扩展机制源码解析在Dubbo可扩展机制实战中,我们了解了Dubbo扩展机制的一些概念,初探了Dubbo中LoadBalance的实现,并自己实现了一个LoadBalance。是不是觉得Dubbo的扩展机制很不错呀,接下来,我们就深入Dubbo的源码,一睹庐山真面目。ExtensionLoaderExtensionLoader 是最核心的类,负责扩展点的加载和生命周期管理。我...

2019-05-07 22:52:22 374

转载 Dubbo可扩展机制实战

1. Dubbo的扩展机制在Dubbo的官网上,Dubbo描述自己是一个高性能的RPC框架。今天我想聊聊Dubbo的另一个很棒的特性, 就是它的可扩展性。 如同罗马不是一天建成的,任何系统都一定是从小系统不断发展成为大系统的,想要从一开始就把系统设计的足够完善是不可能的,相反的,我们应该关注当下的需求,然后再不断地对系统进行迭代。在代码层面,要求我们适当的对关注点进行抽象和隔离,在软件不断添加...

2019-05-07 22:51:25 138

原创 源码解读 - Tcc-Transaction框架(四)回归最新版本思路

前言这次我们直接回到主干分支master-1.2.x进行分析。正文大致浏览一下各个模块,主要模块没有增加。tcc-transaction-server目前还是先不看。 tcc-transaction-dubbo没变动。 tcc-transaction-unit-test增加了几个单元测试类。 tcc-transaction-tutorial-sample增加了很多集成例子。...

2019-05-05 22:57:29 235

原创 源码解读 - Tcc-Transaction框架(三)dubbo支持

前言回到master-1.2.x分支,继续浏览gitlog,这次选择update the version to 1.2.0这次提交,注意这个分支编译会报错,调整dubbo版本为2.5.3才行。正文项目整体结构:这个版本中,增加了tcc-transaction-dubbo模块。同时也调整了一些类所在模块、增加了更多的扩展。tcc-transaction-api迁移:将...

2019-05-05 22:49:55 442

原创 源码解读 - Tcc-Transaction框架(二)职责划分及功能调整

前言回到master-1.2.x分支,继续浏览gitlog,在1.0.3版本后,作者更新较为频繁,每个月都有提交,在2016/6/4日有一次版本变更1.1.0,但是不要急,根据这段时间文件变更内容看,东西修改了不少,但是1.1.0之后还有几次频繁修改,包括几个issue的修订。最后我确定从issue#22的修复为模板,拉取分支(afterv1.1.0-resolvesTheIssue...

2019-05-05 22:23:52 239

原创 源码解读 - Tcc-Transaction框架(一)初探实现思路

前言一个成熟的开源项目,其代码量还是较为客观的,拿到手通常不知如何下手。那么一套清洗的分析思路尤为重要,帮助自己快速理解作者思路。1、首要工作是fork一份源码,在这个基础上做一些诸如,添加注释、debug等操作比较方便。2、查看作者的提交历史,也就是通过git历史来查看这个项目的进化过程。第一步以及clone到本地,可自行百度如何操作。我们从第二步开始。正文1、找到感兴趣...

2019-04-30 15:31:23 609

转载 分布式存储系统:缓存一致性问题之Lease机制

Lease机制  既然,Lease机制提出的时候是为了解决分布式存储系统中缓存一致性的问题,那么首先来看看Lease机制是怎么保证缓存的强一致性的。注意,为了方便后文描述,在本小节中,我们称元数据服务器为服务器,缓存服务器为客户端。  要点:服务器向所有客户端发送缓存数据的同时,颁发一个lease,lease包含一个有限期(即过期时间) lease的含义是:在这个有效期内,服务器保证...

2019-02-18 16:42:27 485

原创 分布式系统的一致性协议之 Zookeeper一致性协议ZAB简述

zookeeper是使用ZAB协议作为数据一致性的算法,ZAB全称:原子消息广播协议。ZAB可以说是在Paxos算法基础上进行了扩展改造:1、ZAB协议设计了支持崩溃恢复,可以保证在Leader进程崩溃的时候重新选举出Leader并且保证数据的完整性2、zookeeper使用单一主进程Leader用于处理客户端所有事物请求,写只能由Leader处理,写过程会阻塞读进程3、采用ZAB协议...

2019-02-18 15:06:15 449

转载 分布式系统的一致性协议之 一致性方案MS、MM、2PC 和 3PC

根据上一篇文章描述《分布式系统的一致性协议之 CAP理论原理》可知,目前分布式系统中通用的一致性方案,主要包括:冷备、Master/Slave、Master/Master、两阶段提交以及基于 Paxos 算法的各种实现。冷备所谓冷备,也就是做定时全量、增量的备份,在系统一致性、可用性出现问题时,能够通过备份数据还原系统到达某一点。这种方案操作难度小,但存在即时性低、丢失率高的问题。Ma...

2019-02-15 15:32:06 711

转载 分布式系统的一致性协议之 CAP理论原理

在分布式系统领域,有一个理论,对于分布式系统的设计影响非常大,那就是 CAP 理论,即对于一个分布式系统而言,它是无法同时满足 Consistency(强一致性)、Availability(可用性) 和 Partition tolerance(分区容忍性) 这三个条件的,最多只能满足其中两个。但在实际中,由于网络环境是不可信的,所以分区容忍性几乎是必不可选的,设计者基本就是在一致性和可用性之间做选...

2019-02-15 15:08:11 946

原创 Git分支模型:较为标准的模型使用流程分析

本文介绍一种使用Git进行源代码管理的分支模型,着重于如何使用Git更好的管理我们的源代码。我假定您对Git有一定了解,会使用基本的Git命令进行一些简单的源代码管理工作。这不是一篇Git使用教程。文章的主要思想源自以下链接:http://nvie.com/posts/a-successful-git-branching-model/根据自己的使用情况进行了补充。我们知道Git...

2019-01-23 15:12:33 235

转载 web优化必须了解的原理之I/o的五种模型和web的三种工作模式

web优化必须了解的原理之I/o的五种模型和web的三种工作模式===========================================图解五种I/O模型=========================================== 五种I/O: 1)阻塞I/0 2)非阻塞I/O 3)I/O复用 4)事件(信号)驱动I/O 5)异步I/O...

2019-01-15 16:43:21 249

转载 消息队列的两种模式

Java消息服务(Java Message Service,JMS)应用程序接口是一个Java平台中关于面向消息中间件(MOM)的API,用于在两个应用程序之间,或分布式系统中发送消息,进行异步通信。点对点与发布订阅最初是由JMS定义的。这两种模式主要区别或解决的问题就是发送到队列的消息能否重复消费(多订阅)1、定义JMS规范目前支持两种消息模型:点对点(point to point, ...

2019-01-14 16:37:39 216

转载 理解事务的4种隔离级别

数据库事务的隔离级别有4种,由低到高分别为Read uncommitted 、Read committed 、Repeatable read 、Serializable 。而且,在事务的并发操作中可能会出现脏读,不可重复读,幻读。下面通过事例一一阐述它们的概念与联系。Read uncommitted读未提交,顾名思义,就是一个事务可以读取另一个未提交事务的数据。事例:老板要给程序员发工...

2019-01-12 15:56:27 223

原创 mysql数据库死锁的产生原因及解决办法

这篇文章主要介绍了mysql数据库锁的产生原因及解决办法,需要的朋友可以参考下数据库和操作系统一样,是一个多用户使用的共享资源。当多个用户并发地存取数据 时,在数据库中就会产生多个事务同时存取同一数据的情况。若对并发操作不加控制就可能会读取和存储不正确的数据,破坏数据库的一致性。加锁是实现数据库并 发控制的一个非常重要的技术。在实际应用中经常会遇到的与锁相关的异常情况,当两个事务需要一组...

2018-12-29 16:11:23 1542

转载 Java中的经典算法之选择排序(SelectionSort)

a) 原理:每一趟从待排序的记录中选出最小的元素,顺序放在已排好序的序列最后,直到全部记录排序完毕。也就是:每一趟在n-i+1(i=1,2,…n-1)个记录中选取关键字最小的记录作为有序序列中第i个记录。基于此思想的算法主要有简单选择排序、树型选择排序和堆排序。(这里只介绍常用的简单选择排序)b) 简单选择排序的基本思想:给定数组:int[] arr={里面n个数据};第1趟排序,在待排序数据...

2018-12-26 14:53:24 115

原创 验证[mysql]的REPEATABLE-READ隔离级别对于update操作的影响

隔离级别略过不讲。1、准备工作初始化数据:CREATE TABLE `t_tran` ( `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键', `a` int(11) DEFAULT NULL, `b` int(11) DEFAULT NULL, PRIMARY KEY (`id`)) ENGINE=InnoDB ...

2018-12-25 18:14:50 1065 3

原创 总结平衡二叉树概念、插入(旋转)对应java实现

一、定义及原理平衡二叉树要求对于每一个节点来说,它的左右子树的高度之差不能超过1,如果插入或者删除一个节点使得高度之差大于1,就要进行节点之间的旋转,将二叉树重新维持在一个平衡状态。这个方案很好的解决了二叉查找树退化成链表的问题,把插入,查找,删除的时间复杂度最好情况和最坏情况都维持在O(logN)。但是频繁旋转会使插入和删除牺牲掉O(logN)左右的时间,不过相对二叉查找树来说,时间上稳定了...

2018-12-21 19:00:57 550 1

转载 Java map 详解 - 用法、遍历、排序、常用API等

Map用法类型介绍Java 自带了各种 Map 类,这些 Map 类可归为三种类型:通用Map用于在应用程序中管理映射,通常在 java.util 程序包中实现:HashMap、Hashtable、Properties、LinkedHashMap、IdentityHashMap、TreeMap、WeakHashMap、ConcurrentHashMap专用Map通常我们不必亲自...

2018-12-20 18:44:38 214

转载 LinkedList、ConcurrentLinkedQueue、LinkedBlockingQueue对比分析

      写这篇文章源于我经历过的一次生产事故,在某家公司的时候,有个服务会收集业务系统的日志,此服务的开发人员在给业务系统的sdk中就因为使用了LinkedList,又没有做并发控制,就造成了此服务经常不能正常收集到业务系统的日志(丢日志以及日志上报的线程停止运行)。看一下add()方法的源码,我们就可以知道原因了:public boolean add(E e) { linkLa...

2018-12-20 18:04:23 512

转载 java队列——queue详细分析

Queue: 基本上,一个队列就是一个先入先出(FIFO)的数据结构Queue接口与List、Set同一级别,都是继承了Collection接口。LinkedList实现了Deque接 口。Queue的实现1、没有实现的阻塞接口的LinkedList: 实现了java.util.Queue接口和java.util.AbstractQueue接口  内置的不阻塞队列: PriorityQu...

2018-12-20 17:59:58 89

原创 git常用命令总结

(1)git本地仓库关联远程仓库的两种方式:1.将远程的代码clone到本地仓库2.将本地的代码关联到远程仓库第1种,直接git clone 仓库地址即可。重点说第2种1、在github上新建一个仓库,然后在本地仓库配置远程仓库地址&gt;git remote add origin [email protected]:stormzhang/test.git2、此时再进行pull......

2018-08-15 17:27:40 1593 1

原创 Hexo+github搭建个人博客

环境准备软件:git,node.js,hexo,markdown下载并安装git,node.js,markdown,过程略。常见问题1、markdown安装完成后,如果使用过程出现如下异常,An error occurred with the Html rendering component...原因:MarkdownPad 2 在win10下 出现HTML 渲染错误(Th...

2018-08-02 21:04:13 231

原创 dubbo集成netflix原生的hystrix框架

一、需求描述需要将一个现有项目添加熔断功能,而这个项目的技术栈为spring、dubbo等,并且使用的dubbo-Main方式启动。二、存在问题由于项目并未使用web容器、也未使用spring-boot。而目前能拿到的资料中,都是在spring-boot下进行hystrix集成的,不得不说spring-boot的开箱即用理念,集成起来真的非常方便。因此,基于当前结构无法快速集成,也就需...

2018-08-02 20:47:35 5468 1

原创 [独孤九剑]持续集成实践(三)- Jenkins安装与配置(Jenkins+MSBuild+GitHub)

&#13; 本系列文章包含:&#13;&#13;[独孤九剑]持续集成实践(一)- 引子&#13;[独孤九剑]持续集成实践(二)– MSBuild语法入门&#13;[独孤九剑]持续集成实践(三)- Jenkins安装与配置(Jenkins+MSBuild+GitHub)&#13;&#13;&#13;1、前言 ...

2015-08-12 16:18:00 382 2

原创 [独孤九剑]持续集成实践(二)– MSBuild语法入门

本系列文章包含:[独孤九剑]持续集成实践(一)- 引子[独孤九剑]持续集成实践(二)– MSBuild语法入门[独孤九剑]持续集成实践(三)- Jenkins安装与配置(Jenkins+MSBuild+GitHub)1、开始...

2015-08-12 16:17:00 175 3

原创 [独孤九剑]持续集成实践(一)- 引子

本系列文章包含:[独孤九剑]持续集成实践(一)- 引子[独孤九剑]持续集成实践(二)– MSBuild语法入门[独孤九剑]持续集成实践(三)- Jenkins安装与配置(Jenkins+MSBuild+GitHub)1、概念描述(了解的话直接跳到第2部分) ...

2015-08-12 16:16:00 122

原创 [独孤九剑]Oracle知识点梳理(十)%type与%rowtype及常用函数

&#13; 本系列链接导航:&#13;[独孤九剑]Oracle知识点梳理(一)表空间、用户&#13;[独孤九剑]Oracle知识点梳理(二)数据库的连接&#13;[独孤九剑]Oracle知识点梳理(三)导入、导出&#13;[独孤九剑]Oracle知识点梳理(四)SQL语句之DML和DDL&#13;[独孤九剑]Oracle知识点梳理(五)数据库常用对象之Table、V...

2015-03-15 23:15:00 142

原创 [独孤九剑]Oracle知识点梳理(九)数据库常用对象之package

本系列链接导航:[独孤九剑]Oracle知识点梳理(一)表空间、用户[独孤九剑]Oracle知识点梳理(二)数据库的连接[独孤九剑]Oracle知识点梳理(三)导入、导出[独孤九剑]Oracle知识点梳理(四)SQL语句之DML和DDL[独孤九剑]Oracle知识点梳理(五)数据库常用对象之Table、View[独孤九剑]Oracle知识点梳理(六)数据库常用对象...

2015-03-15 23:12:00 138

原创 [独孤九剑]Oracle知识点梳理(八)常见Exception

&#13; 本系列链接导航:&#13;[独孤九剑]Oracle知识点梳理(一)表空间、用户&#13;[独孤九剑]Oracle知识点梳理(二)数据库的连接&#13;[独孤九剑]Oracle知识点梳理(三)导入、导出&#13;[独孤九剑]Oracle知识点梳理(四)SQL语句之DML和DDL&#13;[独孤九剑]Oracle知识点梳理(五)数据库常用对象之Table、V...

2015-03-15 23:08:00 109

原创 [独孤九剑]Oracle知识点梳理(七)数据库常用对象之Cursor

&#13; 本系列链接导航:&#13;[独孤九剑]Oracle知识点梳理(一)表空间、用户&#13;[独孤九剑]Oracle知识点梳理(二)数据库的连接&#13;[独孤九剑]Oracle知识点梳理(三)导入、导出&#13;[独孤九剑]Oracle知识点梳理(四)SQL语句之DML和DDL&#13;[独孤九剑]Oracle知识点梳理(五)数据库常用对象之Table、V...

2015-03-15 23:03:00 110

mysql技术内幕innodb存储引擎数据库技术丛书-带书签精校.pdf

按章节、由浅入深的阐述InnoDB存储引擎原理,包括 文件、表、索引与算法、锁、事务、备份与恢复、性能调优等等,十分详尽。

2019-07-26

MySQL索引背后的数据结构及算法原理.pdf

对MySQL两种常用存储引擎的索引数据结构做了细致描述,针对性的优化做了介绍。

2019-07-26

Microsoft web application stress tool(WAS中文说明书)

Microsoft web application stress tool的中文说明书,软件为英文版,该文档为中文版使用说明,简单易懂

2015-07-29

编写可维护的javascript(英文)

《编写可维护的JavaScript》向开发人员阐述了如何在团队开发中编写具备高可维护性的JavaScript代码,书中详细说明了作为团队一分子,应该怎么写JavaScript。本书内容涵盖了编码风格、编程技巧、自动化、测试等几方面,既包括具体风格和原则的介绍,也包括示例和技巧说明,最后还介绍了如何通过自动化的工具和方法来实现一致的编程风格。   《编写可维护的JavaScript》作者Nicholas C. Zakas是顶级的Web技术专家,也是《JavaScript高级程序设计》一书的作者。他曾是Yahoo!的首席前端开发工程师,在完成了从一名“独行侠”到“团队精英”的蜕变后,他站在前端工程师的角度提炼出众多的最佳编程实践,其中包括很多业内权威所推崇的最佳法则,而这些宝贵经验正是本书的核心内容。   《编写可维护的JavaScript》适合前端开发工程师、JavaScript程序员和学习JavaScript编程的读者阅读,也适合开发团队负责人、项目负责人阅读。运用本书中讲述的技巧和技术,可以使JavaScript团队编程从侠义的个人偏好的阴霾走出来,走向真正的高可维护性、高效能和高水准。 第一部分 编程风格 第1章 基本的格式化 1.1 缩进层级 1.2 语句结尾 1.3 行的长度 1.4 换行 1.5 空行 1.6 命名 1.6.1 变量和函数 1.6.2 常量 1.6.3 构造函数 1.7 直接量 1.7.1 字符串 1.7.2 数字 1.7.3 null 1.7.4 undefined 1.7.5 对象直接量 1.7.6 数组直接量 第2章 注释 2.1 单行注释 2.2 多行注释 2.3 使用注释 2.3.1 难于理解的代码 2.3.2 可能被误认为错误的代码 2.3.3 浏览器特性hack 2.4 文档注释 第3章 语句和表达式 3.1 花括号的对齐方式 3.2 块语句间隔 3.3 switch语句 3.3.1 缩进 3.3.2 case语句的“连续执行” 3.3.3 default 3.4 with语句 3.5 for循环 3.6 for-in循环 第4章 变量、函数和运算符 4.1 变量声明 4.2 函数声明 4.3 函数调用间隔 4.4 立即调用的函数 4.5 严格模式 4.6 相等 4.6.1 eval() 4.6.2 原始包装类型 第二部分 编程实践 第5章 UI层的松耦合 5.1 什么是松耦合 5.2 将JavaScript从CSS中抽离 5.3 将CSS从JavaScript中抽离 5.4 将JavaScript从HTML中抽离 5.5 将HTML从JavaScript中抽离 5.5.1 方法1:从服务器加载 5.5.2 方法2:简单客户端模板 5.5.3 方法3:复杂客户端模板 第6章 避免使用全局变量 6.1 全局变量带来的问题 6.1.1 命名冲突 6.1.2 代码的脆弱性 6.1.3 难以测试 6.2 意外的全局变量 避免意外的全局变量 6.3 单全局变量方式 6.3.1 命名空间 6.3.2 模块 6.4 零全局变量 第7章 事件处理 7.1 典型用法 7.2 规则1:隔离应用逻辑 7.3 规则2:不要分发事件对象 第8章 避免“空比较” 8.1 检测原始值 8.2 检测引用值 8.2.1 检测函数 8.2.2 检测数组 8.3 检测属性 第9章 将配置数据从代码中分离出来 9.1 什么是配置数据 9.2 抽离配置数据 9.3 保存配置数据 第10章 抛出自定义错误 10.1 错误的本质 10.2 在JavaScript中抛出错误 10.3 抛出错误的好处 10.4 何时抛出错误 10.5 try-catch语句 10.6 错误类型 第11章 不是你的对象不要动 11.1 什么是你的 11.2 原则 11.2.1 不覆盖方法 11.2.2 不新增方法 11.2.3 不删除方法 11.3 更好的途径 11.3.1 基于对象的继承 11.3.2 基于类型的继承 11.3.3 门面模式 11.4 关于Polyfill的注解 11.5 阻止修改 第12章 浏览器嗅探 12.1 User-Agent检测 12.2 特性检测 12.3 避免特性推断 12.4 避免浏览器推断 12.5 应当如何取舍 第三部分 自动化 第13章 文件和目录结构 13.1 最佳实践 13.2 基本结构 第14章 Ant 14.1 安装 14.2 配置文件 14.3 执行构建 14.4 目标操作的依赖 14.5 属性 14.6 Buildr项目 第15章 校验 15.1 查找文件 15.2 任务 15.3 增强的目标操作 15.4 其他方面的改进 15.5 Buildr任务 第16章 文件合并和加工 16.1 任务 16.2 行尾结束符 16.3 文件头和文件尾 16.4 加工文件 第17章 文件精简和压缩 17.1 文件精简 17.1.1 使用YUI Compressor精简代码 17.1.2 用Closure Compiler精简 17.1.3 使用UglifyJS精简 17.2 压缩 17.2.1 运行时压缩 17.2.2 构建时压缩 第18章 文档化 18.1 JSDoc Toolkit 18.2 YUI Doc 第19章 自动化测试 19.1 YUI Test Selenium引擎 19.1.1 配置一台Selenium服务器 19.1.2 配置YUI Test Selenium引擎 19.1.3 使用YUI Test Selenium引擎 19.1.4 Ant的配置写法 19.2 Yeti 19.3 PhantomJS 19.3.1 安装及使用 19.3.2 Ant的配置写法 19.4 JsTestDriver 19.4.1 安装及使用 19.4.2 Ant的配置写法 第20章 组装到一起 20.1 被忽略的细节 20.2 编制打包计划 20.2.1 开发版本的构建 20.2.2 集成版本的构建 20.2.3 发布版本的构建 20.3 使用CI系统 20.3.1 Jenkins 20.3.2 其他CI系统 附录A JavaScript编码风格指南 附录B JavaScript工具集

2013-06-02

oracle资料下载合集

很多资料,很全面,慢慢学吧,有下载地址,不再复述

2012-12-05

正则表达式验证程序

正则表达式验证程序,测试你的正则是否正确匹配上相应的字符串

2012-08-19

ArcGIS Server9.2 license.ecp

ArcGIS Server9.2 license.ecp,亲测可用

2012-08-19

利用C#进行AutoCAD的二次开发

利用C#进行AutoCAD的二次开发,不错的书

2012-08-16

基于.NET的AutoCAD二次开发实例

基于.NET的AutoCAD二次开发实例

2012-08-16

Oracle经典教程

入门到精通很详细

2012-08-08

Oracle游标视图和自定义函数

学习 游标 视图 自定义函数不二选择,我觉得看完之后学到东西了

2012-08-06

SQL语句大全

很全面,涵盖了几乎所有常用语法,适合作为查询手册使用。

2012-08-01

arcgis栅格图切瓦片的一些经验和尝试

arcgis栅格图切瓦片的一些经验和尝试

2012-07-21

ActionScript3.0中文版chm帮助文档

ActionScript 3.0 chm 帮助文档

2012-07-15

DIV+CSS布局:CSS浮动float属性详解

DIV+CSS布局:CSS浮动float属性详解 不解释

2012-07-07

JavaScript网页开发_体验式学习教程

JavaScript网页开发_体验式学习教程 作者:张孝祥,张红梅

2012-07-07

传智播客面试宝典(2012年4月版本)

四月份的版本,里面的题目都比较经典; 面试题目基本上就是这些了。

2012-06-21

空空如也

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

TA关注的人

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