自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

切尔斯基

冰河洗剑,绝塞传烽,江山如画雪初晴

  • 博客(211)
  • 收藏
  • 关注

CruiseControl Enterprise 最佳实践 (2) : Keep your dependencies to yourself

CruiseControl Enterprise 最佳实践 (2) : Keep your dependencies to yourself©Copyright 2007 Julian Simpson. All rights reserved. 英文原文: Keep your dependencies to yourself I'm an Infrastructure Spec...

2007-10-15 23:06:00 69

CruiseControl Enterprise 最佳实践 (1) : Publish with a Publisher

CruiseControl Enterprise 最佳实践 (1) : Publish with a Publisher©Copyright 2007 Julian Simpson. All rights reserved. 英文原文: CruiseControl Enterprise: 10 Best Practices I'm an Infrastructure Specialis...

2007-10-11 23:56:00 99

synchronized : 规则, 推论与实践

14.3.Synchronization.Rule 1. synchronized:只影响多线程,不影响本线程 (Locks are owned per thread, so invoking a synchronized method from within another method synchronized on the same object will proceed with...

2007-07-23 22:32:00 175

Mingle: 做Agile, 用Mingle

我是Developer, 偶尔做些管理工作, Mingle是我用过的"管理"工具中最没有抵触情绪并乐于使用的产品, 相较于曾用过的ClearQuest, JIRA, Trac, MS Project等 想了一下, 可能是因为下列原因吧: 1, 简单 我讨厌文字堆砌, 密密麻麻的界面, 让人望而生畏的菜单, 这种界面和菜单都在向你暗示, 你的工作是枯燥的, 繁琐的, 从而让你情绪不高.然而M...

2007-06-20 06:44:00 274

Enhanced SAX Handler : 比 DOM 还简单的SAX Handler

快速与简单并非天生不可兼得, 相反, 简单的东西应该是快速的在使用 SAX 解析 XML 的过程中, 碰到了以下问题:SAX Handler 并没有想象中快, 尤其是文件比较大的时候SAX Handler 编写容易出错, 因为需要区别不同的元素, 需要很多判断才能拿到自己想要的信息没有统一的方法获取SAX Handler解析出来的信息这实际上反映了目前SAX Handler接口定...

2007-05-21 07:03:00 148

Thinking Everyday IV

1, 实际上 C# 2.0 已经部分的支持 mixin 了, 只要一直把类声明为 partial.2, 共享网络共享存储, 网格共享 CPU 计算周期和内存, P2P网络还共享带宽, 还有什么应该共享的?3, 必然如果你花 99% 的时间工作, 1% 的时间忙自己的事情, 你的Boss就会 凑巧的 必然的 在那 1% 的时间内 visit you.4,meta programmer产生其它...

2007-05-15 04:36:00 91

Configuration Pattern : 配置模式

IoC? Dependency Injection? No, Configuration Pattern! IoC 这个过于tricky的名字理所当然的引起困惑, Martin同学取了个自以为高明的"Dependency Injection", 实在是半斤八两, 五十步笑百步, 其实更大范围上, 它们都是"Configuration Pattern"的一种实现. (Configuration ...

2007-05-12 05:38:00 125

TDD: Tricky Driven Development

 命名测试用例的名字应该描述需求, 不要描述实现. 取决于你要沟通交流传递的信息, Test Case 有至少两个作用  检查你的产品代码是否按预期工作, 这由函数体来完成  表达你的预期,让阅读代码的人知道你的产品能够干什么,如何使用, 甚至如何设计的;这除了函数体的assert语句外,Test case的名字更是重要的手段 但我们...

2007-05-10 07:07:00 102

emma : 测试覆盖率低于指标的时候让Ant Build自动失败

    <target name="emma.reporting">       <emma enabled="true">           <report sort="+name" metrics="method:80,block:90,line:80,class:100">              <fi

2007-04-22 18:05:00 75

Axis : 远去前的备忘

1, 使用 1.1 axis本身可以servlet的形式集成到任何支持servlet的Web容器(web.xml) <servlet> <display-name>Apache-Axis Servlet</display-name> <servlet-name>AxisServlet</servlet-na...

2007-03-09 16:38:00 262

Essential Web Services: SOAP, WSDL and UDDI

1. SOAP: 与 Web Service 无关虽然SOAP可能是为了实现Web Service而被发明的,但实际上它可以被用在任何需要交换数据的场合(SOAP is an XML-based communication protocol and encoding format for inter-application communication)SOAP本身是语义独立的,基...

2007-03-09 15:34:00 95

Essential Security Tools: OpenSSL and Keytool

  See also: <<Essential Security: PKI, SSL and Xml Security>> 1、OpenSSL实践工作中需要配置使用SSL来双向认证并通信的FTP服务器,以OpenSSL和Java的keytool为例,来完成证书的制作:d:/openssl/mkcerts>openssl genrsa -o...

2007-03-09 13:57:00 105

Essential Security: PKI, SSL and Xml Security

 See also: <<Essential Security Tools: OpenSSL and Keytool>> 一、PKI与数据通信中的安全相关概念这几个概念是正交的,所谓正交,是指:彼此独立,互不影响,可独立演化 可两两结合使用 1. 保证安全通常需要解决三个问题 数据本身的机密性:数据...

2007-03-09 13:51:00 112

向 Spring.Net 提交的建议被采纳并实现了

向 Spring.Net 提交的建议被采纳并实现了: http://forum.springframework.net/showthread.php?t=752 http://opensource.atlassian.com/projects/spring/browse/SPRNET-375在 Spring.Net 1.1中, Spring.Objects.TypeConverters...

2006-12-09 19:34:00 72

Ruby and Rails 当时

1, String, 用起来很像字符数组2, 关于[m..n]和[m...n] class TestRuby < Test::Unit::TestCase Atog = ['a','b','c','d','e','f','g'] def test_sub_array assert Atog[2,4].length == 4 ...

2006-11-23 11:44:00 50

Get Mac Address in Java

基本目前没有纯Java的API来访问硬件信息,以后或许会有吧,谁知道 对Mac地址的需求部分来自UUID, 另有很大部分来自License Management,这真是一件无聊的事情,希望以后软件卖的都是服务,不是拷贝,省却这些麻烦 搜了一下,大体有三类解决分案 1, JDK6, JDK7 ? 详情可参见以下链接 http://bugs.sun...

2006-11-15 21:37:00 105

原创 The C# Programming Language Notes II

C# 2.0 的表达能力已经在我们的项目中得到检验,先看看1.1时哪些问题没弄明白: Q: 4,@ 取消转义 取消字符串转义尚可理解,不过连关键字都变成普通标识了,实在看不出有多大意义 A: 与其他编程语言建立接口时很有用 .Net多语言平台, foreach 在C++中不是关键字,可以作为函数名称,那么导入到C#程序中就是 @foreach  Q: 1

2006-06-27 21:07:00 2835 1

原创 The Python Programming Language Notes

 刚看完Python手册中的Tutorial部分,以类C程序员的角度观察了一下Python,文中涉及的所有Python与Java,C++不同的地方都只有一个原因:Python不是Java或C++,就像bitflying说的:“However, *DO* we really need another dynamic language just like JAVA? As a scripting

2006-02-23 10:58:00 4829 4

原创 The SICP Notes

  另请参阅Essential SICP Primer>>    1,John Locke:有关人类理解的随笔,1690心智的活动,除了尽力产生各种简单的认识外,主要表现在如下三个方面:1)将若干简单的认识组合为一个复合认识,由此产生出各种复杂的认识;2)将两个认识放在一起对照,不管它们如何简单或者复杂,在这样做时并不将它们合而为一;由

