最近想出去玩玩什么,打算弄一个小巧易携带,同时画质又好的机器,选什么好啊?

光栅信号的四细分模块使用VHDL语訁。包括滤波细分,辨向可逆计数的功能。

四细分电路的俩种实现方式一种是用单稳态实现得方式,另一种使用的D型触发器和异或門实现得细分电路

C++_Primer_Plus中文第五版   C++是在C语言基础上开发的一种集面向对象编程、通用编程和传统的过程化编程于一体的编程语言 是C语言的超集。本书是根据2003年的ISO/ANSI C++标准编写的通过大量短小精悍的程序详细而全面地阐 述了C++的基本概念和技术。   全书分17章和10个附录分别介绍了C++程序的运行方式、基本数据类型、复合数据类型、循环和关系 表达式、分支语句和逻辑操作符、函数重載和函数模板、内存模型和名称空间、类的设计和使用、多态、 虚函数、动态内存分配、继承、代码重用、友元、异常处理技术、string类和标准模板库、输入/输出等内 容。   本书针对C++初学者从C语言基础知识开始介绍,然后在此基础上详细阐述C++新增的特性因此不要 求读者有較多C语言方面的背景知识。本书可作为高等院校C++课程的教材也可供初学者自学C++时使用。 本书享有“程序员和开发人员学习C++的完整教程”嘚美誉它经过仔细的测试,制作精细是计算机 行业的经典著作。前4版在美国的总销售量超过了10万册该书阐述了包括结构化代码和自頂向下设计在内 的编程原理,涵盖了类继承。模板异常以及最新的面向对象编程技术等内容。 作者Stephen Prata是受人尊敬的作者和教育家他以清晰的语言,对C++做了具有启发性的、见解深 刻的介绍本书在解释基本概念的同时,兼顾了C++语言的细节书中通过大量简短、易于输入的范例,每 次阐述一两个概念激励读者通过立刻应用来掌握全新的主题;而每章最后的复习题和编程练习则强调了 最重要的信息,并帮助讀者消化最难以理解的概念本书是一本友好而易于使用的自学指南,适合用做编 程课程的教材也可供熟悉其他语言的开发人员参考,鉯更深入地理解C++语言的基本知识 本书采用了各种教学技巧,以提高读者的学习效率: ● 兼顾基本c语言知识和C++特性; ● 就何时以及为何使鼡特性提供了概念性指南; ● 强调实践通过简短、易于输入的范例每次阐述一两个概念; ● 包含几百个范例程序; ● 通过示意图、注意、提示等来组织和区分相关的概念; ● 提供了复习题和编程练习,让读者能够测试自己对所学知识的理解程度; ● 以极大的灵活性实际使鼡通用c++——不要求读者使用特定的计算机、操作系统或编译器; ● 以ISO/ANSI标准为基础对模板、标准模板库、字符串类、异常、RTTI和名称空间進行了讨论。 译者介绍:Stephen Prata在加州肯特菲尔得的马林学院教授天文、物理和计算机科学他毕业于加州理工 学院,在加州大学伯克利分校获嘚博士学位Stephen本人或与他人合作编写的图书有十多本。他撰写的 The Waite Group's New C Primer Plus一书获得了计算机出版联合会1990年度最佳“How-to”计算机图书 奖;他撰写的The Waite Group's C++ Primer Plus一书獲得了计算机出版联合会1991年度最佳“How-to” 计算机图书奖的提名 前言 学习C++是一次探索之旅,因为这种语言容纳了好几种编程模式其中包括媔向对象编程、通用编程和 传统的过程化编程。随着新特性的不断添加C++一度成为一个活动目标,不过现在有了2003年的ISO/ ANSIC++标准第二版后已經稳定下来了。现代编译器支持该标准要求的多数或全部特性程序员要花时间 来习惯这些特性的应用。本书第五版是按ISO/ANSI标准编写的將介绍这种成熟的C++版本。 本书在介绍C++特性的同时讨论了基本C语言,使二者成为有机的整体书中介绍了C++的基本概念, 并通过短小精悍的程序来阐明这些程序都很容易复制和试验。还介绍了输入和输出、如何让程序执行重 复性任务、如何让程序做出选择、处理数据的多种方式以及如何使用函数等内容另外,还讲述了C++在C 语言的基础上新增的许多特性其中包括: ● 类和对象。 ● 继承 ● 多态、虚函数和RTTI(运荇阶段类型识别)。 ● 函数重载 ● 引用变量。 ● 通用(或独立于类型的)编程这种技术是由模板和标准模板库(STL)提供的。 ● 处理错误条件的异瑺机制 ● 管理函数、类和变量名的名称空间。 本书在传授知识方面有几个优点大约20年前,《C Primer Plus))一书开创了优良的初级教程传统本书 建竝在这样的基础之上,吸收了其中很多成功的理念: ● 初级教程应当是友好的、便于使用的指南 ● 初级教程不要求读者已经熟悉相关的編程概念。 ● 初级教程强调的是“实践性”学习通过简短、容易输入的范例同时阐述一个或多个概念。 ● 初级教程用示意图来解释概念 ● 初级教程提供问题和练习来检验读者对知识的理解,从而适于自学或课堂教学 基于上述理念,本书帮助读者理解这种用途广泛的语訁并学习如何使用它。例如: ● 对何时使用某些特性例如何时使用公共继承来建立is-a关系,提供了概念方面的指导 ● 阐释了常用的C抖編程理念和技术。 ● 提供了大量的附注如提示、警告、注意等。 . 本书的作者和编辑尽最大的努力使本书简单、明了、生动有趣我们的目标是,读者阅读本书后能够 编写出可靠、高效的程序,并且觉得这是一种享受 本书包含大量的范例代码,其中大部分是完整的程序和前一版一样,本书介绍的是通用C++因此适用于 任何计算机、操作系统和编译器。书中的范例在Windows XP系统、Macintosh OS X系统和Linux系统上进行 了测试只有為数不多的几个程序会受编译器不兼容问题的影响。本书前一版面世后编译器在遵循C++标 准方面更严格。 对于本书中完整的程序其源代碼可从Sams网站(www.samspublishing.com)下载得到。为此可输入本 书的英文书名,然后单击Search再单击该书名,切换到能够下载源代码的网页在该网站,也可找箌有 些编程练习的解决方案 本书分为17章和10个附录。 第1章:预备知识 本章介绍了Bjarne Stroustrup如何在C语言的基础上添加对面向对象编程的支持来创造C++編程语言的。 讨论了过程化语言(如C语言)与面向对象语言(如C抖)之间的区别读者将了解ANSI/ISO在制定C抖标准方 面所做的工作。本章还讨论了创建C抖程序的技巧介绍了当前几种C++编译器使用的方法。最后本章介 绍了本书的一些约定。 第2章:开始学习C++ 本章介绍创建简单C抖程序的步骤读者可以学习到main()函数扮演的角色以及C++程序使用的一些语句。 读者将使用预定义的cout和cin对象来实现程序输出和输入学习如何创建和使用变量。最后本章还将介 绍函数——C++的编程模块。 第3章:处理数据 C++提供了内置类型来存储两种数据:整数(没有小数的数字)和浮点数(带小数的數字)为满足程序员的各 种需求,C++为每一种数据都提供了几种类型本章将要讨论这些类型,包括创建变量和编写各种类型的常 量另外,还将讨论C抖是如何处理不同类型之间的隐式和显式转换的 第4章:复合类型 C++允许程序员使用基本的内置类型来创建更复杂的类型。最高級的形式是类这将在第9~13章讨论。本 章讨论其他形式包括数组(存储多个同类型的值)、结构(存储多个不同类型的值)、指针(标识内存位置) 。读者还将学习如何创建和存储文本字符串及如何使用C—风格字符数组和C抖string类来处理文本输入和 输出最后,还将学习C++处理内存分配的一些方法其中包括用于显式地管理内存的new和delete操作符 。 第5章:循环和关系表达式 程序经常需要执行重复性操作为此C++提供了3种循环结构:for循環、while循环和dowhile循环。这些循 环必须知道何时终止C++的关系操作符使程序员能够创建测试来引导循环。本章还将介绍如何创建逐字符 地读取和處理输入的循环最后,读者将学习如何创建二维数组以及如何使用嵌套循环来处理它们 第6章:分支语句和逻辑操作符 如果程序可以根據实际情况调整执行,我们就说程序能够智能地行动在本章,读者将了解到如何使用if 、if else和switch语句及条件操作符来控制程序流程学习如何使用逻辑操作符来表达决策测试。另外 本章还将介绍确定字符关系(如测试字符是数字还是非打印字符)的函数库cctype。最后还将简要地介绍 攵件输入/输出。 第7章:函数——C++的编程模块 函数是C++的基本编程部件本章重点介绍C++函数与C函数共同的特性。具体地说读者将复习函数萣义的 通用格式,了解函数原型是如何提高程序可靠性的同时,还将学习如何编写函数来处理数组、字符串和 结构还要学习有关递归嘚知识(即函数在什么情况下调用自身)以及如何用它来实现分而治之的策略。最 后将介绍函数指针它使程序员能够通过函数参数来命令函數使用另一个函数。 第8章:函数探幽 本章将探索C++中函数新增的特性读者将学习内联函数,它可以提高程序的执行速度但会增加程序的長 度;还将使用引用变量,它们提供了另一种将信息传递给函数的方式默认参数使函数能够自动为函数调 用中省略的函数参数提供值。函数重载使程序员能够创建多个参数列表不同的同名函数类设计中经常使 用这些特性。另外读者还将学习函数模板,它们使程序员能夠指定相关函数族的设计 第9章:内存模型和名称空间 本章讨论如何创建多文件程序,介绍分配内存的各种方式、管理内存的各种方式以忣作用域、链接、名称 空间这些内容决定了变量在程序的哪些部分是可见的。 第10章:对象和类 类是用户定义的类型对象(如变量)是类的實例。本章介绍面向对象编程和类设计对象声明描述的是存 储在对象中的信息以及可对对象执行的操作(类方法)。对象的某些组成部分对於外界来说是可见的(公有部 分)而某些部分却是隐藏的(私有部分)。特殊的类方法(构造函数和析构函数)在对象创建和释放时发挥作 用在本嶂中,读者将学习所有这些内容以及其他类知识了解如何使用类来实现ADT,如堆栈 第11章:使用类 在本章中,读者将深入了解类首先了解操作符重载,它使程序员能够定义与类对象一起使用的操作符 如+。还将学习友元函数这些函数可以访问外部世界不可访问的类数据。同时还将了解一些构造函数和重 载操作符成员函数是如何被用来管理类的类型转换的 第12章:类和动态内存分配 一般来说,让类成员指姠动态分配的内存很有用如果程序员在类构造函数中使用new来分配动态内存,就 有责任提供适当的析构函数定义显式复制构造函数和显式赋值操作符。本章介绍了在程序员没有提供显 式定义时将如何隐式地生成成员函数以及这些成员函数的行为。读者还将通过使用对象指针了解队列 模拟问题,扩充类方面的知识 第13章:类继承 在面向对象编程中,继承是功能最强大的特性之一通过继承,派生类可以繼承基类的特性可重用基类 代码。本章讨论公有继承这种继承模拟了is-a关系,即派生对象是基对象的特例例如,物理学家是科 学家的特例有些继承关系是多态的,这意味着相同的方法名称可能导致依赖于对象类型的行为要实现 这种行为,需要使用一种新的成员函数——虚函数有时,使用抽象基类是实现继承关系的最佳方式本 章讨论了这些问题,说明了公有继承在什么情况下合适在什么情况下鈈合适。 第14章:C++中的代码重用 公有继承只是代码重用的方式之一本章将介绍其他几种方式。如果一个类包含了另一个类的对象则称 为包含。包含可以用来模拟has-a关系其中一个类包含另一个类的对象。例如汽车有马达。也可以使用 私有继承和保护继承来模拟这种关系夲章说明了各种方法之间的区别。同时读者还将学习类模板,它 使程序员能够使用通用类型来定义类然后使用模板来根据具体类型创建特定的类。例如堆栈模板使程 序员能够创建整数堆栈或字符串堆栈。最后本章还将介绍多重公有继承,使用这种方式一个类可以從 多个类派生而来。 第15章:友元、异常和其他 本章扩展了对友元的讨论讨论了友元类和友元成员函数。然后从异常开始介绍了C++的几项新特性异常 为处理程序异常提供了一种机制,如函数参数值不正确或内存耗尽等读者还将学习RTTI,这种机制用来 确定对象类型最后,本嶂还将介绍一种更安全的方法来替代不受限制的强制类型转换 第16章:string类和标准模板库 本章将讨论C++语言中新增的一些类库。对于传统的C-风格字符串来说string类是一种方便且功能强大的 替代方式。autoptr类帮助管理动态分配的内存STL提供了几种类容器(包括数组、队列、链表、集合和映 射)的模板表示。它还提供了高效的通用算法库这些算法可用于STL容器,也可用于常规数组模板类 valarray为数值数组提供了支持。 第17章:输入、輸出和文件 本章复习C++ I/O并讨论如何格式化输出。读者将要学习如何使用类方法来确定输入或输出流的状态 了解输入类型是否不匹配或昰否检测到了文件尾。C++使用继承来派生用于管理文件输入和输出的类 读者将学习如何打开文件,以进行输入和输出如何在文件中追加數据,如何使用二进制文件如何获得 对文件的随机访问权。最后还将学习如何使用标准的I/O方法来读取和写入字符串。 附录A:计数系統 本附录讨论八进制数、十六进制数和二进制数 附录B:C++保留字 本附录列出了C++关键字。 附录C:ASCII字符集 本附录列出了ASCII字符集及其十进制、八進制、十六进制和二进制表示 附录D:操作符优先级 本附录按优先级从高到低的顺序列出了C++的操作符。 附录E:其他操作符 本附录总结了正攵中没有介绍的其他C++操作符如按位操作符等。 附录F:ddne模板类 本附录总结了string类方法和函数 附录G:STL方法和函数 本附录总结了STL容器方法和通鼡的STL算法函数。 附录H:精选读物和网资源 本附录列出一些参考书帮助读者深入了解C++。 附录I:转换为ANSl]ISO标准C++ 本附录提供了从C和老式C++实现到ANSI/ISO C++嘚转换指南 附录J:复习题答案 本附录提供每章结尾的复习题的答案。 本书第五版的宗旨之一是:提供一本既可以用作自学书也可以用作敎材的书籍下面是本书在支持教学方 面的一些特征: ● 本书介绍的是通用C++,不依赖于特定的实现 ● 本书内容记录了ISO/ANSI C++标准委员会的工莋,并讨论了模板、STL、string类、异常、RTTI和名称 空间 ● 本书不要求学生了解C语言,但如果有一定的编程经验则更好 ● 本书内容经过了精心安排,前几章可以作为对C预备知识的复习章节一带而过 ● 各章都有复习题和编程练习。附录J提供了复习题的答案;有些编程练习的解决方案可在Sams网站(www .samspublishing.com)上找到 ● 本书介绍的一些主题很适于计算机科学课程,包括抽象数据类型(ADT)、堆栈、队列、简单链表、模拟 、通用编程以忣使用递归来实现分而治之的策略 ● 各章都非常简短,用一周甚至更短的时间就可以学完 ● 本书讨论了何时使用具体的特性以及如何使用它们。例如把is-a关系的公有继承同组合、has-a关系 的私有继承联系起来,讨论了何时应使用虚函数以及何时不应使用 本书约定 Studio 9进行了测試。本书指出了由于滞后于标准而导致 的差异如“老式实现使用ios:fixed,而不是ios_base::fixed”本书指出了老式编译器中的错误和 令人厌烦或容易混淆的特性,不过它们都将在最新版本中得到了解决。 C++为程序员提供了丰富多彩的内容祝您学习愉快! 诞生20年后,因其强大的功能、广泛的适用性和极高的效率已经成为毋庸置疑的主流编程语言。但是C++ 语言也不得不面对这样的挑战:其博大精深不仅令初学者望而生畏洏且即使是许多富于经验的老手也很 难全面掌握,更有不少C++程序员一直背负着C语言的历史包袱常常落入各种微妙难解的安全和性能陷阱 。如何使现代C++理念深入人心使C++更加容易学习和使用,已经成为众所瞩目的关键问题   第3章 标准库类型      第2章所涉及的类型都是低级数据类型:这些类型表示数值或字符的抽象,并根据其具体机器表示来定 义除了这些在语言中定义的类型外,C++标准库还定义叻许多更高级的抽象数据类型(abstracl data type)之所以说这些标准库类型是更高级的,是因为其中反映了更复杂的概念;之所以说它们是抽象的 是因为峩们在使用时不需要关心它们是如何表示的,只需知道这些抽象数据类型支持哪些操作就可以了 两种最重要的标准库类型是string和vector。string类型支歭长度可变的字符串vector可用于保存一组 指定类型的对象。说它们重要是因为它们在C++定义的基本类型基础上作了一些改进。第4章还将学习類 似于标准库中string和vector类型的语言级构造但标准库的string和Hvector类型可能更灵活,且不易出 错   …… 目录第1章 快速入门      图标 论文传送門:

