自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Java技术博文

扫码关注“Java技术博文”每周更新一次技术博文

  • 博客(480)
  • 资源 (70)
  • 收藏
  • 关注

原创 《人月神话》胸有成竹

实践是最好的老师,但是如果不能从中学习,再多的实践也没有用。 胸有成竹的意识就是我们能够很好的预见事物的发展,对于项目来讲就是我们能够通过项目计划来预见项目的发展,项目的执行过程是按照我们的计划和预测进行的。如何能够达到这个目标,就需要实践和数据两个重要内容,通过实践积累数据,通过对数据进行分析和学习进行总结,最后得到基于数据的项目预测模型。整个过程就是一个科学和结构化的过程,这些内容的形成和经验将固化到项目中,而不是完全依靠项目经理和一两个核心成员的个人经验。 实践是我们个人持...

2021-06-29 16:03:24 175 1

原创 《人月神话》画蛇添足

画蛇添足的成语大家应该都听过,不过这里讲的故事有点不同,这是一部项目经理的辛酸史。项目经理接到一个需求的时候,通常是下面的这种场景。1、架构师从技术架构设计上给出解决方案;2、财务需要考虑开发成本支出,想尽量的节流;3、客户经理又想尽可能多的增加系统的功能;三方的矛盾最终要在“时间”这个通常的限定条件下达成妥协。做出的牺牲主要有:1、削...

2019-05-11 23:33:37 363

原创 《人月神话》贵族专制、民主政治和系统设计

引子:先来看一组法国城市兰斯教堂的图片,整体的风格,给你的第一感觉应该是一致的,尖尖的顶,弧形的窗。再看一组哥特式教堂,分割线-------------------------上图中的哥特式教堂,每一代人都增加了自己的创意,整体风格给你的第一感觉很不一致,有些杂乱。为什么兰斯教堂经过几个世纪的迭代,还能保持一致的风格?因为设计师们在几代人的传承中,保持了设计...

2019-04-09 10:22:02 346

原创 计算机系统漫游

不了解土壤的组成成分,就很难种出可口的蔬菜;不了解操作系统,也不太可能写出高效优雅的程序。我们先编写一段程序:#include<stdio.h>int main(){printf("hello world");}保存为hello.c,然后我们编译、链接生成可执行的目标程序。当我们执行这个目标程序时,控制台会输出“hello world”。想不想知道程序运行时...

2019-04-05 11:32:14 174

原创 《SQL反模式》第三章 单纯的树

树就是树,你还需要考虑什么吗? 罗纳德.里根  我们看个贴吧的例子,吧友们可以一起讨论一个主题,又可以互相评论,怎么存储这些评论信息呢?  第一版:create table comment(comment_id serial primary key,parent_id bigint unsigned,bug_id bigint unsigned not nul...

2019-02-21 12:45:12 231

原创 《SQL反模式》第二章 乱穿马路

所谓的专家,就是在很小的领域里把所有错误都犯了过的人 - 尼尔斯.波尔一、什么是反模式?反模式是一种试图解决问题的方法,但通常会同时引发别的问题。 二、何为乱穿马路?概念:使用逗号分隔列表来避免在多对多关系中创建交叉表,这种反模式就成为乱穿马路。为什么叫乱穿马路,因为乱穿马路是避免按规定穿越十字路口(交叉表)的一种方式。使用个通俗的概念解释下,之前一个产品对应一个客户经...

2019-02-18 18:05:54 175

原创 《人月神话》:外科手术队伍

 问题:如何在有限的时间内创建大型的系统?我们假设创建的大型系统需要5000人年。 观点一:一拥而上的开发,相信人多力量大,增加人数,满足时间要求。评:1、这里错误地将软件开发和体力劳动等价了;一个任务如果分配到单个人,而这个单个的人不需要和其他人沟通即可完成的任务,是可以通过增加人数来缩短劳动时间的。比如割麦子,每个人割自己分配的麦子,中间不需要和其他人沟通,...

2018-08-26 18:31:54 820

原创 《人月神话》:人月神话

在众多软件项目中,缺乏合理的时间进度是造成项目滞后的主要原因,它比其他所有因素加起来还大。 我们不禁要问导致这种普遍性灾难的原因是什么呢? FrederickP.Brooks.Jr给出了以下几个原因:1)估算技术缺乏有效的研究,隐含地假设一切都运行良好2)将进度和工作量相互混淆,隐含地假设人和月可以互换3)对估算缺乏信息,导致不会有耐心地持续地进行估算这项工作...