2006-02-23 00:48:00 4087

原创 Applicant PK Examiner

 拿到一份对应届毕业生的面试题:2. 问题:a)        请描述数组(array)和链表(link list)的相同点和不同点?答案:都是线性有序结构,数组是一块连续的内存区,可以通过index直接存取,访问速度较快,但是插入删除要移动其他单元。增加长度时可能需要重新分配内存。占用内存较少。链表每个存储单元有指针指到下一个单元,占用内存较多,插入删除方便快速,只需要重设指针,增加长度无需重新

2005-11-14 12:47:00 3364 4

原创 Annotation PK Interface

Interface在OO中处于核心地位,针对接口编程更是OOP的核心原则之一,但即使将该原则贯彻到底的COM/CORBA,依然面对大量的依赖、耦合,牵一接口而动全部客户的修改另一方面,Hurb Sutter说各种编程范式,包括面向对象,核心都是某种管理依赖性,降低依赖性的技术,那么.Net Attribute, XDoclet, Java Annotation代表的Attribute Orient

2005-09-16 10:26:00 4237 5

原创 Inside The C++ Object Model

期待C++的ABI转型(cast)其实是一种编译器指令,大部分情况下它并不改变一个指针所含的真正地址,它只影响“被指出之内存的大小和其内容”的解释方式;那么,什么情况下转型会导致指针的值发生变化呢?多重继承时转向不同基类?Global Objects的内存保证会在程序激活的时候被清0;Local Objects配置于栈中,heap objects配置于自由空间中,都不一定会被清0,它们的内容将是上

2005-08-17 15:41:00 3190 1

原创 Modern C++ Design

