摘要:
Layers(层)模式,我想大家应该都不会陌生了。不管是硬件驱动程序、TCP/IP协议,还是J2EE应用软件的架构,层的应用几乎无所不在。我们专注到Web Application上来,三层以及多层结构的应用更是遍地开花。那么,层的强大之处在哪里呢?我们是否真的了解层的划分呢? 我们面对一个复杂问题的时候,都会想着将这个问题化整为零,分为一个个子问题,然后逐个击破。相应... 阅读全文
随笔档案-2005年07月
IronPython小事记
2005-07-28 11:55 by FantasySoft, 1360 阅读, 收藏, 编辑
摘要:
前天收到IronPython Team发来的邀请函,大致内容是说:O'Reilly Open Source Convention将于8月1日至8月5日在波特兰举行。届时,Jim Hugunin将与会做两次演讲,一次是长达三个小时的IronPython Tutorial,而另一次则是不到一个小时的IronPython 1.0的简单介绍。面对这样诱人而遥远的技术盛宴,我只能看着直咽口水... 阅读全文
关于数据访问模式(四)—— Active Domain Object模式
2005-07-26 17:58 by FantasySoft, 3088 阅读, 收藏, 编辑
摘要:
古人云:温故而知新。在讨论新的数据访问模式之前,我们先来回忆一下上一篇Post中提到的Data Accessor模式吧。 Data Accessor提供了一种解耦合的策略:将数据库访问的细节进行逻辑抽象并封装于单一组件中,从而降低数据访问和数据模型之间的耦合性。对于应用程序而言,它并不了解具体的数据访问操作,如建立数据库连接和执行SQL语句等,但是它仍然了解数据模型的... 阅读全文
关于数据访问模式(三)—— Data Accessor模式
2005-07-25 18:34 by FantasySoft, 4110 阅读, 收藏, 编辑
摘要:
拐弯抹角了两篇Post,说了一下重要性和很常见的一个词汇:Metadata,终于都到言归正传的时候了。今天我们先来看看数据访问模式当中使用得很频繁的一种模式——Data Accessor(也称为DAO,数据访问器)。 不管你是用着ADO.NET还是JDBC,你都可以直接使用SQL(在ADO.NET中使用SqlCommand,JDBC则是使用Statement)去访问数... 阅读全文
关于数据访问模式(二)—— 说说元数据
2005-07-22 15:59 by FantasySoft, 2745 阅读, 收藏, 编辑
摘要:
[前言] 在这个系列的第二篇,我依旧不务正业,只字不提具体模式。元数据是一个很基本的概念,如果大家看到有关O/R Mapping的文章,都可能会看到元数据这个的名词。因此,在这篇中,还是先说说元数据吧。 提到元数据(Metadata),在IT行业中,应该是无人不知无人不晓了。即使你不是在IT行业里面耕耘,也会或多或少的元数据打过交道,因为在Web的世界中,元数据几乎是... 阅读全文
关于数据访问模式(一)—— 数据访问模式的重要性
2005-07-21 18:23 by FantasySoft, 4527 阅读, 收藏, 编辑
摘要:
在企业级应用当中,数据是企业资源的重要组成部分。应用程序的开发也是围绕数据的组织和存储、数据的访问、数据的处理、数据的表示进行的。由于这几个方面为整个应用程序系统提供了服务(Service),因此我们可以把这几个方面统称为数据服务(不知道用这样的名词去概括是否恰当)。 我们从企业应用程序常用的三层或者多层结构可以看出,每一层都无法离开数据,每一层都拥有一个独有的关注点。正是由于数据... 阅读全文
也说Functional Programming
2005-07-20 12:33 by FantasySoft, 3222 阅读, 收藏, 编辑
摘要:
看了Lu Feng兄写的4个程序员的一天以及很多朋友对此post的回复,不禁让我兴奋不已。因为我想起了Python,毕竟在Functional Programming方面又怎么能少了Python这条可爱的小蟒蛇呢? 偶没有Lu Feng兄那么强的表达能力,能够将语言的特性如讲故事一般娓娓道来,只能随手写两行代码来展示一下Python在Functional Progra... 阅读全文
Cached JSP引发的问题与思考
2005-07-15 18:59 by FantasySoft, 1202 阅读, 收藏, 编辑
摘要:
在最近的Project中遇到了一个表面上看起来蛮奇怪的问题。具体问题是这样的,在Project中,所有跨模块的constant都会定义在一个名字叫Constants的interface中,然后在JSP里面,我们也会相应地使用到这些constant。 每当更改了Interface里面某一个constant的值的时候,在JSP中并不会反应出来,从而引起了很多混淆。由于Constants是... 阅读全文
可爱的Ant——利用Ant获取文件列表
2005-07-15 14:47 by FantasySoft, 4829 阅读, 收藏, 编辑
摘要:
提到Ant,你一定会想到它在自动构建方面有着举足轻重的地位,于我而言,也仅仅是将其作为一个自动构建的工具来使用。由于各个流行的IDE都内部集成了对Ant的强大支持,因此,我使用Ant的方式就真的简单得不能再简单了:在网上找一个build file,然后针对自己的project稍作修改。这样,我就可以在IDE窗口中拖动鼠标点两下,就可以很方便地完成 project的构建了。真的太简便... 阅读全文
从onfocus方法看浏览器的兼容性
2005-07-12 22:01 by FantasySoft, 5488 阅读, 收藏, 编辑
摘要:
在Web Application的开发测试当中,由于存在不同的访问终端——浏览器,因此需要在不同浏览器下运行应用程序,以检验应用程序在不同的浏览器下的外观及功能上是否保持一致。尽管现在的浏览器之间的兼容性已经是相当不错,但是在对Javascript的支持上就有相当大的区别。今天就在onfocus方法上碰到了钉子。具体的代码是类似这样的: ... 阅读全文
非技术(三)——比较优势
2005-07-09 11:36 by FantasySoft, 1386 阅读, 收藏, 编辑
摘要:
在非技术(二)——机会成本中,我们提到了机会成本这个概念,而另外一个概念——比较优势则被用来描述不同生产者的机会成本之间的差异。 正是因为比较优势的存在,贸易也就随之产生了。理性人会从事拥有比较优势的生产活动,然后通过贸易去获得其他生活必需品。在讨论比较优势之前,我们先来了解与比较优势相对的一个概念——绝对优势。 绝对优势是从投入方面去考量生产者的生产效率,如果一个生... 阅读全文
也谈代码规范
2005-07-07 21:35 by FantasySoft, 5824 阅读, 收藏, 编辑
摘要:
看了湘南和也写的程序编码应保持良好的规范(C#) ,我也忍不住要说上两句。这两年来,做了几个项目,技术没有长进多少,对于规范倒是有了不少的体会。 湘南和也提到的四点规范是比较重要的,我再补充几点。 1、常量的命名:常量使用大写字母,各个单词之间通过下划线的划分。譬如BASE_SALARY; 2、变量的命名:变量的首字母小写,之后的单词的首字... 阅读全文
也说魔数与魔字符串
2005-07-06 23:22 by FantasySoft, 2574 阅读, 收藏, 编辑
摘要:
看了叙远兄写的.net中的魔字符串,还有birdsome的评论,颇有启发。 所谓魔数和魔字符串就是在代码中直接使用某一个数字或者字符串,而不是常量。譬如一个很简单的根据职位计算薪水的方法: public int getSalary(String title, int grade) { if ("Programmer".equals(title)) ... 阅读全文
非技术(二)—— 机会成本
2005-07-05 00:09 by FantasySoft, 1313 阅读, 收藏, 编辑
摘要:
正所谓术业有专攻,随着社会的发展,现代的学科分支越来越来细,而每一个分支所涵概的内容浩如烟海,学科与学科之间的差别也越来越大。若要高屋建瓴地去发现学科之间的联系,触类旁通,唯有抓住万变不离其宗的思想了。譬如计算机领域中的很强调的抽象,在物理研究当中也是同样重要的,牛顿三大定律就来源于对现实世界的抽象。把握了思想,你会发现,现实世界中很多事物之间都是有联系的。软件开发中很多思想不仅能... 阅读全文