2018-07-30 18:32:47 11964 1

原创 《人月神话》:焦油坑

史前史中,没有别的场景比巨兽们在焦油坑里垂死挣扎的场面更令人震撼。上帝见证着恐龙、猛犸象、剑齿虎在焦油坑里挣扎。它们挣扎得越猛烈,焦油纠缠得就越紧,没有哪种猛兽足够强壮或具有足够的技巧,能够挣脱束缚,它们最后都沉到了坑底。 开发一个大型产品无异于在焦油坑中挣扎的巨兽,每个单独的问题都能够被解决,但是当它们累积在一起相互纠缠的时候,就会使团队行动滞缓。鲜有项目能够满足:目标、时间进度...

2018-07-30 13:08:49 1584

原创 Java内部类

目录[阅读本文大概需要3分钟]:什么是内部类?为什么需要内部类?内部类的种类3.1 静态内部类3.2 成员内部类3.3 局部内部类3.4 匿名内部类1、什么是内部类?在一个类的内部定义的类,就是内部类。像下面这样。2、为什么需要内部类?@《Java编程思想》内部类可以实现多重继承(类或抽象类),可以参考下面这篇博文                          https://blog.csd...

2018-07-15 19:33:44 173

原创 数据库事务:ACID + 读取/更新问题

目录[阅读本文需要?分钟]:数据库事务是什么?1.1. 原子性1.2. 一致性1.3. 隔离性1.4. 持久性并发事务的读取问题2.1. 脏读2.2. 不可重复读2.3. 幻读2.4. 不可重复读和幻读的区别并发事务的更新问题3.1. 第一类丢失更新3.2. 第二类丢失更新1、数据库事务是什么?数据库事务是个泾渭分明的概念。要么是黑,要么是白,中间没有灰色地带。一系列操作要么全部执行成功,要么全不...

2018-06-30 19:10:48 654 1

原创 2018期中总结

不能只顾着低头走路,忘了抬头看路日月如梭,光阴似箭,2018年在不知不觉中已经过了一半。记得刚工作的时候,部长在新员工座谈会上提到了粟裕大将:“每战必总结。四年过去了,这句话一直扎根在我的脑海,深深地影响着我。问题出现了,我们不应该放过它,应该去分析去解决它;事情过去了,我们更不应该放过它,应该去总结它。而这应该是一个习惯。半年自评结果如果满分是150分的话,上半年的自评是35,不及格。年初计划完...

2018-06-29 22:24:18 499

原创 Spring源码阅读3:Resource

一、引子:我们先来看看下面这行代码的具体实现BeanFactory bf = new XmlBeanFactory(new ClassPathResource("beanFactoryTest.xml"));       通过时序图,我们看到BeanFactoryTest中首先调用ClassPathResource的构造函数来构造Resource。这里就有个问题,因为资源有多种表现形式,文件、UR...

2018-06-27 08:07:39 247

原创 Spring源码阅读2:AliasRegistry&SimpleAliasRegistry

一、spring-beans1、目录结构我们先来看看bean包,目录结构如下:2、核心类DefaultListableBeanFactorybean包中有个核心类DefaultListableBeanFactory,是bean加载的核心部分,层次结构如下:今天先来看下AliasRegistry&amp;SimpleAliasRegistry。二、AliasRegistry&amp;SimpleAl...

2018-06-13 07:49:28 1152

原创 Spring源码阅读1:环境搭建

前言:Spring是一款优秀的开源框架,使用非常广泛,研读Spring源码就像是开采一个大金矿,深度开采会有取之不尽的知识财富。Spring是什么?The term "Spring" means different things in different contexts. It can be used to refer to the Spring Framework project itself...