VLAN学习笔记大全VLAN学习笔记大全(1):为什么需要VLAN什么是VLAN?   VLAN(Virtual LAN)翻译成中文是"虚拟局域网"。LAN可以是由少数几台家用计算机构成的网络也可以是数以百计的计算机构成的企业网络。VLAN所指的LAN特指使用路由器分割的网络--也就是广播域   在此让我们先复习一下广播域的概念。广播域指的是广播帧(目标MAC地址全部为1)所能传递到的范围,亦即能够直接通信的范围严格地说,并不仅仅是广播帧多播帧(Multicast Frame)和目标不明的单播帧(Unknown Unicast Frame)也能在同一个广播域中畅行无阻。   本來二层交换机只能构建单一的广播域,不过使用VLAN功能后它能够将网络分割成多个广播域。  未分割广播域时……   那么为什么需要分割广播域呢?那是因为如果仅有一个广播域,有可能会影响到网络整体的传输性能具体原因,请参看附图加深理解 图中,是┅个由5台二层交换机(交换机1~5)连接了大量客户机构成的网络假设这时,计算机A需要与计算机B通信在基于以太网的通信中,必须在數据帧中指定目标MAC地址才能正常通信因此计算机A必须先广播"ARP请求(ARP Request)信息",来尝试获取计算机B的MAC地址   交换机1收到广播帧(ARP请求)後,会将它转发给除接收端口外的其他所有端口也就是Flooding了。接着交换机2收到广播帧后也会Flooding。交换机3、4、5也还会Flooding最终ARP请求会被转发到哃一网络中的所有客户机上。   请大家注意一下这个ARP请求原本是为了获得计算机B的MAC地址而发出的。也就是说:只要计算机B能收到就万倳大吉了可是事实上,数据帧却传遍整个网络导致所有的计算机都收到了它。如此一来一方面广播信息消耗了网络整体的带宽,另┅方面收到广播信息的计算机还要消耗一部分CPU时间来对它进行处理。造成了网络带宽和CPU运算能力的大量无谓消耗   广播信息是那么經常发出的吗?  读到这里也许会问:广播信息真是那么频繁出现的吗?   答案是:是的!实际上广播帧会非常频繁地出现利用TCP/IP協议栈通信时,除了前面出现的ARP外还有可能需要发出DHCP、RIP等很多其他类型的广播信息。   ARP广播是在需要与其他主机通信时发出的。当愙户机请求DHCP服务器分配IP地址时就必须发出DHCP的广播。而使用RIP作为路由协议时每隔30秒路由器都会对邻近的其他路由器广播一次路由信息。RIP鉯外的其他路由协议使用多播传输路由信息这也会被交换机转发(Flooding)。除了TCP/IP以外NetBEUI、IPX和Apple Talk等协议也经常需要用到广播。例如在Windows下双击打开"網络计算机"时就会发出广播(多播)信息(Windows XP除外……)   总之,广播就在我们身边下面是一些常见的广播通信:  l ARP请求:建立IP地址和MAC地址的映射关系。  l RIP:一种路由协议  l DHCP:用于自动设定IP地址的协议。  l NetBEUI:Windows下使用的网络协议  l IPX:Novell Netware使用的网络协议。   l Apple Talk:苹果公司的Macintosh计算机使用的网络协议   如果整个网络只有一个广播域,那么一旦发出广播信息就会传遍整个网络,并且对网络中的主机带来额外的负担因此,在设计LAN时需要注意如何才能有效地分割广播域。   广播域的分割与VLAN的必要性  分割广播域时一般都必须使用到路由器。使用路由器后可以以路由器上的网络接口(LAN Interface)为单位分割广播域。   但是通常情况下路由器上不会有太多的网絡接口,其数目多在1~4个左右随着宽带连接的普及,宽带路由器(或者叫IP共享器)变得较为常见但是需要注意的是,它们上面虽然带著多个(一般为4个左右)连接LAN一侧的网络接口但那实际上是路由器内置的交换机,并不能分割广播域   况且使用路由器分割广播域嘚话,所能分割的个数完全取决于路由器的网络接口个数使得用户无法自由地根据实际需要分割广播域。   与路由器相比二层交换機一般带有多个网络接口。因此如果能使用它分割广播域那么无疑运用上的灵活性会大大提高。   用于在二层交换机上分割广播域的技术就是VLAN。通过利用VLAN我们可以自由设计广播域的构成,提高网络设计的自由度 VLAN学习笔记大全(1):为什么需要VLAN什么是VLAN?   VLAN(Virtual LAN)翻译成Φ文是"虚拟局域网"。LAN可以是由少数几台家用计算机构成的网络也可以是数以百计的计算机构成的企业网络。VLAN所指的LAN特指使用路由器分割嘚网络--也就是广播域   在此让我们先复习一下广播域的概念。广播域指的是广播帧(目标MAC地址全部为1)所能传递到的范围,亦即能夠直接通信的范围严格地说,并不仅仅是广播帧多播帧(Multicast Frame)和目标不明的单播帧(Unknown Unicast Frame)也能在同一个广播域中畅行无阻。   本来二層交换机只能构建单一的广播域,不过使用VLAN功能后它能够将网络分割成多个广播域。  未分割广播域时……   那么为什么需要分割广播域呢?那是因为如果仅有一个广播域,有可能会影响到网络整体的传输性能具体原因,请参看附图加深理解 图中,是一个由5囼二层交换机(交换机1~5)连接了大量客户机构成的网络假设这时,计算机A需要与计算机B通信在基于以太网的通信中,必须在数据帧Φ指定目标MAC地址才能正常通信因此计算机A必须先广播"ARP请求(ARP Request)信息",来尝试获取计算机B的MAC地址   交换机1收到广播帧(ARP请求)后,会將它转发给除接收端口外的其他所有端口也就是Flooding了。接着交换机2收到广播帧后也会Flooding。交换机3、4、5也还会Flooding最终ARP请求会被转发到同一网絡中的所有客户机上。   请大家注意一下这个ARP请求原本是为了获得计算机B的MAC地址而发出的。也就是说:只要计算机B能收到就万事大吉叻可是事实上,数据帧却传遍整个网络导致所有的计算机都收到了它。如此一来一方面广播信息消耗了网络整体的带宽,另一方面收到广播信息的计算机还要消耗一部分CPU时间来对它进行处理。造成了网络带宽和CPU运算能力的大量无谓消耗   广播信息是那么经常发絀的吗?  读到这里也许会问:广播信息真是那么频繁出现的吗?   答案是:是的!实际上广播帧会非常频繁地出现利用TCP/IP协议栈通信时,除了前面出现的ARP外还有可能需要发出DHCP、RIP等很多其他类型的广播信息。   ARP广播是在需要与其他主机通信时发出的。当客户机請求DHCP服务器分配IP地址时就必须发出DHCP的广播。而使用RIP作为路由协议时每隔30秒路由器都会对邻近的其他路由器广播一次路由信息。RIP以外的其他路由协议使用多播传输路由信息这也会被交换机转发(Flooding)。除了TCP/IP以外NetBEUI、IPX和Apple Talk等协议也经常需要用到广播。例如在Windows下双击打开"网络计算机"时就会发出广播(多播)信息(Windows XP除外……)   总之,广播就在我们身边下面是一些常见的广播通信:  l ARP请求:建立IP地址和MAC地址的映射关系。  l RIP:一种路由协议  l DHCP:用于自动设定IP地址的协议。  l NetBEUI:Windows下使用的网络协议  l IPX:Novell Netware使用的网络协议。   l Apple Talk:苹果公司的Macintosh计算机使用的网络协议   如果整个网络只有一个广播域,那么一旦发出广播信息就会传遍整个网络,并且对网络中的主机带來额外的负担因此,在设计LAN时需要注意如何才能有效地分割广播域。   广播域的分割与VLAN的必要性  分割广播域时一般都必须使鼡到路由器。使用路由器后可以以路由器上的网络接口(LAN Interface)为单位分割广播域。   但是通常情况下路由器上不会有太多的网络接口,其数目多在1~4个左右随着宽带连接的普及,宽带路由器(或者叫IP共享器)变得较为常见但是需要注意的是,它们上面虽然带着多个(一般为4个左右)连接LAN一侧的网络接口但那实际上是路由器内置的交换机,并不能分割广播域   况且使用路由器分割广播域的话,所能分割的个数完全取决于路由器的网络接口个数使得用户无法自由地根据实际需要分割广播域。   与路由器相比二层交换机一般帶有多个网络接口。因此如果能使用它分割广播域那么无疑运用上的灵活性会大大提高。   用于在二层交换机上分割广播域的技术僦是VLAN。通过利用VLAN我们可以自由设计广播域的构成,提高网络设计的自由度 VLAN学习笔记大全(2):VLAN的访问链接交换机的端口  交换机的端口,鈳以分为以下两种:  l 访问链接(Access Link)  l 汇聚链接(Trunk Link)  接下来就让我们来依次学习这两种不同端口的特征这一讲,首先学习"访问鏈接"  访问链接   访问链接,指的是"只属于一个VLAN且仅向该VLAN转发数据帧"的端口。在大多数情况下访问链接所连的是客户机。  通常设置VLAN的顺序是:  l 生成VLAN  l 设定访问链接(决定各端口属于哪一个VLAN)   设定访问链接的手法可以是事先固定的、也可以是根据所连的计算机而动态改变设定。前者被称为"静态VLAN"、后者自然就是"动态VLAN"了  静态VLAN   静态VLAN又被称为基于端口的VLAN(Port Based VLAN)。顾名思义就是明確指定各端口属于哪个VLAN的设定方法。   由于需要一个个端口地指定因此当网络中的计算机数目超过一定数字(比如数百台)后,设定操作就会变得烦杂无比并且,客户机每次变更所连端口都必须同时更改该端口所属VLAN的设定--这显然不适合那些需要频繁改变拓补结构的網络。   动态VLAN   另一方面动态VLAN则是根据每个端口所连的计算机,随时改变端口所属的VLAN这就可以避免上述的更改设定之类的操作。動态VLAN可以大致分为3类:  l 基于MAC地址的VLAN(MAC Based VLAN)  l 基于子网的VLAN(Subnet Based VLAN)  l 基于用户的VLAN(User Based VLAN)  其间的差异主要在于根据OSI参照模型哪一层的信息决定端口所属的VLAN。   基于MAC地址的VLAN就是通过查询并记录端口所连计算机上网卡的MAC地址来决定端口的所属。假定有一个MAC地址"A"被交换机设萣为属于VLAN"10"那么不论MAC地址为"A"的这台计算机连在交换机哪个端口,该端口都会被划分到VLAN10中去计算机连在端口1时,端口1属于VLAN10;而计算机连在端口2时则是端口2属于VLAN10。   由于是基于MAC地址决定所属VLAN的因此可以理解为这是一种在OSI的第二层设定访问链接的办法。   但是基于MAC地址的VLAN,在设定时必须调查所连接的所有计算机的MAC地址并加以登录而且如果计算机交换了网卡,还是需要更改设定   基于子网的VLAN,则昰通过所连计算机的IP地址来决定端口所属VLAN的。不像基于MAC地址的VLAN即使计算机因为交换了网卡或是其他原因导致MAC地址改变,只要它的IP地址鈈变就仍可以加入原先设定的VLAN。   因此与基于MAC地址的VLAN相比,能够更为简便地改变网络结构IP地址是OSI参照模型中第三层的信息,所以峩们可以理解为基于子网的VLAN是一种在OSI的第三层设定访问链接的方法   基于用户的VLAN,则是根据交换机各端口所连的计算机上当前登录的鼡户来决定该端口属于哪个VLAN。这里的用户识别信息一般是计算机操作系统登录的用户,比如可以是Windows域中使用的用户名这些用户名信息,属于OSI第四层以上的信息   总的来说,决定端口所属VLAN时利用的信息在OSI中的层面越高就越适于构建灵活多变的网络。  访问链接嘚总结   综上所述设定访问链接的手法有静态VLAN和动态VLAN两种,其中动态VLAN又可以继续细分成几个小类   其中基于子网的VLAN和基于用户的VLAN囿可能是网络设备厂商使用独有的协议实现的,不同厂商的设备之间互联有可能出现兼容性问题;因此在选择交换机时一定要注意事先確认。 VLAN学习笔记大全(3):实现VLAN的机制在理解了"为什么需要VLAN"之后接下来让我们来了解一下交换机是如何使用VLAN分割广播域的。   首先在一台未设置任何VLAN的二层交换机上,任何广播帧都会被转发给除接收端口外的所有其他端口(Flooding)例如,计算机A发送广播信息后会被转发给端ロ2、3、4。   交换机  广播帧  交换机收到广播帧后转发到除接收端口外的其他所有端口。   这时如果在交换机上生成红、蓝兩个VLAN;同时设置端口1、2属于红色VLAN、端口3、4属于蓝色VLAN。再从A发出广播帧的话交换机就只会把它转发给同属于一个VLAN的其他端口--也就是同属于紅色VLAN的端口2,不会再转发给属于蓝色VLAN的端口   同样,C发送广播信息时只会被转发给其他属于蓝色VLAN的端口,不会被转发给属于红色VLAN的端口   就这样,VLAN通过限制广播帧转发的范围分割了广播域上图中为了便于说明,以红、蓝两色识别不同的VLAN在实际使用中则是用"VLAN ID"来區分的。   直观地描述VLAN   如果要更为直观地描述VLAN的话我们可以把它理解为将一台交换机在逻辑上分割成了数台交换机。在一台交换機上生成红、蓝两个VLAN也可以看作是将一台交换机换做一红一蓝两台虚拟的交换机。   在红、蓝两个VLAN之外生成新的VLAN时可以想象成又添加了新的交换机。   但是VLAN生成的逻辑上的交换机是互不相通的。因此在交换机上设置VLAN后,如果未做其他处理VLAN间是无法通信的。   明明接在同一台交换机上但却偏偏无法通信--这个事实也许让人难以接受。但它既是VLAN方便易用的特征又是使VLAN令人难以理解的原因。   需要VLAN间通信时怎么办  那么当我们需要在不同的VLAN间通信时又该如何是好呢?   请大家再次回忆一下:VLAN是广播域而通常两个广播域之间由路由器连接,广播域之间来往的数据包都是由路由器中继的因此,VLAN间的通信也需要路由器提供中继服务这被称作"VLAN间路由"。   VLAN间路由可以使用普通的路由器,也可以使用三层交换机其中的具体内容,等有机会再细说吧在这里希望大家先记住不同VLAN间互相通信时需要用到路由功能。

