代码改变世界

随笔分类 -  Thought Ware

关于数据访问模式(四)—— Active Domain Object模式

2005-07-26 17:58 by FantasySoft, 3059 阅读, 收藏, 编辑
摘要: 古人云:温故而知新。在讨论新的数据访问模式之前,我们先来回忆一下上一篇Post中提到的Data Accessor模式吧。 Data Accessor提供了一种解耦合的策略:将数据库访问的细节进行逻辑抽象并封装于单一组件中,从而降低数据访问和数据模型之间的耦合性。对于应用程序而言,它并不了解具体的数据访问操作,如建立数据库连接和执行SQL语句等,但是它仍然了解数据模型的... 阅读全文

关于数据访问模式(三)—— Data Accessor模式

2005-07-25 18:34 by FantasySoft, 4064 阅读, 收藏, 编辑
摘要: 拐弯抹角了两篇Post,说了一下重要性和很常见的一个词汇:Metadata,终于都到言归正传的时候了。今天我们先来看看数据访问模式当中使用得很频繁的一种模式——Data Accessor(也称为DAO,数据访问器)。 不管你是用着ADO.NET还是JDBC,你都可以直接使用SQL(在ADO.NET中使用SqlCommand,JDBC则是使用Statement)去访问数... 阅读全文

关于数据访问模式(二)—— 说说元数据

2005-07-22 15:59 by FantasySoft, 2742 阅读, 收藏, 编辑
摘要: [前言] 在这个系列的第二篇,我依旧不务正业,只字不提具体模式。元数据是一个很基本的概念,如果大家看到有关O/R Mapping的文章,都可能会看到元数据这个的名词。因此,在这篇中,还是先说说元数据吧。 提到元数据(Metadata),在IT行业中,应该是无人不知无人不晓了。即使你不是在IT行业里面耕耘,也会或多或少的元数据打过交道,因为在Web的世界中,元数据几乎是... 阅读全文

关于数据访问模式(一)—— 数据访问模式的重要性

2005-07-21 18:23 by FantasySoft, 4506 阅读, 收藏, 编辑
摘要: 在企业级应用当中,数据是企业资源的重要组成部分。应用程序的开发也是围绕数据的组织和存储、数据的访问、数据的处理、数据的表示进行的。由于这几个方面为整个应用程序系统提供了服务(Service),因此我们可以把这几个方面统称为数据服务(不知道用这样的名词去概括是否恰当)。 我们从企业应用程序常用的三层或者多层结构可以看出,每一层都无法离开数据,每一层都拥有一个独有的关注点。正是由于数据... 阅读全文

也谈代码规范