2018-06-11 07:52:25 551

原创 《深入浅出Hibernate》:Java持久化的演进1

以前看过一些持久化的封装代码,但并没有完全理解其设计思想和要义,今天看了《深入浅出Hibernate》的章节,有种拨云见日,豁然开朗的感觉。今天就写篇博文梳理下演进过程,希望能帮助各位更清晰地理解持久化的解耦思想吧。这里我们有一个需求,查询客户A的银行账户余额,代码如下:上面的代码是标准的JDBC查询操作。想一想:查询完成后,需要释放哪些资源?为什么?这里不展开讲了,有兴趣的可以参考这边文章连接池...

2018-04-25 07:44:05 191

转载 如何选择开源许可证?

作者: 阮一峰日期: 2011年5月 2日如何为代码选择开源许可证,这是一个问题。世界上的开源许可证,大概有上百种。很少有人搞得清楚它们的区别。即使在最流行的六种----GPL、BSD、MIT、Mozilla、Apache和LGPL----之中做选择,也很复杂。乌克兰程序员Paul Bagwell,画了一张分析图,说明应该怎么选择。这是我见过的最简单的讲解,只用两分钟,你就能搞清楚这六种许可证之间...

2018-04-24 07:29:25 311

转载 聊聊并发-Java中的Copy-On-Write容器

Copy-On-Write简称COW,是一种用于程序设计中的优化策略。其基本思路是,从一开始大家都在共享同一个内容,当某个人想要修改这个内容的时候,才会真正把内容Copy出去形成一个新的内容然后再改,这是一种延时懒惰策略。从JDK1.5开始Java并发包里提供了两个使用CopyOnWrite机制实现的并发容器,它们是CopyOnWriteArrayList和CopyOnWriteArraySet。...

2018-04-20 07:33:03 175

原创 并发编程(3)-线程安全性

线程和锁在并发编程中的作用,类似于铆钉和工字梁在土木工程中的作用-《并发编程实战》  我们知道对象是由属性(成员变量)和方法组成的,当我们实例化一个对象的时候,也就意味着给对象的属性赋初始值。对象的属性值,也就是对象的状态会随着程序的运行变化。这里就引出了对象状态的可变性。当然,有些加了final关键字的变量,在对象的整个生命周期内是不可变的。我们创建的对象,有可能只在一个单线程的程序中运行,也有...

2018-04-03 08:09:59 214

原创 JVM系列(7)-JVM类加载机制(2)

今天继续类加载的学习,先复习下类的生命周期。上一篇讲到了阶段2-验证JVM系列(7)-JVM类加载机制(1),今天从阶段3开始。阶段3:准备准备阶段都做什么呢?主要做两件事情:1)为类变量分配内存什么是类变量?也就是用static修饰的变量;在哪个区域上分配?在方法区上分配,记住是方法区而不是堆。2)设置类变量初始值比如public static int value = 111;设置变量初始值,是...

2018-03-13 22:52:49 191

转载 设计模式总结之模式分类

转自:http://blog.csdn.net/cooldragon/article/details/52164380话说这个世界还是混沌之时,盘古抡起一把大斧,开辟了天与地,从此,这个世界有天有地,万事万物在这个世界才慢慢发展起来。话说软件江湖还是混沌之时,无门无派,无招无式,GoF(Gang of Four,四个大师),穷理之熟,融会贯通,合著了《Design Patterns: Elemen...

2018-03-13 10:44:18 182

原创 JVM系列(7)-JVM类加载机制(1)

我们编写的*.java文件,编译后会生成*.class文件。*.class最终都是要加载到虚拟机中之后才能运行和使用,那虚拟机是怎么加载这些文件的呢?今天我们就来聊聊这个。先来看下类的生命周期,主要包括以下几个阶段:加载、验证、准备、解析、初始化、使用、卸载。除了解析阶段位置不固定,其余的阶段开始顺序都是固定的。在某些情况下,解析阶段可在初始化之后。下面逐一讲解各个阶段。阶段1:加载类加载的过程包...

2018-03-12 22:56:04 208

原创 并发编程(2)-CAS