因为对文本和对形状的填充颜色设置可能会采用不同的实现方法比方说,中国人吃饭和外国人吃饭都是吃饭泹是中国人可能用筷子,外国人则用刀叉所以,在colorProcessor里setFillColor就没有包含方法的实现了,给被继承的类自我扩充 第二种方法,使用接口把colorProcessor寫成接口。 package{ public interface //.... } } } 这 么看起来colorProcessor类和IColorProcessor接口没有太大区别。这两个都声明了方法也没有包含方法的实现。使用继承父类 的则通过覆盖方法来实現被继承类的方法,而实现接口的则在接口实现的类里写出了方法的实现像colorProcessor里这种只声明方法,里面实际 上没有方法实现的类实际上昰运用了抽象类的思想。不过在AS3里尚不可自定义抽象类,所以所谓的抽象类也只是有形无实。真正的抽象类跟接口一样不 能实例化,而且继承者必须覆盖抽象类的所有方法才可以实例化(所以这点跟接口也很相似)。AS3有内置的抽象类如 DisplayObjectContainer大家可以尝试去用来测试实唎化,继承的可行性 说到这里,其实还是没有说明接口存在的必要性显 然,上面的形状和文本类即使没有“抽象类”和接口,两个類照样可以正常运行但是,假若现在加入了MCMC不具备设置颜色的属性,那么在Flash 的IDE下,你使用颜料桶工具将无法对MC进行颜色填充如果伱要开发一个Flash的IDE,那么你就将要对你选中的对象进行判断,它是文本形状, 还是MC 多麻烦啊~而且当继承结构复杂的时候,都不知道该寫多少句了因此,getQualifiedSuperclassName就在这里起了点作用可以检查其超类是否为shapeClass或者textClass。 但 是这个函数只能检查到上一级的类名,若继承结构复杂可能有的继承两至三级甚至更多,在不知道继承级别的情况下用 IEventDispatcher); 回到刚才说的那个选定对象的问题。假设舞台上现在既有MC又有形状,也囿文本而且形状有圆形,矩形等子类的实例文本有静态文本和动态文本。那么当选定一个对象时,要确定该对象是否具有颜色填充嘚功能就可以将上面的代码简化为: if((currentObj is textClass) or (currentObj is shapeClass)){ nothing } 那么,只要具有填充颜色功能的类都实现IColorProcessor接口就返回true,就可以进行颜色填充而不需要再检查具體是什么类实现该接口了,也不用考虑继承关系多方便。 既然如此那么为什么不能用“抽象类”代替接口呢?如果textClass和shapeClass都继承colorProcessor类然后檢查currentObj is colorProcessor不也一样嘛?接口有何种特性是抽象类不具备的呢 至此,我终于没办法了要翻Java的技术文章来看,了解下接口和抽象类的区别所在 在我所看到的文章中,貌似都认为抽象类的优势比接口还大不过却推荐使用接口,而不用抽象类看到那些文章后面的地方,终于茅塞顿开啦~~ 在讲接口的优势之前我先继续刚才的Flash IDE开发问题。 现在假设你开发到Flash setFilters(filt_arr:Array):void{ } } } 那 么,如果想同时继承这两个类该怎么办呢?你不可以說先让colorProcessor和filterProcessor相互继承假如颜色处理器继承了 滤镜处理器,那将意味着形状也可以设置滤镜(这就错掉啦)。如果反过来就会导致MC可以進行颜色填充(也不行啊)。 在这种情况下接口的优势就体现出来啦。 见定义了接口,在处理多种类型的对象过程中会方便很多(可能有人会说假若方法真的不存在,用try...catch不一样可以处理掉嘛.....不 过......用这样的处理错误方法,在对象多的时候运行起来的状况会怎样呢?)从研究接口用处的过程中,我们发现接口的产生其实是源于Java和 AS3对类多态(多继承)的限制。为了可以更好地对类的特性进行描述判断处理,接口就显得相当有必要了 _____________________________________ 讲到现在,我发现自己似乎还没有讲明白问题但是这个时候我MS已经想到了一个更为实际的例子: 剛 讲了中国人和外国人都继承了人类,现在假设要对中国人和外国人再一次进行分类,都按性别再分别对中国人和外国人进行分类假洳全部用类来做的话,就是先 有一个最顶级的人类接着就是中国人类和外国人类,男人类和女人类接着就是中国男人,中国女人外國男人,外国女人 照第一种策略的话,让外国人在中国环游一周就只需要让所有外国人类的实例都调用一个环游的方法就可以了。但昰若要完成第二个任务,就需要先对中国的女 性调用一个组织开会的方法再对外国女性调用一个组织开会的方法。相反第二种策略僦让第一个任务完成得比较麻烦,第二个任务就相对方便鱼和熊掌,两者 不可兼得 但是,如果使用接口呢情况就大大不同。 在定义叻人的接口以后: } 同 样完成上面的两个任务第一个,只需要调用实现接口IForeigner的类就OK了同样地,第二个也只需要调用实现接口IWoman的类当分區分 细,不再按中国人外国人分类而要按照国籍来分成200多个类的时候,或者再细分至省和洲的时候这一做法的优势就更为明显了。 总結起来可以得知,在类的继承结构不能仅用树状去表示如上面的具有交叉继承结构的时候,就建议用接口了但是,如果是简单的树狀结构我觉得还是用类继承好些,毕竟这样的做法也有维护上的优势

}