就像Ruminations on C++>>一样,>关注的首先是Design,它明确的将这种设计命名为了“基于Policy的编程”,而不再用“模块化”、“封装变化”等泛泛的术语;其次是C++,核心是TypeList;如果>是C++初创的十几年中Classic C++的设计指南的话,类似TypeList的思想则可能是最近几年和未来几年Modern C++的设计指南1,policy关键是将class

2005-08-10 14:10:00 4316

原创 模块系统与非侵入性

基础复杂性是守恒的,需要解决的基本问题始终是需要解决的;最终的复杂性,却取决于基础复杂性彼此间的依赖,如果互相依赖,最终将得到指数级的复杂性,而如果彼此独立,最终只是若干基础复杂性简单的累加,因此,程序需要更好的的Design和Organize,主要任务就是“降低模块间的依赖至最小”,而对开发效率有重大影响的,主要是编译期依赖,为此,人们发明了若干技术来降低编译期依赖1,模块系统C++继承了C的i

2005-08-05 10:05:00 5574 1

原创 Exceptional C++

(翻译的太差了)一、语法细节C++不允许修改内置类型的临时变量缺省参数根据静态类型获得重载的new和delete操作符永远都是静态的,不管你声明static没有二、惯用法选择前置递增,只有打算使用初始值时才使用后置递增,并且使用前置递增来实现后置递增注意由隐式转换创建的隐藏临时对象;避免这个问题的好办法,是使用explicit构造函数,避免编写转换操作符永远不要#include不必要的头文件;当前

2005-08-02 15:31:00 5174 3

原创 Ruminations on C++

可以把这本书重命名为>,也可以重命名为>,甚至还可以叫它>,总之,Koening谈到了以上所有方面,并且首先是编程思想和设计原则,其次才是C++,而其与Bjarne Stroustrup高度一致的思想,可以让人领略或者叹服一下C++社团的核心文化基本上没什么可摘录的,因为除了包含很多代码的章节,剩下的几乎可以通篇摘录;很多代码都在标准库中有对应版本,但无论如何,如果能手工重新实现这些代码,一定会获

2005-08-01 11:21:00 6678 2

原创 对象语义与值语义

一、值语义所谓值语义是一个对象被系统标准的复制方式复制后,与被复制的对象之间毫无关系,可以彼此独立改变互不影响实现 C++Java标准复制方式赋值、拷贝构造赋值,clone()基本数据类型包括整数,浮点数,布尔值,字符,指针等,全部为值语义包括整数,浮点数,布尔值,字符等,全部为值语义自定义类型不包含资源的自定义类型,系统提供的缺省拷贝构造函数与赋值操作符亦保证了值语义;包含资源的自定义类型,需要

2005-07-29 15:20:00 7116

原创 Essential SICP Primer

