自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(35)
  • 资源 (4)
  • 收藏
  • 关注

原创 程序设计一定不要忘了“设计”两字

       谈到“程序设计”,我国大多数从事软件开发工作的人员,即程序员其实只做到了“程序”这一层次,而忘记了“设计”这一尤其重要的内容,大学教育从一开始就开设了“程序设计”这门课程,但却只教学生某种语言的语法及如何使用特定期语言去解次一个特定的问题,即实现某种功能,忽视了在当今软件开发中及其重要“设计”环节,大多数开发人员对于一个给定的功能需求,只知道使用现有的库和某种算法去实现相应的功能,却

2008-02-24 19:49:00 492

原创 如何实现IEnumerable<T>和IEnumerator接口,一个ASP.NET MVC日志模型的实现

namespace MyMvcApp.Models{    public class LogsModel:IEnumerable>,IEnumerator>    {        private TextReader reader;        priva

2011-08-28 15:58:14 1514

原创 Head first系列图书

<br />Head First Java™<br />Head First Object-Oriented Analysis and Design (OOA&D)<br />Head Rush Ajax<br />Head First HTML with CSS and XHTML<br />Head First Design Patterns<br />Head First EJB™<br />Head First PMP<br />Head First SQL<br />

2010-08-11 17:43:00 3062

原创 面向对象程序员JavaScript指南(2)

   2.6 接口和"鸭子类型"     在软件开发中,有很多时候我们希望指定某种行为而不提供具体的实现。例如,在Shape 对象被正方形、圆形等对象子类化(subclassed)的情况下,我们知道将无法得到一个不是某种特定类型的形状。Shape 对象的基本概念是对于通用属性的方便的抽象,而没有真实世界中的等同物。      C++的虚类或者Java

2009-09-11 17:59:00 1102

原创 面向对象程序员的JavaScript指南(1)

1、JavaScript 不是Java      名字蕴含了付么? Java 和JavaScript 的名字巾蕴含着的是大量的市场考虑,而实质相对很少。JavaScript 由" Livescript "改名而来,是Netscape 市场部在最后时刻决定的,现在这个名字已经被广为接受。与一般的理解相反, JavaScript 并不源自C 系列语言,它的思想大多来源于类似Scheme 和

2009-09-11 13:40:00 655

原创 测试用例设计综合策略

1. Myers 提出了使用各种测试方法的综合策略:1)在任何情况下都必须使用边界值分析方法,经验表明用这种方法设计出测试用例发现程序错误的能力最强。 2)必要时用等价类划分方法补充一些测试用例。3)用错误推测法再追加一些测试用例。4)对照程序逻辑,检查已设计出的测试用例的逻辑覆盖程度,如果没有达到要求的覆盖标准,应当再补充足够的测试用例。5)如果程序的功能说明中含有输入条件的组合情况,则一开

2009-09-03 10:01:00 577

原创 Ajax 实践

 1、Ajax框架的选择      Ajax框架选择的首要因素之一是架构设计的合理性和灵活性。2、Ajax的核心      Ajax核心在于应用设计模式来指导其最佳实践,遵循设计模式所倡导的编程规律,我们可以更容易地建造出当需求变化时易于修改、便于扩充的应用。 3、什么是富客户端     “富”是指客户端的交互模型要丰富,即要有多样化的输入方式和符合直觉

2009-07-31 10:25:00 521

原创 过程调用约定

过程调用约定 当程序中的各个过程(函数)被分别编译时,关键是如何规定寄存器的使用规则。当编译某个过程时,编译器必须事先知道需要用到哪些寄存器、哪些寄存器的内容需要保留给其他过程使用等信息。我们称这些寄存器的使用规则为寄存器使用约定或过程调用约定。顾名思义,大多数情况下,这些规定主要是用于约束软件的,而不会受到硬件的限制。因此,大多数的编译器和程序员都必须遵守这些约定以免发生错误。 

2009-06-05 20:47:00 1116

原创 谈谈内存的使用

基于MIPS处理器的系统通常将内存分为三部分,如下图所示:我们将第一部分,即图中起始于地址0x400000的内存空间称为正文段(代码段),用于存储程序指令。第二部分是数据段,位于正文段上面,它又可以分成两部分。静态数据(起始地址为0x10000000)的大小为编译器所知,其内容在整个程序执行期间有效。例如在C语言中,全局变量是静态分配的,所以在程序执行的任意时刻都可以被引用。链接器不仅

2009-06-05 19:23:00 526

原创 谈谈链接器和程序的装载