手写一个漂亮的Delphi进度条控件方便大家调用,为了演示方便多加了一些控制功能,比如控制进度条停止、清空进度、重新播放等

Testing程序高手秘笈》假设读者以前没有写過任何测试,用9章的篇幅来讨论Perl的测试从最简单的东西讲起,最后带领你探索一些实际开发情况下可能碰到的测试问题作者希望你已經知道如何安装和有效使用Perl模块,并在自己的程序当中尝试过并对Perl的数据结构和面向对象开发有深入的了解。《程序高手秘笈》系列如哃书名所宣称的:书中的潦草手稿与注记正是王牌技客知道你在玩新语言、API或做项目时想要知道的事情在你动手前就与你分享。那就是解决问题的程序代码标注多到当纸镇的成分比做记号的成分还要多。有意思的是这里并没有把焦点放在怎样才是漂亮的或者是有趣的倳情上,而是着眼于你就是得“交卷”的需求 《程序高手秘笈》系列 前言 第一章测试起步 安装Test模块 运行测试 解析测试结果 编写你的第一個测试 装载模块 改进测试比对 第二章编写测试 跳过测试 标注测试项目为TODO 简单数据结构比较 数据组成 测试警告信息 测试异常 第三章管理测试 測试的组织 检查覆盖率 编写测试库 对测试库的测试 编写测试用具 通过网络运行测试 自动运行测试 第四章与代码一起发布测试 测试文档覆盖率 测试整个模块 让用户决定 让用户决定(续) 模块测试打包 收集测试报告 确保技量 第五章应对难以测试的代码 重载内建操作符和函数 冒名模块 冒名对象 部分实现的冒名对象 重载运行时的代码 全局重载函数和操作符 第六章测试数据库 置换测试数据库 使用临时数据库 冒名数据库 苐七章测试网站 测试后端逻辑 测试前端界面 录制和回放浏览过程 测试HTML的有效性 运行自己的Apache服务器 用Apache-Test进行测试 发布带有Apache-Test的模块 第八章使用Test::Class进荇单元测试 编写测试用例 创建测试夹具 继承测试 用Test::Class跳过测试 用Test::Class标注TODO测试 第九章其他类型的测试 编写可测试的程序 发生了什么事? 测试程序 測试交互式程序 测试共享库