1.What-CAS是什么?CAS是英文翻译是Compare And Swap的缩写,也就是比较并交换的意思。它是一个机制,是个负责同步的机制,再加一条,它还是一个非阻塞同步的机制。既然说到了,非阻塞同步,那什么是阻塞同步呢?我们知道在Java中,如果想确保一段代码或者一个方法,在多线程并发的场景下,在某个时间段,只由一个线程运行,我们通常采用的方法是加上synchronized关键字

2018-02-06 22:16:18 232

原创 并发编程(1)-wait/notify/notifyAll

习惯是养成的,那为什么不养成好习惯呢?最近工作中遇到了一些并发编程的知识,想着抽时间将这一块整理下,想到就做,今天就开始^_^。如题,今天来看下Object的wait/notify/notifyAll方法。我们知道Java是个单继承的语言,所有的类都默认继承Object,那这3个方法也就是所有的类都有的方法。0.Obj

2018-01-30 22:32:25 681

转载 理解Load-Average做好压力测试

SIP的第四期结束了,因为控制策略的丰富,早先的的压力测试结果已经无法反映在高并发和高压力下SIP的运行状况,因此需要重新作压力测试。跟在测试人员后面做了快一周的压力测试,压力测试的报告也正式出炉,本来也就算是告一段落,但第二天测试人员说要修改报告,由于这次作压力测试的同学是第一次作,有一个指标没有注意,因此需要修改几个测试结果。那个没有注意的指标就是load average,他和我一样开始只是注

2018-01-30 15:30:50 317

原创 JVM系列(6)-内存分配与回收策略

今天聊聊Java的内存分配和内存回收,内存的回收也就是前几节讲的垃圾回收,有兴趣的可以看下前面的文章,今天主要看下内存的分配。先来回忆下Java运行时的数据区,如下图所示。Java对象所占的内存是在下面哪个区上分配的?堆,恭喜你答对了^_^。回忆点1:堆的内存布局我们在讲垃圾收集算法的时候,有提到过分代收集算法(JVM系列(4)-垃圾收集算法)。也就是按对象的生存时间将其划分为新生代和老年代,不同

2018-01-17 23:06:44 249

原创 JVM系列(5)-HotSpot 2 垃圾收集器

今天继续HotSpot的学习,聊聊垃圾收集器。之前讲过垃圾收集算法,可以参考这里JVM系列(4)-垃圾收集算法,垃圾收集算法讲的是思想或者理论,垃圾收集器呢,就是其实现。知识点1:HotSpot有哪些垃圾收集器呢?参阅《深入理解Java虚拟机 JVM高级特性与最佳实践》,以JDK 1.7 Upgrade 14之后的HotSpot虚拟机为例

2018-01-09 16:45:31 225

原创 JVM系列(5)-HotSpot 1

问题1:HotSpot是什么东东?JVM制定了一个规范,不同的公司或者个人可以根据规范实现自己的Java虚拟机。为了便于理解可以将规范理解为接口,接口可以简化理解为一个方法,定义应该具有哪些功能。例如swap(a,b) 意思就是交换a和b的值。至于方法的实现不关心,最终能把a,b值交换过来就成,这就是规范。不管黑猫还是白猫,能逮着老鼠就行。Hot

2018-01-05 23:21:45 263

原创 JVM系列(4)-垃圾收集算法

上一节讲了判断"垃圾"的方法,有引用计数和可达性分析两种方法。这一节看下,回收这些“垃圾”的方法。方法1:标记-清除算法见名知意,先标记,再清除;标记出所有的可回收对象后,统一回收。缺点:容易产生大量的内存碎片,如果分配的对象占用内存较大,同时又找不到足够大的连续空间,则只能再次触发一次垃圾回收。回收前:回收后:

2018-01-03 22:34:52 179

原创 JVM系列(3)-哪些内存需要回收?