综述本书以Lisp语言本身为例,完整而辨证的讲述了“计算机程序”的各种形而上形而下的问题:程序语言本身的要素(原语、组合手段、抽象手段)程序的计算模型(代换模型、环境模型,迭代、递归)程序的世界观(对象式、函数式)程序如何繁殖进化(元语言抽象)程序如何执行(编译、解释)同时阐述了程序设计中常用的几大关键技术:寄存器与堆栈的使用(目前多数计算机的基本抽象)数据导向与通用型计算(涉及高阶过程,数据与过

2005-07-25 10:46:00 4829 1

原创 Essential C++ Primer

Please "Learning Standard C++ as a New Language", and "Speaking C++ as a Native"朋友的公司还在用C++的环境编写着“带类的C”代码,每天回来就倒苦水,我曾经工作过的一家公司也有动辄几千行的C风格的函数这里概述一下C++最最基本的用法,只能算是入门前的准备工作一、编程本身描述问题,用于与人交流

2005-02-22 11:39:00 3332 1

原创 Patterns Of Enterprise Application Architecture

1, 事务脚本 vs. 领域模型(Transaction Script vs. Domain Model)作者基于功能的复杂性来区分两种模式的使用时机,却忽略了另外一个因素:功能的增加领域模型将功能和数据置于同一个对象中,当需要增加新的功能时,只能通过为对象增加新的方法来实现,这造成了对象接口的不稳定,并无法在没有源代码的情况下进行功能增加而事务脚本则可以灵活的进行功能的扩展:增加一个

2005-02-18 08:31:00 4550

翻译 Language Oriented Programming (翻译)

Language Oriented Programming : The Next Programming ParadigmSergey Dmitriev, JetBrains 现在是软件开发中开始下一次技术革命的时候了,而这次革命的轮廓正变得越来越清晰。下一代编程范型也在接近我们,但仍然没有完全成形--不同的部分有不同的名称:Intentional programming, M

2005-02-17 08:59:00 10235 5

原创 Thinking in Current Programming Way

  一、我们要解决的问题功能的描述、表达,即功能的实现 结构的描述、表达,即功能的组织 业务的描述、表达,即最终的目标 二、我们对功能的描述、表达开始,人们用指令封装了电路来表达功能 后来,人们用函数封装了指令来表达功能 再后来,人们用库封装了函数来表达功能 那么现在,我们用什么来封装库去表达功

2005-01-25 08:55:00 4374 2

原创 Thinking in Current Programming Languages

一、现状软件越来越庞大,细节越来越多---->难以改错,改进开发周期越来越长---->浪费金钱、生命二、原因生产工具与任务之间的差距太大:要砍伐整片森林,手里只有斧子生产资料与产品之间的差距太大:要葱油鲤鱼,手里只有鱼籽葱籽要建立一个金融系统,手里只有C++Java编译器,UML“建模”工具要建立一个化学反应模拟系统,手里还是只有C++Java编译器,UML“建

2004-12-21 19:19:00 5331 8

原创 J2SE 5.0 Generic应用

 J2SE 5.0 Generic应用一:类型安全的functor 一、简介    函数式编程是非常常用和非常重要的一种编程范式,有的语言直接提供支持,C++则通过()运算符重载和模板提供了还算灵活的支持,而Java中的函数式编程则由于语言本身的局限没有得到广泛应用,Apache Commons Functor 项目是一个正在开发中的函数式编程库,但目前看来并不是类型安全的;J2SE 5.0提供了

2004-12-07 16:49:00 3656 1

原创 J2SE 5.0 的角落

1,dynamic cast类似C++的dynamic_cast操作符,C#的as操作符,Java 5.0提供了安全的dynamic cast功能,不同的是它以类库的形式提供的,并且类型不匹配时是要抛异常的,大大降低了可用性:Class.castpublic T cast(Object obj)Casts an object to the class or interface re

2004-11-30 18:31:00 5199 4

原创 持续集成 Java手册

持续集成 Java手册一、概念Martin Fowler的文章:Continuous Integration  中文翻译:持续集成二、工具传统工具:JBuilder,VisualSourceSafe,Rational ClearCase自动编译工具:Ant回归测试工具:JUnit代码检查工具:CheckStyle持续集成工具:CruiseControl三、步骤

2004-11-22 12:35:00 9776 1

原创 持续集成 .Net手册

  持续集成 .Net手册一、概念Martin Fowler的文章:Continuous Integration  中文翻译:持续集成二、工具传统工具:VisualStudio.Net,VisualSourceSafe,Rational ClearCase自动编译工具:NAnt,NAntContrib回归测试工具:NUnit代码检查工具:FxCop持续集成工具:

2004-10-11 18:15:00 10661 4

原创 独孤九剑与软件开发

1, 迂腐的编码规范  岳不群道:“令狐冲,背诵本派门规,好教林平之得知。”令狐冲道:“是,林师弟,你听好了。本派首戒欺师灭祖,不敬尊长。二戒恃强欺弱,擅伤无辜。三戒奸淫好色,调戏妇女。四戒同门嫉妒,自相残杀。五戒见利忘义,偷窃财物。六戒骄傲自大,得罪同道。七戒滥交匪类,勾结妖邪。这是华山七戒,本门弟子,一体遵行。”林平之道:“是,小弟谨记大师哥所揭示的华山七戒,努力遵行,不敢违犯。”岳不群微笑道

2004-10-06 11:49:00 7165 4

原创 姑苏慕容与软件开发

一,逆向工程那女子悠悠的道:“丐帮‘打狗棒法’与‘降龙十八掌’两大神技,是丐帮的不传之秘。你们‘还施水阁’和我家‘琅擐玉洞’的藏谱拼凑起来,也只一些残缺不全的棒法、掌法。运功的心法却全然没有。你家公子可怎生练?”阿朱道:“公子说道:这‘打狗棒法’的心法既是人创的,他为什么就想不出?有了棒法,自己再想了心法加上去,那也不难。”二,泛型算法外人不知底细,见到慕容氏“以彼之道,还施彼身”神乎

2004-10-06 11:47:00 4869 2

原创 C++批判的批判

1,typedef不必要?a,typedef提供了一层间接,面向对象语言中,接口掩盖了运行时不同具体类型间的差别,而typedef掩盖了编译时不同类型间的差别,却又不丧失类型安全性b,一般语言只能返回“值”,而typedef提供了返回“类型”的能力,这是模板元编程不可或缺的机制,除非模板元编程眼下也是不必要的2,导入在不同地点分别对#include,private成员放在头文件中,

2004-08-10 18:38:00 4515 2

空空如也

空空如也

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

TA关注的人

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