
技术文章
文章平均质量分 73
gigix
这个作者很懒,什么都没留下…
展开
-
跳入JAVA
跳入JAVA透明 译我看到,很多人在问:我是否应该学习JAVA;我看到,很多人在问:JAVA和C++哪个更好? 我想我没有资格回答这些问题。但我想CUJ有资格。本文出自CUJ的import.java.*专栏 ——以CUJ而开设JAVA专栏,这本身已经证明广大C++程序员对JAVA的重视程度。究竟哪个好?好在何处?是否应该学?应该怎样学?应该学什么?……太多的问题。希望本文能起抛砖引玉之原创 2001-10-15 15:34:00 · 2696 阅读 · 0 评论 -
[Java细节]"hi there".equals("cheers !") == true
不知道这个标题是否让读者产生一种想打我的冲动。至少今天我的主管被我用这个小把戏诧异了一把,当他看到"hi there".equals("cheers !") 的结果居然是true时,脸上的表情实在是可爱。OK,言归正传。System.out.println("hi there".equals("cheers !")); 这个看来再显然不过的句子,输出的结果居然是true。聪明的读者,你知道是为原创 2003-05-30 15:03:00 · 2741 阅读 · 6 评论 -
AOP != Interception
这是一篇“老”文章。最近在研究AOP,也尝试了JBoss的AOP解决方案,故而对AOP的核心思想、Interception体系结构在AOP中的地位产生了兴趣。Ted的这篇文章阐述精到,令我受益良多。——————————Setting the Story Straight: AOP != Interception Recently, a number of authors and write原创 2003-08-11 11:13:00 · 2739 阅读 · 0 评论 -
魅力四射的“小玩意”——PicoContainer
Jon Tirsen在他的weblog里说,他看到一个叫PicoContainer的有趣项目,并立刻投身其中。这个自称“IoC(Inversion of Control)type 3”的微容器有什么吸引人的魅力?PicoContainer / NanoContainer Ive recently joined two new projects:http://www.picocontainer原创 2003-08-20 11:03:00 · 2985 阅读 · 4 评论 -
编写build.xml的12个原则
我不喜欢这个title的翻译,它的原文应该是“通往build.xml天堂的12条路”。为了让读者更容易理解,我最后还是选择了这个通俗……俗气的title。需要注意的是,这篇weblog来自“fate”hani……12 paths to build.xml nirvana1 - Always provide shell launchers for ant. A s原创 2003-11-06 00:28:00 · 3305 阅读 · 1 评论 -
持续集成
Martin Fowler & Matthew Foemmel著 透明 译 英文原文版权由Martin Fowler拥有 Original text is copyrighted by Martin Fowler 原文链接:http://martinfowler.com/articles/continuousIntegration.html Martin Fowler Chief Scient原创 2003-01-28 16:55:00 · 792 阅读 · 0 评论 -
留一只眼睛看Continuation
首先考虑一个应用场景:优快云正在进行的“中国开发者2005大调查”(有奖品拿的,欢迎参加)。这个调查总共要填大概是8张表单,填写的过程中间还有一定的逻辑判断(例如:可能因为表单1中的某个选项而导致表单4不必填写)。这个流程实现的难度,以及实现完成之后业务逻辑的散乱程度,不难想象。我并不打算说我已经找到了解决这一问题的办法,只是把最近一周以来看到、想到的一些东西列在这里,作为一个参考的入口。考虑另原创 2005-08-10 12:01:00 · 3061 阅读 · 7 评论 -
Why Ruby is Simple
下面这段话原文摘录自《The Ruby Way》一书,大意是“为什么说Ruby是一种简单的语言”。摘录它的原因有二:(1)myan刚才走到我旁边说:“我感觉Ruby还是一个相当复杂的语言,它的语法并不像C那么简练。”(2)这段话引用了大量的名人名言,算得上技术传播的一个好范本。So one of Rubys virtues is simplicity. Shall I quote other t原创 2005-08-30 16:19:00 · 4344 阅读 · 8 评论 -
我需要敏捷吗:不必关心敏捷的六大理由
当“敏捷”日益成为整个软件业的热门词汇,作为优秀的开发者、成功的项目经理,我们是否有足够的理由不去关心敏捷?我们帮你列出了6个“不必关心敏捷”的理由,以及对这些理由的深入解释。如果这些理由仍然不能打消你对敏捷的兴趣,首届“敏捷中国”开发者大会即将来到你的身边。你现在就可以报名参加本次大会,与Martin Fowler和众多敏捷专家面对面交流。 理由1:项目需求? 客户即上帝!原创 2006-05-16 10:18:00 · 5759 阅读 · 19 评论 -
小语种介绍:LISP/Scheme
自从裘宗燕教授翻译了《计算机程序的构造和解释》(Structure and Intepretation of Computer Programs,SICP)第二版之后,这本MIT计算机系的编程入门教材开始越来越多地受到中国开发者的关注。同时受到关注的,还有它所介绍的函数式编程(Functional Programming),以及其中范例所使用的Scheme语言。时光倒转到30年前,1975年,原创 2006-06-11 14:11:00 · 9969 阅读 · 11 评论 -
用Selenium测试web应用
问题1:当用户在网上商店购物时,一次完整的购买流程需要用户进行好几个步骤的操作(包括选择商品、填写订单信息、选择支付方式、确认订单等),涉及四到五个页面以及数十个类的协作。如何在开发过程中始终确保该流程能够正确无误、畅通无碍?问题2:客户提出需求:在显示货物列表时,应该首先按货物名称排序,名称相同的货物再按照价格排序。我们已经实现了这一功能,并且有单元测试作为保障,但如何让客户看到我们的成果?原创 2006-06-11 14:09:00 · 16885 阅读 · 13 评论 -
火花:敏捷释放软件价值
题记:何谓“火花”所谓“火花”,我是指一个灵感、一个漂亮的句子、一次心灵的震动,这样稍纵即逝的“点子”。那也许是Martin Fowler的一次演讲,也许是从一个技术词汇联想到另一个德语的单词,或者是郭晓想出的一句口号(也就是本文的题目)。已经有太多次,我为这样的“火花”而激动不已。其中的一些火花变成了我的文章,另一些只催生了blog上的只言片语,更多的火花就这样稍纵即逝了。要抓住火花,需要一种支原创 2006-06-08 01:36:00 · 3184 阅读 · 0 评论 -
《应用Rails进行敏捷Web开发》样章试读
这是第一本关于Ruby on Rails的著作。全书主要内容分为两大部分。在“构建应用程序”部分中,读者将看到一个完整的“在线购书网站”示例。在演示的过程中,作者真实地再现了一个完整的迭代式开发过程,让读者亲身体验实际应用开发中遇到的各种问题、以及Rails如何有效解决这些问题。在随后的“Rails框架”部分中,作者深入介绍了Rails框架的各个组成部分。尤为值得一提的是本部分的后几章:作者先原创 2006-06-23 14:39:00 · 5019 阅读 · 1 评论 -
[讨论]Ruby/Rails是虚妄还是真实
纯月部落有这么一篇文章,内容大抵是对Ruby on Rails表示不屑一顾、以及对吹捧RoR表示愤慨的。总体而言,作为一个尚未走红的技术,就能让人感到愤慨,这很不容易。就好像去年发生的一场讨论,可以看作是从另一个角度对Ruby/Rails的褒奖。(“负暄琐话”也参与了这场讨论。优快云 Blog现在的讨论氛围是比较热烈的。)纯月在底下继续进行的讨论中这样说:“如果你是实际作项目的,我打赌,你绝对不原创 2006-06-27 16:01:00 · 7953 阅读 · 16 评论 -
[讨论]谈谈Ruby on Rails的性能问题
关于Ruby/Rails的讨论仍在团结友好而卓有成效地进行着。纯月摘要翻译了一篇“Rail开发中常见的性能问题”,但他对这篇文章有着明显的、无意或有意的误读。在前面列举的5个注意事项中,后3项:3 repeating identical computations during request processing(在处理请求过程中反复做同样的计算操作)4 reading too often原创 2006-06-28 11:16:00 · 7088 阅读 · 2 评论 -
Ruby on Rails真实案例三则
(正如前一篇文章里所许诺的,这里将列出三个采用RoR开发的真实案例。以下内容出自《应用Rails进行敏捷Web开发》一书第22章。)22.7 案例分析:每天运行的Rails要证明Rails的伸缩性,最好的办法莫过于考察一个确实有效伸缩的应用程序。在这一节中,我们将考察三个真实应用遇到的性能问题,以及它们如何解决这些问题。37signals开发的Basecamp(www.basecamp原创 2006-06-27 16:07:00 · 8044 阅读 · 3 评论 -
Hessian,轻量级的Java Remoting方案
项目里遇到一个问题:由于安全性的需要,必须由一个程序专门负责查询某一数据库,然后通过安全的信道(例如HTTP)将查询结果传到安全区域之外的application。为了解决这个小小的remoting问题,我们差点要动用EJB。不过幸亏朋友推荐,找到了Hessian这个轻量级的remoting on http工具。Hessian其实很像web service,只不过它的协议不是SOAP,而是它自己原创 2003-12-12 01:38:00 · 8639 阅读 · 2 评论 -
调试器,敏捷过程的害群之马
当你习惯了测试驱动的开发(Test-Driven Development,TDD)之后,你会发现自己越来越少地使用调试器(debugger)——如果你发现程序里有什么问题,你不应该用调试器去抓bug,而是应该用一个单元测试用例来揭示问题的所在。由于存在细粒度、完整覆盖的单元测试用例,每个bug都相当清晰,于是很少会需要各种巧妙的调试手段了。——————————Uncle Bobs Sof原创 2003-12-02 09:54:00 · 3245 阅读 · 0 评论 -
深入浅出OOD(一)
深入浅出OOD(一)撰文/透明(本文首发于免费电子杂志《C++ View》。)有物昆成,先天地生。萧呵!谬呵!独立而不改,可以为天地母。吾未知其名,字之曰道。吾强为之名曰大,大曰逝,逝曰远,远曰反。道大,天大,地大,王亦大。——《道德经》,第二十五章软件不软从60年代的软件危机,到今天传统软件工程方法处处碰壁的处境,都说明一个问题:软件不软(Software is Hard原创 2002-08-18 15:54:00 · 2528 阅读 · 1 评论 -
AOP能做什么?
还在《程序员》做编辑的时候,我曾经主持过一次关于AOP的技术专题。凭着传说中的“敏锐的技术嗅觉”(呵呵,听起来像狗鼻子),我感觉AOP会是一个很有用的东西,尽管当时还不知道具体有什么用。(拉句废话:《程序员》正在招聘技术编辑,如果你认为自己吹牛的本事胜过编程,又善于胡思乱想——就像我这样,我会建议你去尝试一下这个职位。)我的朋友恶魔曾经多次说起“GP与‘面向事件编程’”这个话题。按照我的理解,原创 2003-05-30 14:53:00 · 5433 阅读 · 0 评论 -
什么是RSS
RSS(Rich Site Summary或者RDF Site Summary)是一种用于网站内容集成的技术。这种最初源自浏览器“新闻频道”的技术,现在却在企业门户(portal)、企业应用集成(EAI)等方面得到了更加宽广的用武之地。————————————————What is RSS?By Mark Pilgrim RSS is a format for syndicating原创 2003-06-10 12:12:00 · 2682 阅读 · 0 评论 -
Java的简单之道
Java应该变得更简单——或者说,更易用。目标是没有争议的,但达到目标的途径却颇可商榷。在持久层和业务层,EJB向人们证明:在J2EE领域,Sun没有能力像微软之于.NET那样提出一揽子完整的解决方案;力图一次性解决所有问题的EJB到最后只能是一种可供参考的选择——如果不是更糟的话。Java的简单之道不在这个方向上。充分利用Java语言本身的简单性,充分发挥OOD的威力,充分借助Open So原创 2003-11-19 12:21:00 · 3531 阅读 · 2 评论 -
DTO的迷思,以及“对象”和“数据结构”
“对象不应该有public的field,应该用getter/setter将field封装起来。”我们对于这个规则已经太熟悉,熟悉得完全忘记了它的由来。Uncle Bob提出了一个问题:完全用于传输数据的DTO是否需要getter/setter?实际上,在很多时候,DTO并不是一个“对象”(我们用这个词表示“数据与行为的组合体”),仅仅是一个“数据结构”——把数据从一个地方带到另一个地方。给“数据结原创 2004-02-27 10:25:00 · 4067 阅读 · 3 评论 -
singleton模式的一种变体:double-checked locking
singleton模式的一种变体:double-checked locking在单线程下,我们的singleton多半是这样(java):class Singleton{ private Singleton(){ //... }; private static Singleton instance = null; public static Singleton getInstance {原创 2001-10-12 20:25:00 · 2501 阅读 · 4 评论 -
持续集成
持续集成Martin Fowler & Matthew Foemmel著 透明 译© Copyright Martin Fowler, all rights reserved原文链接:http://martinfowler.com/articles/continuousIntegration.html中译本下载:http://gi原创 2002-02-04 08:59:00 · 7603 阅读 · 0 评论 -
“测试驱动的软件开发”,与测试无关
Test-Driven Development Is Not About TestingNovember 3, 2003SummaryI am always on the look out for good questions to ask candidates in an interview. Not the "How many oranges can I fit in this roo原创 2003-11-07 01:03:00 · 2450 阅读 · 0 评论 -
程序员的“素质”是什么?
在优快云看到一个很有趣的帖子(http://www.youkuaiyun.com/develop/article/28/28005.shtm),里面说同一个功能,中、日两国程序员写出的代码天差地别:JAPAN: Dim gridItemIndex As Integer comment Dim currentPageIndex As Integer comment Dim pageSize As原创 2004-05-22 21:24:00 · 9478 阅读 · 44 评论 -
从面向对象到模式再到真正的面向对象
从面向对象到模式再到真正的面向对象 Alan Shalloway 著 透明 译(译序: 本文摘自Design Patterns Explained: A New Perspective on Object-Oriented Design一书的前言部分。通过本文,读者可以大概了解学习设计模式的过程和效果。同时,作者谦虚谨慎的态度也是非常值得我们中国软件开发者学习的。 译者保留本文一原创 2001-08-28 22:46:00 · 3689 阅读 · 1 评论 -
模式与XP
模式与XP Joshua Kerievsky著,Gigix 译 概述 模式和极端编程(XP)都为软件设计、开发者提供了无法用金钱衡量的帮助。但是迄今为止XP大量关注于重构(refactoring),而对模式只字不提。在这篇文章中,我问“为什么”,并且最终描述出模式怎样以XP的方式更好地实现、以及XP怎样因为包含对模式的使用而变得更好。 致谢 非常感谢Kent Be原创 2003-02-26 09:47:00 · 1887 阅读 · 1 评论 -
“泛型Java”,一个美丽的hype
“泛型Java”,一个美丽的hype今天,Sun发布了J2SE 1.5新特性的一个原型实现版本。这个运行在J2SE 1.4上的插件提供了J2SE 1.5主要的几项新特性,例如类型安全的枚举、自动装箱/拆箱、增强的for循环等,当然还有最受关注的JSR-14,泛型。在试用了这些新特性之后,我终于对Java的泛型彻底失望了。首先,我们来看看泛型Java的经典用法:import java.u原创 2003-06-01 23:03:00 · 2629 阅读 · 1 评论 -
J2EE持久性:JBoss选择了JDO
J2EE应用中,数据层用什么技术?这是个争论已久的问题。Sun的资料中总是强调:“我们希望开发者使用Entity Bean管理数据的持久性问题。”但是很多人认为Entity Bean并不是一个好的解决方案,他们或许更喜欢JDO(Java Data Object)。当然,还有些人宁可使用第三方的O/R mapping框架(例如Hibernate)。持久化管理,这虽然不是我擅长的技术范围,不过看着别人原创 2003-06-27 13:41:00 · 1943 阅读 · 0 评论 -
Avalon:面向组件的程序设计(COP)
“面向组件的程序设计”(component-oriented programming,COP)已经被鼓吹得足够久了,这让它多少有点像一个buzzword。什么是COP?如何实现一个COP的系统?avalon是一个不错的参考。What is COP?IntroductionComponent Oriented Programming, or COP for short, takes原创 2003-08-13 16:21:00 · 2626 阅读 · 0 评论 -
Configuration,J2EE通天塔的混乱之源
Java应用程序获得配置信息的方式可谓千奇百怪,配置文件的安排也毫无章法,每个人或许都有自己的一套读/写配置信息的习惯做法。“如果应用程序体系结构是巴别塔,配置就是让巴别塔项目陷于混乱的‘语言’。”————————If architecture were to be the tower of babel, configuration is its languageSatya Komat原创 2003-11-27 00:33:00 · 2650 阅读 · 1 评论 -
Selenium 0.7.1 Is There
Almost, actually. For those who solicitous, please check-out from the svn repository and give it a try.0.7.1 have a few exciting features along with it. Element Highlighting. Highlight the curr原创 2006-07-19 08:50:00 · 4617 阅读 · 1 评论