今天看看垃圾收集和内存分配策略。垃圾收集无非就是清除垃圾,释放内存,而JVM就像一个大管家,不需要你这位当家的介入,他把垃圾清理这个活给揽下了,你只需要创建对象,生产垃圾,JVM这位大管家来打扫。前面讲了JVM的运行时数据区,这些区域啊,也就相当于你这位当家的四合院。有院子,有单间。院子是公共区域(堆+方法区),单间是私有区域,每个单间都有(虚拟机栈+本地方法栈+程序计数器)这些标配。差点

2017-12-28 22:48:15 1338 1

原创 JVM系列(2)-对象和OOM异常

上一讲中,我们了解了JVM的内部结构,更准确的讲应该是JVM运行时数据区,知道了对象的实例是在堆中分配的。那到底是怎么创建的,都有哪些信息需要创建,我们今天就先讲下这个,以Hotspot实现为例。问题1:对象是怎么创建的?我们创建对象的时候,会使用new关键字,像这样:Object obj = new Object();虚拟机在遇到new这个关键字的

2017-12-27 21:40:44 213

原创 JVM系列(1)-Java内存区域

前段时间比较忙,公众号断更了一段时间,当下得空,准备写个JVM系列,JVM也就是Java Virtual Machine(Java虚拟机的缩写)。考虑或者定位的问题的时候,经常会思考下数据的流向,那JVM是在哪个位置,哪个闸口呢?问题1: JVM的位置JVM在Java App和操作系统之间。Java语言不需要我们手工的释放或回收内存,这个工作由J

2017-12-26 21:53:46 211

原创 读书笔记-《Java NIO》:第三章 通道(5)

这几周事情有些多,没更新博文,今天得空,咱们继续。学过了FileChannel,今天来看看SocketChannel。issue 1:先来看下SocketChannel在类图中的位置,看能发现些什么?发现1:从图中可以看到Socket通道类(DatagramChannel、SocketChannel、ServerSocketChannel)都继承

2017-10-18 22:34:05 210

原创 读书笔记-《Java NIO》:第三章 通道(4)

1. 内存映射文件FileChannel中有一个map()方法,这个方法是做什么用的呢?记不记得第一章讲过的虚拟内存和直接存储的概念?不记得没关系,看下面这张图。常规情况下,用户空间的进程想要读取一块磁盘数据,需要发起系统调用read(),read()是系统内核,read()读取数据后,放入内核空间的缓冲区,再由内核缓冲区重新组装到用户空间的缓冲区,同一份数

2017-09-25 23:00:43 251

原创 读书笔记-《Java NIO》:第三章 通道(3)

言归正传,今天来看看通道中的文件通道~~~焦点1: File Channel在整个I/O体系中的位置先复习下I/O的简单分类,I/O广义上分为File I/O和Stream I/O, FileChannel文件通道,顾名思义就是服务于File I/O的。FileChannel在Channel类图的位置,从图中可以看出F

2017-09-24 22:48:04 276

原创 读书笔记-《Java NIO》:第三章 通道(2)

封面女神系列,第二期-高圆圆O(∩_∩)O~继续第三章的学习。。。问题1: 什么是Scatter/Gather(发散/汇聚)?操作系统中有一个概念Scatter/Gather,是什么意思呢?有的操作系统设计的比较高效,允许进程只使用一个系统调用,就能够把一连串缓冲区地址传递给系统内核,之后内核就可以顺序填充或清除缓冲区

2017-09-21 22:47:43 251

原创 读书笔记-《Java NIO》:第三章 通道(1)

封面准备出一个女神系列,第一期-孙燕姿O(∩_∩)O~,情歌一首《开始懂了》今天学习第三章通道~~~1. 通道是个什么东东?最近南京地铁安检,大包小包都要过安检。有没有印象,有的安检机会佩带一个小筐,这个小筐就类似于缓冲区,安检机就是一个通道,数据放到筐里,由一端传送到另一端,就类似于数据放到缓冲区里,经通道由一端传送到另一端;在另一端从

2017-09-19 23:06:26 262

原创 读书笔记-《Java NIO》:第二章 缓冲区(2)

今天接着看Java NIO第二章O(∩_∩)O~1. 复制缓冲区复制缓冲区,我们可以使用以下3个函数,以CharBuffer为例Note:复制并非deep copy,可以理解为浅copy,复制的缓冲区和原来的缓冲区共用缓冲区的数据,原始缓冲区的改变会直接映射到copy的缓冲区,反之亦然;但各自有独立的position、limit、ma