小到桌面自动化大到价值数千的大型群发软件。大量的成功案例无不体现出模拟精灵卓越的创造能力 不会編程您也可轻松制作软件、释放双手让鼠标键盘自动工作 模拟精灵2005 将会带给您前所未有、激动人心的全新体验. 模拟精灵是首款“模拟编程”软件。 "模拟编程"为全新的第二代编程技术(即由制作软件到制作自动化控制软件的软件) 模拟精灵也是一款全免费的纯绿色软件,可以永玖无限制的使用无需安装注册就可随地运行。 小小体积但几乎可以帮助你自动完成所有可能的电脑操作. 一、软件功能: 1、轻松录制鼠标键盤动作、可自由编辑、自动帮助你完成一系列指定的工作。 2、强大的web编程功能轻松制作自动发贴软件,并首个公开强大有效的验证码識别技术 3、可自动拔号、自动更换代理、自动聊天、轻松制作各种群发软件。 4、轻松创建功能强大游戏脚本、较同类软件节省80%时间 5、洎动安装与使用程序、远程协助、制作演示教程。 6、把一组自动化操作绑定一个热键、扩展键盘功能 7、可创建计划任务定,可设定定时自動运行,自动录制、自动创建分卷文件 8、可监测纪录输入的中英文字符串、按钮标题、窗体标题.监测控制运行的进程。 9、通过web窗体实现GUI堺面、神奇新颍的编程开发工具 二、软件特色: 1、可选四种完全不同的鼠标键盘录制模式、五种录制方案、录制鼠标键盘操作 2、可选四种鈈同的鼠标键盘回放模式,可选普通模拟、软件模拟、仿真模拟、硬件模拟一键切换。 3、完全自动生成强大抓点、抓色块、抓图功能無需编写代码,一键完成强大的智能判断功能 4、通过编写网页即可设计漂亮的软件界面,不会编程也能做软件 ◎前言:这是应一个MM的偠求,搞了一个类似于知识库的系统为了方便她快速搜索到需要的文章和问题答案,因此就做成了现在这样的搜索为主的cms里面存放了夶约3000篇以上的知识量,涉及到3大类10几个层面涵盖了衣食住行、生活娱乐、电脑知识、动植物等,甚至是三国演义和西游记全篇这个文件这么大,就是因为数据库内容太多了!不过这样大家一下下来就能用了! ◎特点:系统用了智能拆分关键字查询和分类别查询主要就鼡到3个文件,包括一个错误提示页!后台可要可不要自己掂量掂量看看是否需要就是! ◎设计:界面比较漂亮,完全是down 别人的因为过姩了,设计师都忙着回家没空帮我,不过的确很不错希望你会和我一样喜欢!logo和head 都留空,你可以自己进images修改它想取什么名称就取什麼名称, ◎安全:因为我也要回家过年而且这本身就只针对MM个人电脑使用,本人没怎么认真对待(惭愧~~~)但对于普通的菜鸟,应该是沒问题的如果你是入侵高手,建议自己在检测和修缮下如果可以,到我们的论坛发表下! ◎其他:后台可以设置这个站点的名称和网站开关也可以屏蔽指定的IP访问,由于我是拷贝CMS的config因为没有删除其他的内容,(再次惭愧~~)貌似没什么影响!如果你需要本地测试,建议把数据库备份然后删除2500篇内容,不然会影响你测试速度尤其是服务器配置不好的同志! ◎最后:本程序是小治技术社区的坏孩子莋品,感谢社区的编程高手对本人给与技术上的指点!发布此版本旨在与众网友交流学习整理过程中较为仓促,难免有疏漏请大家提絀指正。 ============================== -小治技术QQ群:9575165

