Eric Raymond谈模块化原则,胶合层和面向对象的缺陷 (转)
Eric Raymond谈模块化原则,胶合层和面向对象的缺陷 (转)[@more@][译者注]前不久翻译了Eric Raymond对几大开发语言的评价, 引起了网友的热烈讨论。其中涉及到Eric Raymond对OO的批 评,引起大家的争议。为此我再翻译他的一段相关文字,请 大家阅读思考。 模块化 —— Keep it clean, keep it simple 程序员所面对的复杂性日益增大,而划分代码的方法也有一个自然的发展过程。一开始,软件不过是一大块机器代码。最早的过程化语言带来了“依据子例程划分代码”的观念,接下来我们发明了程序库,为不同程序提供
是非请让人们评说 (转)
是非请让人们评说 (转)[@more@] 是非请让人们评说 我是一个程序员,现在在深圳工作,在软件行业工作了8年,经历了一些风风雨雨,但最近发生在我身边的一件事让我如入梦境,我感到非常困惑,也非常难受,特把这件事的来龙去脉在这里叙述给各位朋友,请各位朋友谈谈对这件事的看法,同时也希望通过这件事能给广大的技术从业者一点启示! 1、 我于2002年4月参于“某派出所综合业务信息平台”项目组的开发工作(该派出所曾在2002年10月左右在某报以“全国第一个信息化派出所在深出现”为题进行报道),2002年9月担任项目经理(
评测报告:.NET的性能仍然远远落后于Java (转)
评测报告:.NET的性能仍然远远落后于Java (转)[@more@]评测报告:.NET的性能仍然远远落后于JavaXML:namespace prefix = o ns = "urn:schemas-microsoft-com:Office:office" /> 每个人都看过各种不同的benchmark,有证明.NET比Java快的,也有证明Java比.NET快的。在某些人的手里,benchmark是一面魔镜,透过它能看到想看的东西。所以,当这位名为Cameron的先生要开始在.NET和Java之间做一个benchmark时,他认为自己就是在浪费时间,因为肯定会有人来证明.NET比Java快。 顺便地,Cameron先生提出了10条“不要用于在.NET和Java之间做选择
COM组件的多线程测试-Apartment模型(附录) (转)
COM组件的多线程测试-Apartment模型(附录) (转)[@more@]对象跨线程调用附录 S1 忽略 S2 Main Thread ID:2328 ThreadID:2564 对象Test2。所在线程ID:2564 线程ID:2564,begin time: 15:41:13 ThreadID:2680 对象Test2。所在线程ID:2680 线程ID:2680,begin time: 15:41:13 ThreadID:2800 对象Test2。所在线程ID:2800 线程ID:2800,begin time: 15:41:13 ThreadID:2488 对象Test2。所在线程ID:2488 线程ID:2488,begin time: 15:41:13 ThreadID:2396 对象Test2。所在线程ID:2396 线程I
COM组件的多线程测试-Apartment模型 (转)
COM组件的多线程测试-Apartment模型 (转)[@more@]COM组件的多线程测试-Apartment模型XML:namespace prefix = o ns = "urn:schemas-microsoft-com:Office:office" /> 版本信息: 版本 作者 修正/记录 Ver 1.0 Zzyx 2003-5-16。创建 关键字: com 多线程 线程模型 single Apartment CoInitialize CoInitializeEx COINIT_APARTMENTTHREADED COINIT_APARTMENTTHREADED 测试对象 组件对象线程模型为Apartment。 组件代码: STDMETHODIMP CTest2::Test(long nCnt) { printf(" 对象Test2。所在线程ID:%d",GetC
面向对象语言基础二(1) (转)
面向对象语言基础二(1) (转)[@more@]面向对象语言基础二(1)XML:namespace prefix = o ns = "urn:schemas-microsoft-com:Office:office" /> 摘要: Jeff Friesen在他的面向对象语言基础系列的第二部分中对字段和方法进行了探索。在本文中,你将理解字段,参数,局部变量以及学会怎样定义和访问字段及方法。 名词术语,提示和告戒,作业以及此专栏的其他信息,参看相关的“学习指南”。(6400字) 俗话说:一叶障目、不见森林。这句话指对总体了解的过分详细的。那么在介绍Java类和对象时,还有什么比过
面向对象语言基础 一 (转)
面向对象语言基础 一 (转)[@more@]面向对象语言基础 一XML:namespace prefix = o ns = "urn:schemas-microsoft-com:Office:office" /> 学习如何定义类和创建对象 摘要: 杰福·弗里森(Jeff·Friesen)以Java面向对象的特性连载了他的Java旅程系列。在这期,他介绍了面向对象编程以及如何定义类和从这些类创建对象。此外,Friesen成功的兑现了他对javadoc研究的许诺。参见:“Java文档化”。 名词术语,提示和告戒,作业以及此专栏的其他信息,参看相关的“学习指南”。(3500字) 回顾80年
Prefer C++(三) (转)
Prefer C++(三) (转)[@more@]附注:XML:namespace prefix = o ns = "urn:schemas-microsoft-com:Office:office" /> 1、 用C++编写驱动DLL时的一些注意事项(.c和.cpp联编时注意事项与此同) 一般来讲首先要在声明导出函数的头文件中使用extern “C”{},以确保函数名称的匹配。对于驱动中的导出函数大多由操作系统定义,这一步由OS负责。以2000下打印处理器中的EnumPrintProcessorDatatypesW为例进行说明: 该函数在winspool.h 中的声明为: BOOL WINapi EnumPrintProcessorDatatypesW( IN LPWSTR pName,
CASTOR JDO 指南 (转)
CASTOR JDO 指南 (转)[@more@]CASTOR JDO 指南 现在,越来越多的企业级开发项目中需要一种在众多关系数据库上进行对象关系映射的技术。遗憾的是,个体组织内部的解决方案很难构建,而对其进行长期维护和扩展就更难了。虽然有了EJB技术,但是我发现在某些情况下使用EJB技术往往过于重量级了,这时候适合的解决方式应该是轻量级的为好。本文中,我将向您介绍了使用 Castor JDO 的基础知识, Castor JDO(Java 数据对象 (Java Data Objects))是一种开放源码的、百分之百 Java 关系对象映射框架,Castor同许多其它技术结合使用,
关于FSO静态生成技术的应用范围之解决思路 (转)
关于FSO静态生成技术的应用范围之解决思路 (转)[@more@]自从fso技术出现,我们可以静态生成网页。可以生成后缀为"htm,html..."也可以生成 ".ASP"的网页。其实只要是静态生成,即使生成的文件名称后缀是".asp"的文件,也应 该理解为静态生成,因为读取的时候毕竟不需要读取数据库。 静态生成的优缺点: 静态生成的优点:读取生成页面的时候不需要读取数据库,这样对于访问量极大的网站 ,这个优点是无可取代的。所以纵观国内(国际)大型新闻站点,新闻发布系统统一使 用的是静态生成,他们也是考虑的这个原因。或许有的朋友提出可以
xCBL简介 (转)
xCBL简介 (转)[@more@]XML:namespace prefix = v ns = "urn:schemas-microsoft-com:vml" />Office:office" />ASPectratio="t" v:ext="edit"> 关于xCBL XML普通商业库(xCBL) 是不断完善中的XML标准。xCBL是支持健壮的、可重用的创作的文档架构,可以促进全球贸易进程。 xCBL作为”mother code”,是能够为所有参与电子商务的群体理解的语言。 xCBL的可协作性使得分布在世界各地的商务活动可以很容易的在多个领域间交换信息资源。 xCBL定义了购买者,提供者的基本访问形式,同时提供商业服务的支
Java异常处理之陋习展播 (转)
Java异常处理之陋习展播 (转)[@more@]你觉得自己是一个Java专家吗?是否肯定自己已经全面掌握了Java的异常处理机制?在下面这段代码中,你能够迅速找出异常处理的六个问题吗? 1 OutputStreamWriter out = ...2 java.sql.Connection conn = ...3 try { // ⑸4 Statement stat = conn.createStatement();5 ResultSet rs = stat.executeQuery(6 "select uid, name from user");7 while (rs.next())8 {9 out.println("ID:" + rs.getString("uid") // ⑹10 ",姓名:" + rs.getString("name"));11 }12 conn.close(); // ⑶13 out.close();14
C++未眠夜----我学习C++的心路历程 (转)
C++未眠夜----我学习C++的心路历程 (转)[@more@] C++未眠夜----我学习C++的心路历程 曾经因为自己的一些帖子在网上引起了大家对C++学习和使用的讨论,再回想起自己接触C++三年多,一年前鼓足勇气重新开始再次学习的情景,现在的我心中多了几份感慨,更多的是觉得自己学习的过程颇具普遍性,几次想把自己的一些心得写下来,对自己算是个总结和回顾,对别人即使谈不上帮助但相信也能算是个学习C++的案例分析吧。但开始几次提笔总是过于追求完美,想把所有的东西都写下来,但几次提笔和几次放弃后,我终于打消了“完美”的这个想法,
因存储过程参数类型不匹配而造成OleDbCommand的不可用(二) (转)
因存储过程参数类型不匹配而造成OleDbCommand的不可用(二) (转)[@more@](续 .NET/develop/read_article.ASP?id=18426">因存储过程参数类型不匹配而造成OledbCommand的不可用一) 表格二,断点二处的内存状况 -XML:namespace prefix = o ns = "urn:schemas-microsoft-com:Office:office" /> comm {System.Data.OleDb.OleDbCommand} System.Data.OleDb.OleDbCommand transaction null System.Data.OleDb.OleDbTransaction cmdText Test string cmdType StoredProcedure System.Data.CommandType update
因存储过程参数类型不匹配而造成OleDbCommand的不可用(一) (转)
因存储过程参数类型不匹配而造成OleDbCommand的不可用(一) (转)[@more@] 因存储过程参数类型不匹配而造成OledbCommand的不可用XML:namespace prefix = o ns = "urn:schemas-microsoft-com:Office:office" /> Key words: Stored Procedure/OleDbCommand/ado.NET/Parameter/Type/存储过程/参数/类型 在讨论OleDbCommand出错之前,还是想了解以下OleDbCommand一些运行机制。在数据库里面有如下存储过程: ALTER PROCEDURE dbo.Test @Name nvarchar(50), @Age smallint AS select @Name, @Age 使
Commerce Server 2002 安装错误二例 (转)
Commerce Server 2002 安装错误二例 (转)[@more@]Commerce Server 2002 安装错误二例XML:namespace prefix = o ns = "urn:schemas-microsoft-com:Office:office" /> Key words Commerce Server 2002/CS2002/.NET Enterprise Servers/Pup Packages/安装错误 Commerce Server 2002是微软出品的专门用于电子商务站点开发的.Net服务器。使用Commerce Server 2002 进行电子商务站点的开发(B2C or B2B)将大大降低开发难度和开发周期。Commerce Server 2002 已经为电子商务站点提供了基于.Net framework的结构框架,结
jPortlet 1.0--开放源代码Portlet容器已经出台 (转)
jPortlet 1.0--开放源代码Portlet容器已经出台 (转)[@more@]科技新闻jPortlet 1.0--开放源代码Portlet容器已经出台 XML:namespace prefix = o ns = "urn:schemas-microsoft-com:Office:office" /> 开放源代码的portlet容器jPortlet的api与IBM websphere Portal server所定义的API甚为相似。 jPortlet是portlet容器的一个开源实现,现在标准的portlet API框架可以自由下载。 就像servlet要运行在一个应用服务器中一样,Portlet是运行在portle服务器中的portlet容器之内的组件。这些web组件结合在一起构成一个合成页面,比如说一个新
快速配置Apache2.X + Tomcat 4.X + Linux/Windows (转)
快速配置Apache2.X + Tomcat 4.X + Linux/Windows (转)[@more@] 快速配置apache2.X + tomcat 4.X + Linux/windows XML:namespace prefix = o ns = "urn:schemas-microsoft-com:Office:office" /> ------作者 Mailto:z95888@yahoo.com.cn">赵建青 当您选择自由软件像linux、apache、tomcat 等进行应用开发时。其相关配置是令许多程序员头疼的事情,往往由于文档不全,版本不同造成不必要的时间浪费。现在我把Apache2.x+Tomcat4.x集成与负载均衡配置过程、经
Hibernate参考手册(第二章) (转)
Hibernate参考手册(第二章) (转)[@more@]hibernate参考手册 第二章 SessionFactory配置XML:namespace prefix = o ns = "urn:schemas-microsoft-com:Office:office" /> 2.1 系统配置 .NET.sf.hibernate.Configuration对象的实例描述了由应用程序的Java类型向关系数据库类型进行映射的完整集合。这些映射从各式各样的XML映射文件编译而来。你可以通过直接建立实例来获得Configuration对象的实例。下面有一个从两个XML配置文件所定义的映射中建立数据存储的例子: Configuration cfg = new Configuration() .a
XML与ASP编程(一) (转)
XML与ASP编程(一) (转)[@more@]将XML数据组合进ASP应用程序的时候,需要做的第一件事是访问XML文件的内容。从技术上来说,在ASP环境中,读入并管理XML文本的主要方法有三种:创建MSXML对象,并且将XML文档载入dom;使用服务器端嵌入(Server-Side Include,SSI);就如同访问其他文本文件一样,使用FileSystemobject来访问XML文档;第四种方法是在客户端创建内置的数据岛,有关的内容以后讲解。一、使用DOM为了在ASP代码中使用DOM,需要创建一个microsoft XML分析器的实例,它像任何别的COM组件一样被实例化,在页面的开始处顼要增加几行