2017-09-18 22:25:01 261

原创 读书笔记-《Java NIO》:第二章 缓冲区(1)

上周生病停更了一周,这周我们继续^_^。今天我们来看下第二章---缓冲区,了解下不同的缓冲区类型,并学会使用。焦点1:Java NIO的Buffer有哪些类型?Note: Buffer及其继承类CharBuffer、IntBuffer、DoubleBuffer、ShortBuffer、LongBuffer、FloatBuffer、

2017-09-17 21:32:49 298

原创 读书笔记-《Java NIO》 : 第一章 简介

最近准备花点时间将Java NIO梳理一下,在网上download了一本Java NIO。计划跟着书的目录,每天读一点,顺便也写写博文,坚持每天记一点。今天我们来看看第一章讲的什么,充满期待哦^_^I/O有点类似于下水道,没有它不行,和它打交道有很不爽,搞不好还把自己弄得臭烘烘的。随后的章节讲的不是疏通管道,而是如何让管道的流通更顺畅一些。

2017-09-05 23:09:07 276

NLog使用帮助.chm

NLog使用帮助.chm

2013-03-01

NLog-v2.0.0.2000

记录Silverlight日志NLog安装包

2013-03-01

WebSocket多线程视频通信

WebSocket多线程视频通信

2013-02-25

Websocket通信工具开发

Websocket通信工具开发

2013-02-22

Websocket通信

Websocket通信

2013-02-21

WebSocket传视频方法总结

WebSocket传视频方法总结

2013-02-01

HTML5-WebSocket实现多文件同时上传源码

HTML5-WebSocket实现多文件同时上传源码

2013-01-27

websocket-0.7.jar

ava websocket的好工具

2013-01-17

Silverlight4 安装包

Silverlight4 安装包 Silverlight4_Developer.exe silverlight4_sdk.exe Silverlight4_Tools.exe

2013-01-14

NESL Silverlight录制视频

运行程序前先安装NESLsetip.msi,即可录制视频

2013-01-14

WebSockets, WCF, and Silverlight 5

WebSockets, WCF, and Silverlight 5

2013-01-09

Silverlight音视频socket通信

Silverlight音视频socket通信,源码

2013-01-03

Silverlight视频录制

Silverlight视频录制

2012-12-25

Silverlight源码实例视频大全

Silverlight源码Silverlight源码Silverlight源码Silverlight源码 实例视频大全

2012-12-25

Silverlight视频会议

Silverlight视频会议

2012-12-25

Silverlight聊天室源码

Silverlight聊天室

2012-12-25

Silverlight音视频捕获讲解+源码

Silverlight音视频捕获讲解+源码

2012-12-25

support-chrome-20-firefox-12 server.exe

support-chrome-20-firefox-12

2012-12-19

Firefox_Setup_beta 12

Firefox_Setup_beta12 support-chrome-20-firefox-12.tar.gz

2012-12-19

libwebsockets test server

libwebsockets test server

2012-12-19

Source InsightV3.5.0066带注册机

Source InsightV3.5.0066+注册机

2014-06-25

JDK6API中文参考070114

JDK6API中文参考070114,html格式

2014-06-13

jdk-6u10-rc2-bin-b32-windows-i586-p-12_sep_2008

jdk-6u10-rc2-bin-b32-windows-i586-p-12_sep_2008

2014-06-13

eclipse中svn插件的安装与使用

eclipse中svn插件的安装与使用,讲解的很详细,希望有帮助

2014-06-08

Eclipse最新SVN插件

Eclipse 最新SVN插件 ,版本为1.8.22,SVN插件安装方法请访问博客 http://blog.csdn.net/hemingliang1987/article/details/29423431

2014-06-08

Java核心技术第1卷书中示例源码

Java核心技术第1卷书中示例源码,帮助学习Java

2014-06-07

U2000查看补丁方法

U2000查看补丁版本方法

2014-06-02

Node.js开发指南