链接器 1.什么是链接器 链接器就是将单独编译后的各个目标文件组合起来,形成单个可执行程序的过程。 2.链接器的任务    a. 搜索程序库,找到被本程序调用的库函数;   b. 分配每个模块代码的内存位置,并且调整绝对引用实现指令的重定位;   c. 实现文件之间的引用。    第一个任务是为了保证程序中的所有标记都被事先定义好。链接器匹配全局符号

2009-06-05 18:25:00 893

原创 服务语义

1、何为语义?        语义是事物的观察者给事物本身赋予的含义,一致共享的语义构成观察着对事物的知识,也是观察着之间互相交流的基础。构建在人工智能领域本体论(Ontology)研究基础之上的语义网技术(Semantic Web)通过对语义的形式定义可以在计算机和计算机之间、人和计算机之间建立起对事物理解的一致性。建立在共享语义基础上的计算机系统作为一种智能主体可以实现相互之间的自动理解、自动

2009-05-12 19:38:00 1757

原创 面向服务的分析和设计(SOAD)

 1、SOAD总体指导原则      - 经过良好构思的服务应该给业务带来灵活性和敏捷性,它们通过松耦合、封装和信息隐藏等机制使服务的重新配置和复用更加容易     - 设计良好的服务之间的依赖被最小化而且被显式声明,最小依赖原则不仅仅适用于企业应用     - 服务抽象是内聚、完整和一致的。     - 服务是无状态的,但可以减弱该假设以切合特定的问题域和场景     -

2009-05-12 17:29:00 2883

原创 服务工程

抽象和问题分离的原则是工程的精要,而且永不过时! 面向服务的分析和设计(Service oriented analysis and design, SOAD):专为面向服务的体系结构范型设计的软件建模和开发方法。建立在早期包括面向对象分析和设计以及业务过程管理在内的开发过程基础之上。所有这些设计方法都提倡信息隐藏、抽象和关注点分离,但SOAD加入了对服务仓库、服务编排和企业服务总线的设计方

2009-05-07 22:50:00 674

原创 服务事务和安全

服务事务1、事务的基本概念      事务是一系列操作的集合,这些操作才逻辑上构成一个执行单元,其构成的操作或者全部执行或者全部不执行。因此,只有构成事务的所有操作都成功执行才意味着事务的成功执行,否则,事务的执行失败,系统还原到事务执行前的状态。     (1)原子事务模型,具有以下属性      a. 原子性(Atomic):事务包含的操作要么全部成功,要么一个也不发生;

2009-05-07 21:38:00 627

原创 服务协作