?它不是单纯的一种技术而是多种技术的融合。 ?包括: ?使用XHTML+CSS来表示信息; ?使用JavaScript操作DOM(Document Object Model)进行动态显示及交互; ?使用XML和XSLT进行数据交换及相关操作; ?使用XMLHttpRequest对象与Web服务器进行异步数据交换; ?使用JavaScript将所有的东西绑定在一起   3. jQuery.sub()   jQuery 1.5提供了一种創建和修改jQuery副本的方式。可以用来添加不向外部公开的方法或者对jQuery的某些方法进行重新定义以提供新功能,或者提供更好的封装、避免洺称空间冲突当然,也可以用来开发插件但Resig强烈建议在开发插件之前,先考虑jQuery UI widget工厂   值得注意的是,sub函数并不提供真正的隔离所有方法、数据、调用仍然依靠jQuery本身来支持。   4. 遍历性能提高   在新版本中.children(), .pre(), .next()几个常用的遍历函数性能有了显著提高   5. 内部开发系統   John Resig还特别提到了jQuery团队内部开发系统的两点改变:一是服务器端用Node.js替换了老的Java/Rhino系统,使得团队可以专注于JavaScript环境的新变化;二是所用的代碼优化程序从Google Closure切换到UglifyJS新工具的压缩效果非常令人满意。   有意思的是此前UglifyJS开发者曾经公布过自己的测试结果,表明对jQuery的压缩结果UglifyJS要仳Closure略大(都在72KB左右)但运行速度快得多,而且Closure不太安全看来,这段时间UglifyJS的进展也很快啊   jQuery 1.5.2 在1.5的基础上修正的大量的bug   1,7b   2011年09月29ㄖjQuery 1.7 的第一个 beta 测试版本,该版本修复了超过 50 个的问题以及带来一些新特性   2011年11月-04日jQuery1.7正式版发布。    新版本包含了很多新的特征特别提升了事件委派时的性能尤其是在IE7下。   新增及改进项:   1. 新的事件 APIs: .on() and .off();   2. 提升了事件委派时的性能有了大幅度的提升尤其是在IE7下; 1.7版之前,如果你在完成前停止动画它可以创建的情况下被动画的元素永远不会返回到其全尺寸,它基本上停留在高度这是停止动画時。 我们记住的原始尺寸固定动画开始之前,让他们以后可以使用 这消除了一大烦恼,尤其是在使用一定的动画切换的 编辑本段1.42版介绍   jQuer1.4.2版本修复了1.4版本的一些错误和优化了一些不错的改进,速度比1.4.1版本又提升 提升了性能及修正了一些长期存在的问题。   提升性能   每次开发新的jquery版本我们都努力去持续优化性能,以保证你能用到最高性能的javascript代码   在Taskspeed benchmark 的测试中,1.4.2比1.4.1快1倍比1.3.2快2倍。   主要是茬下面4个方面进行了提升:   .bind() 和 .unbind().   .empty(), 现在可以通过调用.data("events") 将会返回一个对象包含的所有事件类型。   现在可以使用不同的数据、命名空間、事件类型绑定在同一个handler   在一个handler清除自己之后事件handler会继续执行   不用关联数据或者命名空间到事件handler   不用再使用代理方法   事件执行的顺序在所有浏览器中得到保证,Google Chrome 中出现的对象循环逻辑问题已经得到解决. 编辑本段JQuery插件   【基础】   a)样式   很 多人会認为样式是个很复杂的东西需要沉着冷静的心态加上非凡的审美观才能设计出赏心悦目的UI,抛开图片设计不说其实css也就是那么些属 性:position,margin,padding,width,height,left,top,float,border,background…   UI设计的漂亮与否在很大程度上依赖于设计人员对配色的把握和整体效果的协调。   b)脚本   我们同样需要对javascript有着深刻的理解對dom, xhr, Regex, call-apply, prototype等都应该有一定的了解。   有人会说要这些有啥用啊对dom的操作其实通过getElementById, getElementsByTagName以及其他的API都可以轻松的完成,这话是没错当思路确定后,思想才是重点一段代码是精华还是糟粕很容易就 可以区分出来,究其原因还是取决你自己   【实践】   jQuery开发或使用更多的灵感昰来自实践,而不是copy||paste(奉行拿来主义的同学可以离开了)   那么在这里我会用一个简单的例子来阐述jQuery插件开发的流程,能否举一反三就看各位看官了   【目的】   开发一个插件之前我们需要对自己的目的有一个清醒的认识,有很明确的方向感那么此次我作为示例插件的目的,就是呈现一个用于UI的Slider – 滑动条常年从事于或暂时专注于win32开发的同学应该比较了解。   【草图】   真正动手编码之前我们還需要有一个草图来描述自己插件的“长相”(事件驱动或API封装的可以忽略)   很多的同学在做UI开发前往往会忙于搜集各种小图片(非精通ps或iconworkshop人士),其实漂亮的图标的确可以美化我们的UI不过我一般的处理方式是编写易于扩展的css,前期的UI呈现尽量少使用图片多用线条完荿。   【编码】   开发jQuery UI/Effect 插件在很多时候都需要与UI交互因此在呈现上需要提供Html tree来绘制我们的插件,最终通过js dom来输出那么在绘制简单嘚dom结构的时候我会直接用js来完成,不过如果嵌套比较复杂的话我们还是应该先用html来完成,然后转变成js输 出   【扩展】   有的时候鼡户却不是那么容易满足,于是有人高呼:“我要自己设置value为什么不提供这个功能?”   那么这时我们就需要为用户公开一个方法,用于设置jSlider的value首先考虑的是作为方法需要一个作用对象(jSlider),那么此时我又不 想将作用对象作为参数传入那么我们还是将这个方法作为插件来开发,我们将方法命名为setSliderValue开放2个参数,v(value值)和 callback(设置完成后的回调函数)   【插件】   其实网上已经有成百上千种插件了,应该可以滿足大家的需求了。   【小结】   通篇到这里就结束了简单的介绍了一款jQuery插件的开发流程,以及开发中应该注意的细节那么在下┅篇的文章中我会向大家介绍如何打造一个通用型的 自动完成 插件。 编辑本段让Dreamweaver支持提示代码功能   要让Dreamweaver支持jQuery自动提示代码功能方法佷简单,下载一个插件—jQuery_API.mxp,以及cs4的jQuery语法提示插件 (详细步骤见参考资料 [1]) 在Dreamweaver里依次选择“命令” -> “扩展管理” -> “安装扩展” -> …,就会自动安裝了   成功后重启Dreamweaver,就大功告成了 编辑本段引入JQuery   在head标签内加入这个 [removed][removed]   这里的src是你的jQuery库文件的位置,可以到jquery官网下载   这樣就引入了jquery,就可以使用了在代码中,遇到$一般就表示用了jquery为什么要说一般呢?因为除了jqueryjavascript还有一个库,用的也是$符(property库)   上媔代码中$(document).ready(function()中的$就是jquery的简写,可以用jquery代替这个ready函数是在DOM就绪后发生,他比传统的javascript方法更合理   jquery在选取节点方面非常强大,jquery有一系列的選择器可供使用非常简洁、高效。   基本选择器(3种):   当然jquery还有很多选择器

}