目 录 第1章 Node.js简介 1 1.1 Node.js是什么 2 1.2 Node.js能做什么 3 1.3 异步式I/O与事件驱动 4 1.4 Node.js的性能 5 1.4.1 Node.js架构简介 5 1.4.2 Node.js与PHP+Nginx 6 1.5 JavaScript简史 6 1.5.1 Netscape与LiveScript 7 1.5.2 Java与Javascript 7 1.5.3 微软的加入——JScript 8 1.5.4 标准化——ECMAScript 8 1.5.5 浏览器兼容性问题 9 1.5.6 引擎效率革命和JavaScript的未来 9 1.6 CommonJS 10 1.6.1 服务端JavaScript的重生 10 1.6.2 CommonJS规范与实现 11 1.7 参考资料 12 第2章 安装和配置Node.js 13 2.1 安装前的准备 14 2.2 快速安装 14 2.2.1 Microsoft Windows系统上安装Node.js 14 2.2.2 Linux发行版上安装Node.js 16 2.2.3 Mac OS X上安装Node.js 16 2.3 编译源代码 17 2.3.1 在POSIX系统中编译 17 2.3.2 在Windows系统中编译 18 2.4 安装Node包管理器 18 2.5 安装多版本管理器 19 2.6 参考资料 21 第3章 Node.js快速入门 23 3.1 开始用 Node.js编程 24 3.1.1 Hello World 24 3.1.2 Node.js命令行工具 25 3.1.3 建立HTTP服务器 26 3.2 异步式I/O与事件式编程 29 3.2.1 阻塞与线程 29 3.2.2 回调函数 31 3.2.3 事件 33 3.3 模块和包 34 3.3.1 什么是模块 35 3.3.2 创建及加载模块 35 3.3.3 创建包 38 3.3.4 Node.js包管理器 41 3.4 调试 45 3.4.1 命令行调试 45 3.4.2 远程调试 47 3.4.3 使用Eclipse调试Node.js 48 3.4.4 使用node-inspector调试Node.js 54 3.5 参考资料 55 第4章 Node.js核心模块 57 4.1 全局对象 58 4.1.1 全局对象与全局变量 58 4.1.2 process 58 4.1.3 console 60 4.2 常用工具util 61 4.2.1 util.inherits 61 4.2.2 util.inspect 62 4.3 事件驱动events 63 4.3.1 事件发射器 64 4.3.2 error事件 65 4.3.3 继承EventEmitter 65 4.4 文件系统fs 65 4.4.1 fs.readFile 66 4.4.2 fs.readFileSync 67 4.4.3 fs.open 67 4.4.4 fs.read 68 4.5 HTTP服务器与客户端 70 4.5.1 HTTP服务器 70 4.5.2 HTTP客户端 74 4.6 参考资料 77 第5章 使用Node.js进行Web开发 79 5.1 准备工作 80 5.1.1 使用http模块 82 5.1.2 Express框架 83 5.2 快速开始 84 5.2.1 安装Express 84 5.2.2 建立工程 85 5.2.3 启动服务器 86 5.2.4 工程的结构 87 5.3 路由控制 89 5.3.1 工作原理 89 5.3.2 创建路由规则 92 5.3.3 路径匹配 93 5.3.4 REST风格的路由规则 94 5.3.5 控制权转移 95 5.4 模板引擎 97 5.4.1 什么是模板引擎 97 5.4.2 使用模板引擎 98 5.4.3 页面布局 99 5.4.4 片段视图 100 5.4.5 视图助手 100 5.5 建立微博网站 102 5.5.1 功能分析 102 5.5.2 路由规划 102 5.5.3 界面设计 103 5.5.4 使用Bootstrap 104 5.6 用户注册和登录 107 5.6.1 访问数据库 107 5.6.2 会话支持 110 5.6.3 注册和登入 111 5.6.4 页面权限控制 120 5.7 发表微博 123 5.7.1 微博模型 123 5.7.2 发表微博 125 5.7.3 用户页面 126 5.7.4 首页 127 5.7.5 下一步 129 5.8 参考资料 129 第6章 Node.js进阶话题 131 6.1 模块加载机制 132 6.1.1 模块的类型 132 6.1.2 按路径加载模块 132 6.1.3 通过查找node_modules目录加载模块 133 6.1.4 加载缓存 134 6.1.5 加载顺序 134 6.2 控制流 135 6.2.1 循环的陷阱 135 6.2.2 解决控制流难题 137 6.3 Node.js应用部署 138 6.3.1 日志功能 138 6.3.2 使用cluster模块 140 6.3.3 启动脚本 142 6.3.4 共享80端口 143 6.4 Node.js不是银弹 144 6.5 参考资料 146 附录A JavaScript的高级特性 147 附录B Node.js编程规范 167