1、服务协作通过服务之间的对等消息传递来实现,这种协作有两特点:     (1)协作过程一般需要经过多次交互;     (2)服务之间的消息交互需要以一定的次序进行2、服务编舞和服务编排     (1)服务编舞(Service choreography):描述参与某次协作的多个服务之间的对等消息交互协议。该协议一般是公开发布的,由协作的参与者共享。     (2)服务编排(Se

2009-05-07 16:28:00 1500

原创 服务组合

服务组合基础 1、什么是服务组合     WEB服务组合是通过组合基本WEB服务提供增值服务的能力,这些基本WEB服务可能由别的组提供。可见,首先,服务组合需要使用其他服务;其次,组合后形成的是一个具有新功能的服务;再次,服务组合使用的基本服务可以是组织外部的。     SOA和WEB服务能为企业IT体系结构带来互操作性、灵活性和复用性,因此可以用WEB服务来实现过程中的自动活动,

2009-05-06 20:16:00 11148

原创 服务发布和发现

名称和目录服务概述 1、名称服务:提供系统中组件从名称到实际访问地址的映射。有以下优点:     a. 方便定位远程组件     b. 名称到实际组件的映射表相当于名称和实际组件之间建立的契约,因此通过该契约可以实现组件使用者和实际组件地址之间的松耦合:组件可以任意调整其地址,而组件的使用者可以在不做任何改动的情况下依然通过名称服务定位该组件。2、发现服务:根据条件搜索满足条件

2009-05-06 09:51:00 1021

原创 服务描述

1、自描述是服务的基本特征。通过自描述,作为开放网络构件的服务以编程语言无关的方式对外公布其调用接口和其他相关特征。2、通过服务描述,服务屏蔽了其实现细节,使服务提供者和服务消费者能以一种松耦合的方式协作。对服务最基本的描述是接口描述,服务消费者只有获得接口描述才能向服务发送正确的调用信息;服务的通信协议、访问地址、发送给服务的消息格式约定也是访问服务之前必须获得的信息。3、服务描述模型(

2009-05-05 20:06:00 2614

原创 SOAP与HTTP的绑定

1、SOAP请求     根据SOAP WEB方法的定义,在与HTTP等网络传输协议进行绑定实现SOAP消息传输时,需要指出所使用的SOAP WEB方法(SOAP Web Method),如Get、Post等。 Get方法通常用来获取Web服务器上的信息。Post方法通常用来将信息从客户端传送给服务器,然后利用Post方法所传送的信息被服务器上的应用程序所使用。利用Get方法只能传送参数等特定

2009-05-05 10:37:00 3211

原创 SOAP消息体

1、SOAP消息体(Body)包含的是SOAP消息的实际负载。2、SOAP消息体(Body)可包含任意内容,但SOAP规范定义了两种消息风格供发送者和接收者使用。这两种消息风格分别为:     a. RPC风格:遵从SOAP标准,封装的是RPC调用的请求和返回。对该类消息的约束是必须把操作的名称作为封装了对操作的调用和返回消息负载的根元素名称,如 : -----------------

2009-05-05 10:01:00 4204 1

原创 分布式系统的通信模式

1、同步通信模式     a.远程过程调用(RPC)     b.对象远程过程调用(Object RPC)     c.CORBA (Common Object Request Broker Architecture)     d.DCOM (Distributed Component Object Model)2、异步通信模式     a.消息队列 (MQ,Message

2009-05-05 09:29:00 726

原创 WEB服务技术体系

1. 传输规范:使用的传输协议2. 消息规范:通信时采用的XML消息格式3. 描述规范:提供访问WEB服务的抽象接口及其绑定的描述4. 发布和发现规范:提供WEB服务的服务注册和发现中介5. 消息扩展规范:在SOAP的基本消息交互能力的基础上,通过扩展SOAP消息头,使SOAP消息框架的功能更强。包括:WS-Addressing、WS-ReliableMessaging、WS-Po

2009-04-30 22:10:00 828

原创 服务组合与服务协作的区别

由于服务组合与服务协作都涉及一组服务以及这些服务之间的交互和协作,很容易混淆,在此作一区分:      1、在SOA中,所谓服务组合是指以流程的方式完成服务的编排(orchestration)。服务的编排由一个中心协调者(如音乐指挥)完成。这个中心协调者依据流程规划协调对不同服务的调用,以完成既定的业务目标,而参与流程的服务并不知道流程的全貌。服务组合语言就是编制服务调用的流程规划的语言,该流

2009-04-30 20:45:00 2452

原创 SOA松耦合的依赖关系

1、什么叫耦合(Coupling)     耦合是相互交互的系统彼此间的依赖。     依赖分为真依赖(Real Dependency)和假依赖(Artifical Dependency)。     真依赖是系统从其他系统消费的特征(feature)和服务的集合。真依赖总是存在,只要系统间存在交互,无法简化。     假依赖是系统为获得其他系统提供的特征和服务而必须服从的因素(如语

2009-04-30 19:43:00 2888 8

原创 研究生参与项目经验谈

作为计算机专业的研究生,参加实际项目无论对于我们将来找工作,还是从事科学研究,都有着非常重要的意义。这个过程不仅可以提高我们的软件开发能力,同时也是对我们多年所学专业知识和能力的有效检验,让我们这些涉世未深、经验尚浅、知识结构不够清晰、但同时有些自负或迷茫的研究生们对自己的知识水平和技术有一个更加清楚和认识。下面是本人在一次不成功的项目开发后的一点点心得:一、项目与用户需求脱节,或需求分析

2009-04-30 11:55:00 3614

原创 点到点企业间的应用集成

      1、面向服务的应用集成技术      ESB:采用SOA原则,在大粒度服务级别通过事件驱动和基于XML的消息引擎,以与实现无关的方式集成企业应用的新兴标准。      ESB的功能:      (1)智能路由 (2)数据转换 (3)事件:服务间异步松耦合的基础。      2、业务过程管理技术      BPM:核心组件是支持业务过程自动执行的过程引擎。    

2009-04-30 10:44:00 558

原创 将字符串形式输入的比特串转换为相应的十六进制表示的函数

//将整数x的第i位(从左到右)设为1,其中bit_len为比特串的长度void Set(int *x, int i,int bit_len){    (*x) |= (1}//将字符串型的比特串解析为相应的整数//如输入为"11110011",则输出为243int ParseBitStringToInt(char * bitString){    int x = 0;    int strLen

2008-10-28 19:47:00 1504

原创 proxy(代理)模式

普通对象所需要完成的任务是通过公共接口为外界提供自己所承诺的服务。然而,有时候合法的对象可能会因为各种原因而无法完成自己常规的任务。尤其是当对象需要很长时间才能载入内存、对象正运行在另一台计算机上或者需要获取对象消息的时候,这种情况就会频繁出现。在这种情况下,我们可以使用一个代理对象,由它来承担客户期待的责任,并将请求转发给其背后的目标对象。为对象提供一个代理或者占位(placeholder)

2008-03-29 23:00:00 418

原创 《编程珠玑》读书笔记2

18、关键在于简单性:简单性可以产生功能性、健壮性以及速度和空间;简单性也可以减少代码的空间。以下是几种数据空间技术:    a.不要保存,重新计算。无论什么时候,在我们需要某一对象时,我们都不保存它,而是对它进行重新计算,那么保存该对象所需的空间可以急剧地减少。如,一个素数表将被一个检索素数函数所取代。此方法牺牲更多的运行时间来获得更少的空间。这种方法只适用于待存储的对象可以从其描述中重新计算时

2008-03-24 21:27:00 446

原创 代码优化规则

1、用空间换取时间规则(Space-For-Time Rules)   > 扩充数据结构。通常,通过给结构增加其他信息或改变结构内部的信息让它访问得更快能够减少对数据的常用操作所需的时间。   > 存储预先计算好的结果。只计算函数一次然后存储结果能够减少重复计算某一昂贵函数所需的成本。以后对该函数的请求就只需通过表查找来完成,而不需要重新计算该函数   > 高速缓存。必须降低经常访问的数据的访问成

2008-03-24 21:16:00 574

原创 有关字符串处理问题的原则

a、字符串的数据结构:如后缀数组  a1.散列。非常快的数据结构,而且较容易实现  a2.平衡树。这个结构即使是在输入不正当的情况下也有非常好的性能,并且已经优雅地打包到了C++标准模板库set和map的大多数实现中。  a3.后缀数组。初始化指向文本串中的每个字符的指针数组,将其排序,这样就得到了一个后缀数组。然后你就可以扫描该数组,找到其最近的字符串或使用二分查找法查找单词或词组。 b、使用库

2008-03-24 17:33:00 434

原创 随机文本生成技术---order-k马尔科夫链文本生成技术

这里的k = 2:        int k = 2;    char inputchars[5000000];    char *word[1000000];    int nword = 0;    首先,扫描整个输入文本来实现算法从而生成每个单词。我们将数组word作为一个指向字母的后缀数组,只是它仅从单词的边界开始。变量nword保存了单词的数目。我们使用下面的代码读取文件:    wor

2008-03-24 17:32:00 1664

原创 从给定的文本中,查找其中最长的重复子字符串的问题

对于类似从给定的文本中,查找其中最长的重复子字符串的问题,可以采用“后缀数组”来高效地完成此任务。后缀数组使用文本本身和n个附加指针(与文本数组相应的指针数组)来表示输入文本中的n个字符的每个子字符串。    首先,如果输入字符串存储在c[0..n-1]中,那么就可以使用类似于下面的代码比较每对子字符串:    maxlen = -1    for i = [0, n)        for j

2008-03-24 10:53:00 1636 1

原创 《编程珠玑》读书笔记

---------------------------基本原则------------------------1、仔细分析小问题有时可带来巨大的实际好处2、要打破概念上的障碍,转而解决一个更简单的问题,才能有效地解决问题3、不要勿勿忙忙将第一灵感编写为程序,应该在编码之前进行充分的思考、权衡和抉择,以找出最有效的算法和设计4、能用小的程序的话就不要编写大程序5、数据结构对软件的贡献极大:   a.

2008-03-24 09:08:00 1373 1

原创 C++经典图书

1、C++ Language ------------------------------ Bjarne Stroustrup. The C++ Programming Language (Special 3rd Edition) 《C++程序设计语言(特别版)》 Bjarne Stroustrup. The Design and Evolution of C++ 《C++语言的设计和演化》 St

2007-05-28 15:14:00 925

MIPS模拟器:PCspim

一个Windows平台下的MIPS模拟器。方便MIPS汇编语言的学习以及MIPS系统的开发

2009-06-08

MIPS汇编语言指南

一本介绍MIPS汇编语言、汇编器,链接器及其工作原理的书。同时还介绍了一款功能强大的MIPS模拟器的用法,对于学习MIPS编程大有好处。

2009-06-08

Eclipse Android 开发插件

Eclipse下用于开发Andriod手机应用的插件

2009-04-30

基于ASP的在线考试系统

这是本人编写的一个基于ASP的在线考试系统,大部分功能已实现,学生考试部分尚未完成,希望有兴趣的同辈和我一起完成它

2008-03-24

空空如也

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

TA关注的人

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