2005-07-07 21:35 by FantasySoft, 5817 阅读, 收藏, 编辑
摘要: 看了湘南和也写的程序编码应保持良好的规范(C#) ,我也忍不住要说上两句。这两年来,做了几个项目,技术没有长进多少,对于规范倒是有了不少的体会。 湘南和也提到的四点规范是比较重要的,我再补充几点。 1、常量的命名:常量使用大写字母,各个单词之间通过下划线的划分。譬如BASE_SALARY; 2、变量的命名:变量的首字母小写,之后的单词的首字... 阅读全文

也说魔数与魔字符串

2005-07-06 23:22 by FantasySoft, 2557 阅读, 收藏, 编辑
摘要: 看了叙远兄写的.net中的魔字符串,还有birdsome的评论,颇有启发。 所谓魔数和魔字符串就是在代码中直接使用某一个数字或者字符串,而不是常量。譬如一个很简单的根据职位计算薪水的方法: public int getSalary(String title, int grade) { if ("Programmer".equals(title)) ... 阅读全文

体验模式的乐趣(二)—— 连接池与Decorator模式

2005-06-30 22:26 by FantasySoft, 1938 阅读, 收藏, 编辑
摘要: 在《深入浅出Hibernate》的第一章中,作者讨论了设计一个面向应用的持久层所涉及到的方方面面,其中一个重要的方面就是Connection Pool(连接池)的使用。以JDBC为例,当你需要对数据表中的数据进行操作的时候,你必须通过Driver去建立与Database的 Connection。由于建立Connection的过程的开销是相当可观的,如果仅仅是在执行了几个简单的SQL... 阅读全文

从银行ATM机取款失败说起

2005-02-05 23:49 by FantasySoft, 9059 阅读, 收藏, 编辑
摘要: 昨天晚上,我到中国银行的一台ATM机上取钱。插卡,输入密码,接着可供选择的操作出现:人民币提款,查询余额以及退卡。因为人民币提款选项的出现,所以我可以得知该ATM机是有现金可以提取的。于是很自然的,我先查询了余额,然后根据余额取相应的钱。当我选择了人民币提款,输入需要提取的金额之后,ATM机似乎开始罢工了,因为半晌都没有什么反应。大约两分钟左右,屏幕赫然显示出“通讯故障,操作无法执... 阅读全文

体验模式的乐趣(一)—— Command模式

2005-01-08 23:53 by FantasySoft, 1692 阅读, 收藏, 编辑
摘要: 模式是什么?说实在的,对于模式,我了解得很少。但是,我知道,模式是用来解决软件设计问题的,是用来增加软件设计的灵活性和可维护性的,总之,它应该是程序员经过大量开发工作之后,对于解决问题的经验总结;模式不是用来生搬硬套的,也不是拿来故弄玄虚的,它是用来解决问题,从而让我们更加享受编码的乐趣。我无意直接去讲解什么模式,因为我还没有那样的实力,我能够讲的就只有模式给我带来的顿悟了。咦,怎... 阅读全文

三周谈

2005-01-07 22:00 by FantasySoft, 1330 阅读, 收藏, 编辑
摘要: 不知不觉中,在HSBC PDC上班已经三个星期有余了。现在再来谈谈对PDC的感受,尽管很多还不甚清晰,但是也比初来咋到时候的认识要成熟多了吧。 这三个星期的工作相对其他员工而言,真的是非常轻松。因为只是self-study和上一些Java和J2EE的training course,而我自己在过去的一年里一直都是做着与Java和J2EE有关的项目,这些需要掌握的内容虽然... 阅读全文

关于测试和调试

2004-09-26 23:59 by FantasySoft, 1000 阅读, 收藏, 编辑
摘要: 没有想到《数据结构、算法与应用》一书如此之强调测试,曾经以为只有在Kent Beck的书中,才会将测试摆在一个极其重要的位置。尽管书中对于测试与调试的讲述并不是太多,却将要点讲述得特别的清楚,让自己对于测试和调试有了些许的顿悟。 测试是为了尽可能的发现错误,这个是一定要牢记的。为了实现这个目标,测试数据的选择就显得尤为重要了。毕竟能够作为一个函数的输入条件的数据集合实... 阅读全文

读《C++大师Lippman:我对中国程序员的忠告》有感

2004-09-24 10:29 by FantasySoft, 2570 阅读, 收藏, 编辑
摘要: 读了《C++大师Lippman:我对中国程序员的忠告》,让我获益良多,同时也多少有些感慨。 首先,Lippman对于软件开发的理解是很有深度的:“软件是脆弱的……开发软件所需要的时间太长了,并不是说我们的编程人员不合格,是因为这个工作不符合人类的自然本性,因为你必须像计算机那样进行线性的思索。”纵观计算机语言的发展,从最原始的机器码到现在的支持Object-Ori... 阅读全文

无以规矩,不成方圆

2004-09-09 01:37 by FantasySoft, 2009 阅读, 收藏, 编辑
摘要: 虽然,我相信技术之间有很多相通的地方,但是我不得不开始承认从Java到C++,从J2EE到DirectX,从高层应用开发到底层开发,这个跨度太大了。不论从WinMain函数的两个修饰符PASCAL和WINAPI中,还是从可以通过数种方法获得一个DirectDraw7接口中,我都发现了我所面对的世界是那样的无序,或者说,是有非常非常多的规则,我还没有办法及时去follow。不管怎么样... 阅读全文

对于ASP.NET与J2EE框架的一点想法

2004-08-27 20:01 by FantasySoft, 3289 阅读, 收藏, 编辑
摘要: 没有用ASP.NET来开发Web Application也有一段时间了,虽然她的轮廓在我的记忆中已经开始模糊,但是她的美丽还是深深烙在我的心中,不曾磨掉。 让我再一次想念ASP.NET源于在Web Application要实现的一个功能:从数据库中筛选出一些数据,并显示出来。聪明的您或许会觉得这个功能很简单,是的,真的很简单,不管是ASP.NET还是使用JSP+Ser... 阅读全文

所谓的Dumb Question

2004-08-15 17:16 by FantasySoft, 1476 阅读, 收藏, 编辑
摘要: 为了能够更好的理解WebWork中的处理机制,我拜读了几位牛人写的一本书《Java Open Source Programming With XDoclet, JUnit,WebWork, Hibernate》[1] 。几位牛人在Understanding Design and Deveopment Philosopies章节中提出了三条开发项目的principle: ... 阅读全文

什么是Law of Demeter

2004-08-15 14:22 by FantasySoft, 2167 阅读, 收藏, 编辑
摘要: 今天一如昨日,继续对WebWork进行小打小闹式的研究。在听了Raimundo老大一番醍醐罐顶般的讲解之后,我觉得要理解WebWork(XWork)巧妙的设计,还是得从IoC看起。于是,我开始阅读WebWork官方文档中关于IoC的部分。 在阅读的过程中,我发现了一个有趣的短语:Law of Demeter。文档对IoC的优势的描述,有这样一条: Adh... 阅读全文

朝得银弹,夕死可矣(续)

2004-08-01 15:33 by FantasySoft, 1372 阅读, 收藏, 编辑
摘要: [前言]:今天是7月30日,离开公司也正好一个星期。而今天也是我呆在深圳的最后一天,再过不到24小时就要踏上北上的征途了。离职之后,在深圳的窝里呆了几天,对于软件开发,尤其是项目的管理,有了一些新的想法,遂延续前篇[1],将项目中的不足之处记于此,以作日后警醒之用。 1、需求不明确;项目进行到现在,也有一年有余了,而进行需求分析和概要设计的时间也有近一年了。虽然我们... 阅读全文

傲慢与偏见

2004-07-29 23:30 by FantasySoft, 769 阅读, 收藏, 编辑
摘要: 还记得三月份的时候,XML之父提出了.NET's three flaws。那时看了之后,写下了这样的文字:(别嫌它旧哦,呵呵~~~) theServerSide.com一直都是一个很热闹的地方,很多的thread都有长长的回复,尤其是一些牛人发起的thread。 最近最热闹的Thread应该当属关于XML之父Tim Bray 指出的.NET th... 阅读全文

朝得银弹,夕死可矣!

2004-06-04 00:49 by FantasySoft, 3672 阅读, 收藏, 编辑
摘要: 孔子云:朝闻道,夕死可矣! 我想说,朝得银弹,夕死可矣!可是,有银弹吗?没有! 虽然我步入软件开发行业才半年有余,但是却有幸参与了一个开发团队有80多人的大型项目的开发。作为一个初出茅庐者,本该抱着学习的心态,学习项目成功的经验,可是我却在挫败的痛苦不断地总结,不断的幻想。通过这半年多的开发体验,我得出了一个结论:项目中的人的因素是最重要,而作为项目管理者,能够打造... 阅读全文