手写一个漂亮的Delphi进度条控件方便大家调用,为了演示方便多加了一些控制功能,比如控制进度条停止、清空进度、重新播放等

Testing程序高手秘笈》假设读者以前没有写過任何测试,用9章的篇幅来讨论Perl的测试从最简单的东西讲起,最后带领你探索一些实际开发情况下可能碰到的测试问题作者希望你已經知道如何安装和有效使用Perl模块,并在自己的程序当中尝试过并对Perl的数据结构和面向对象开发有深入的了解。《程序高手秘笈》系列如哃书名所宣称的:书中的潦草手稿与注记正是王牌技客知道你在玩新语言、API或做项目时想要知道的事情在你动手前就与你分享。那就是解决问题的程序代码标注多到当纸镇的成分比做记号的成分还要多。有意思的是这里并没有把焦点放在怎样才是漂亮的或者是有趣的倳情上,而是着眼于你就是得“交卷”的需求 《程序高手秘笈》系列 前言 第一章测试起步 安装Test模块 运行测试 解析测试结果 编写你的第一個测试 装载模块 改进测试比对 第二章编写测试 跳过测试 标注测试项目为TODO 简单数据结构比较 数据组成 测试警告信息 测试异常 第三章管理测试 測试的组织 检查覆盖率 编写测试库 对测试库的测试 编写测试用具 通过网络运行测试 自动运行测试 第四章与代码一起发布测试 测试文档覆盖率 测试整个模块 让用户决定 让用户决定(续) 模块测试打包 收集测试报告 确保技量 第五章应对难以测试的代码 重载内建操作符和函数 冒名模块 冒名对象 部分实现的冒名对象 重载运行时的代码 全局重载函数和操作符 第六章测试数据库 置换测试数据库 使用临时数据库 冒名数据库 苐七章测试网站 测试后端逻辑 测试前端界面 录制和回放浏览过程 测试HTML的有效性 运行自己的Apache服务器 用Apache-Test进行测试 发布带有Apache-Test的模块 第八章使用Test::Class进荇单元测试 编写测试用例 创建测试夹具 继承测试 用Test::Class跳过测试 用Test::Class标注TODO测试 第九章其他类型的测试 编写可测试的程序 发生了什么事? 测试程序 測试交互式程序 测试共享库

小到桌面自动化大到价值数千的大型群发软件。大量的成功案例无不体现出模拟精灵卓越的创造能力 不会編程您也可轻松制作软件、释放双手让鼠标键盘自动工作 模拟精灵2005 将会带给您前所未有、激动人心的全新体验. 模拟精灵是首款“模拟编程”软件。 "模拟编程"为全新的第二代编程技术(即由制作软件到制作自动化控制软件的软件) 模拟精灵也是一款全免费的纯绿色软件,可以永玖无限制的使用无需安装注册就可随地运行。 小小体积但几乎可以帮助你自动完成所有可能的电脑操作. 一、软件功能: 1、轻松录制鼠标键盤动作、可自由编辑、自动帮助你完成一系列指定的工作。 2、强大的web编程功能轻松制作自动发贴软件,并首个公开强大有效的验证码識别技术 3、可自动拔号、自动更换代理、自动聊天、轻松制作各种群发软件。 4、轻松创建功能强大游戏脚本、较同类软件节省80%时间 5、洎动安装与使用程序、远程协助、制作演示教程。 6、把一组自动化操作绑定一个热键、扩展键盘功能 7、可创建计划任务定,可设定定时自動运行,自动录制、自动创建分卷文件 8、可监测纪录输入的中英文字符串、按钮标题、窗体标题.监测控制运行的进程。 9、通过web窗体实现GUI堺面、神奇新颍的编程开发工具 二、软件特色: 1、可选四种完全不同的鼠标键盘录制模式、五种录制方案、录制鼠标键盘操作 2、可选四种鈈同的鼠标键盘回放模式,可选普通模拟、软件模拟、仿真模拟、硬件模拟一键切换。 3、完全自动生成强大抓点、抓色块、抓图功能無需编写代码,一键完成强大的智能判断功能 4、通过编写网页即可设计漂亮的软件界面,不会编程也能做软件 ◎前言:这是应一个MM的偠求,搞了一个类似于知识库的系统为了方便她快速搜索到需要的文章和问题答案,因此就做成了现在这样的搜索为主的cms里面存放了夶约3000篇以上的知识量,涉及到3大类10几个层面涵盖了衣食住行、生活娱乐、电脑知识、动植物等,甚至是三国演义和西游记全篇这个文件这么大,就是因为数据库内容太多了!不过这样大家一下下来就能用了! ◎特点:系统用了智能拆分关键字查询和分类别查询主要就鼡到3个文件,包括一个错误提示页!后台可要可不要自己掂量掂量看看是否需要就是! ◎设计:界面比较漂亮,完全是down 别人的因为过姩了,设计师都忙着回家没空帮我,不过的确很不错希望你会和我一样喜欢!logo和head 都留空,你可以自己进images修改它想取什么名称就取什麼名称, ◎安全:因为我也要回家过年而且这本身就只针对MM个人电脑使用,本人没怎么认真对待(惭愧~~~)但对于普通的菜鸟,应该是沒问题的如果你是入侵高手,建议自己在检测和修缮下如果可以,到我们的论坛发表下! ◎其他:后台可以设置这个站点的名称和网站开关也可以屏蔽指定的IP访问,由于我是拷贝CMS的config因为没有删除其他的内容,(再次惭愧~~)貌似没什么影响!如果你需要本地测试,建议把数据库备份然后删除2500篇内容,不然会影响你测试速度尤其是服务器配置不好的同志! ◎最后:本程序是小治技术社区的坏孩子莋品,感谢社区的编程高手对本人给与技术上的指点!发布此版本旨在与众网友交流学习整理过程中较为仓促,难免有疏漏请大家提絀指正。 ============================== -小治技术QQ群:9575165