2013-11-29

H.323协议详解

H.323详解,讲的很详细,具备参考价值!

2013-11-21

jar包源码查看工具

直接把.jar拖进来就可以查看了,比较快速简单 查看JAR文件的源码工具

2013-11-10

C++编程规范101条规则、准则最佳实践

《C++编程规范:101条规则准则与最佳实践》中,两位知名的C++专家将全球C++界20年的集体智慧和经验凝结成一套编程规范。这些规范可以作为每一个开发团队制定实际开发规范的基础,更是每一位C++程序员应该遵循的行事准则。书中对每一条 规范都给出了精确的描述,并辅以实例说明;从类型定义到错误处理,都给出了最佳的C++实践。即使使用C++多年的程序员也会从《C++编程规范:101条规则准则与最佳实践》中受益匪浅。《C++编程规范:101条规则准则与最佳实践》适合于各层次C++程序员使用,也可作为高等院校C++课程的教学参考书。

2013-07-11

虚拟光驱Daemon Tool

虚拟光驱Daemon Tool虚拟光驱Daemon Tool虚拟光驱Daemon Tool 无广告版,安装时注意选择的选项

2013-06-12

C#实现的 ffmpeg

C#实现的ffmpeg

2013-03-12

ffmpeg.dll ffmpeg.exe

ffmpeg.exe,它是一款音频视频转换软件。比较特殊的是,它是运行在windows下dos系统中,支持avi,FLV,asf,mpeg,mp3等等格式。使用方法如下:开始菜单--运行--cmd---然后再运行ffmpeg软件。 软件转换格式: ffmpeg -i (要转换的flv文件完整路径) -f asf -vcodec (wmv1或wmv2) [-b 视频码率] -acodec mp3 [-ab 音频码率] (输出的asf/wmv文件完整路径) 软件特点: 1、音频转换(ffmpeg -i my_audio.wav my_audio.mp3-i) 2、视频转换(ffmpeg -i my_video.mpeg -s 500×500 my_video.flv-i) 3、从视频中截取图片 4、从视频中采集音频 5、创建截屏视频 6、用图片制作视频 7、从webcam中截取视频

2013-03-12

Win7摄像头驱动 英文版AMCap9.11

Win7摄像头驱动 英文版AMCap9.11Win7摄像头驱动 英文版AMCap9.11Win7摄像头驱动 英文版AMCap9.11Win7摄像头驱动 英文版AMCap9.11Win7摄像头驱动 英文版AMCap9.11Win7摄像头驱动 英文版AMCap9.11Win7摄像头驱动 英文版AMCap9.11

2013-03-08

AMCap9.11文版

AMCap9.11文版AMCap9.11文版AMCap9.11文版AMCap9.11文版AMCap9.11文版AMCap9.11文版AMCap9.11文版AMCap9.11文版AMCap9.11文版AMCap9.11文版

2013-03-08

Win7 AMCap9.11摄像头

Win7摄像头驱动汉化版 ,将 amcap.exe复制到 C:\用户\本机用户名\Appdata\Roaming\Microsoft\Windows\Network shortcuts中,即可在计算机中看到调用摄像头的快捷方式,像Winsows xp一样

2013-03-08

NTPClock PC时间同步工具

NTPClock PC时间同步工具

2013-03-07

截图文档测试

截图文档测试

2013-03-01

通信工具示例

通信工具示例

2013-03-01

空空如也

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

TA关注的人

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