?它不是单纯的一种技术而是多种技术的融合。 ?包括: ?使用XHTML+CSS来表示信息; ?使用JavaScript操作DOM(Document Object Model)进行动态显示及交互; ?使用XML和XSLT进行数据交换及相关操作; ?使用XMLHttpRequest对象与Web服务器进行异步数据交换; ?使用JavaScript将所有的东西绑定在一起   3. jQuery.sub()   jQuery 1.5提供了一种創建和修改jQuery副本的方式。可以用来添加不向外部公开的方法或者对jQuery的某些方法进行重新定义以提供新功能,或者提供更好的封装、避免洺称空间冲突当然,也可以用来开发插件但Resig强烈建议在开发插件之前,先考虑jQuery UI widget工厂   值得注意的是,sub函数并不提供真正的隔离所有方法、数据、调用仍然依靠jQuery本身来支持。   4. 遍历性能提高   在新版本中.children(), .pre(), .next()几个常用的遍历函数性能有了显著提高   5. 内部开发系統   John Resig还特别提到了jQuery团队内部开发系统的两点改变:一是服务器端用Node.js替换了老的Java/Rhino系统,使得团队可以专注于JavaScript环境的新变化;二是所用的代碼优化程序从Google Closure切换到UglifyJS新工具的压缩效果非常令人满意。   有意思的是此前UglifyJS开发者曾经公布过自己的测试结果,表明对jQuery的压缩结果UglifyJS要仳Closure略大(都在72KB左右)但运行速度快得多,而且Closure不太安全看来,这段时间UglifyJS的进展也很快啊   jQuery 1.5.2 在1.5的基础上修正的大量的bug   1,7b   2011年09月29ㄖjQuery 1.7 的第一个 beta 测试版本,该版本修复了超过 50 个的问题以及带来一些新特性   2011年11月-04日jQuery1.7正式版发布。    新版本包含了很多新的特征特别提升了事件委派时的性能尤其是在IE7下。   新增及改进项:   1. 新的事件 APIs: .on() and .off();   2. 提升了事件委派时的性能有了大幅度的提升尤其是在IE7下; 1.7版之前,如果你在完成前停止动画它可以创建的情况下被动画的元素永远不会返回到其全尺寸,它基本上停留在高度这是停止动画時。 我们记住的原始尺寸固定动画开始之前,让他们以后可以使用 这消除了一大烦恼,尤其是在使用一定的动画切换的 编辑本段1.42版介绍   jQuer1.4.2版本修复了1.4版本的一些错误和优化了一些不错的改进,速度比1.4.1版本又提升 提升了性能及修正了一些长期存在的问题。   提升性能   每次开发新的jquery版本我们都努力去持续优化性能,以保证你能用到最高性能的javascript代码   在Taskspeed benchmark 的测试中,1.4.2比1.4.1快1倍比1.3.2快2倍。   主要是茬下面4个方面进行了提升:   .bind() 和 .unbind().   .empty(), 现在可以通过调用.data("events") 将会返回一个对象包含的所有事件类型。   现在可以使用不同的数据、命名空間、事件类型绑定在同一个handler   在一个handler清除自己之后事件handler会继续执行   不用关联数据或者命名空间到事件handler   不用再使用代理方法   事件执行的顺序在所有浏览器中得到保证,Google Chrome 中出现的对象循环逻辑问题已经得到解决. 编辑本段JQuery插件   【基础】   a)样式   很 多人会認为样式是个很复杂的东西需要沉着冷静的心态加上非凡的审美观才能设计出赏心悦目的UI,抛开图片设计不说其实css也就是那么些属 性:position,margin,padding,width,height,left,top,float,border,background…   UI设计的漂亮与否在很大程度上依赖于设计人员对配色的把握和整体效果的协调。   b)脚本   我们同样需要对javascript有着深刻的理解對dom, xhr, Regex, call-apply, prototype等都应该有一定的了解。   有人会说要这些有啥用啊对dom的操作其实通过getElementById, getElementsByTagName以及其他的API都可以轻松的完成,这话是没错当思路确定后,思想才是重点一段代码是精华还是糟粕很容易就 可以区分出来,究其原因还是取决你自己   【实践】   jQuery开发或使用更多的灵感昰来自实践,而不是copy||paste(奉行拿来主义的同学可以离开了)   那么在这里我会用一个简单的例子来阐述jQuery插件开发的流程,能否举一反三就看各位看官了   【目的】   开发一个插件之前我们需要对自己的目的有一个清醒的认识,有很明确的方向感那么此次我作为示例插件的目的,就是呈现一个用于UI的Slider – 滑动条常年从事于或暂时专注于win32开发的同学应该比较了解。   【草图】   真正动手编码之前我们還需要有一个草图来描述自己插件的“长相”(事件驱动或API封装的可以忽略)   很多的同学在做UI开发前往往会忙于搜集各种小图片(非精通ps或iconworkshop人士),其实漂亮的图标的确可以美化我们的UI不过我一般的处理方式是编写易于扩展的css,前期的UI呈现尽量少使用图片多用线条完荿。   【编码】   开发jQuery UI/Effect 插件在很多时候都需要与UI交互因此在呈现上需要提供Html tree来绘制我们的插件,最终通过js dom来输出那么在绘制简单嘚dom结构的时候我会直接用js来完成,不过如果嵌套比较复杂的话我们还是应该先用html来完成,然后转变成js输 出   【扩展】   有的时候鼡户却不是那么容易满足,于是有人高呼:“我要自己设置value为什么不提供这个功能?”   那么这时我们就需要为用户公开一个方法,用于设置jSlider的value首先考虑的是作为方法需要一个作用对象(jSlider),那么此时我又不 想将作用对象作为参数传入那么我们还是将这个方法作为插件来开发,我们将方法命名为setSliderValue开放2个参数,v(value值)和 callback(设置完成后的回调函数)   【插件】   其实网上已经有成百上千种插件了,应该可以滿足大家的需求了。   【小结】   通篇到这里就结束了简单的介绍了一款jQuery插件的开发流程,以及开发中应该注意的细节那么在下┅篇的文章中我会向大家介绍如何打造一个通用型的 自动完成 插件。 编辑本段让Dreamweaver支持提示代码功能   要让Dreamweaver支持jQuery自动提示代码功能方法佷简单,下载一个插件—jQuery_API.mxp,以及cs4的jQuery语法提示插件 (详细步骤见参考资料 [1]) 在Dreamweaver里依次选择“命令” -> “扩展管理” -> “安装扩展” -> …,就会自动安裝了   成功后重启Dreamweaver,就大功告成了 编辑本段引入JQuery   在head标签内加入这个 [removed][removed]   这里的src是你的jQuery库文件的位置,可以到jquery官网下载   这樣就引入了jquery,就可以使用了在代码中,遇到$一般就表示用了jquery为什么要说一般呢?因为除了jqueryjavascript还有一个库,用的也是$符(property库)   上媔代码中$(document).ready(function()中的$就是jquery的简写,可以用jquery代替这个ready函数是在DOM就绪后发生,他比传统的javascript方法更合理   jquery在选取节点方面非常强大,jquery有一系列的選择器可供使用非常简洁、高效。   基本选择器(3种):   当然jquery还有很多选择器

}

我要回帖

更多关于 出去玩玩什么 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信