程序设计
文章平均质量分 68
idilent
这个作者很懒,什么都没留下…
展开
-
语言学与面对对象的设计
本来打算把这篇文章的题目叫做使用语法分析进行面对对象的设计,但是写在这里的语法分析很容易使人(尤其是程序员)想到一种编程语言的语法,而不是我在这里所说得我们日常生活中所使用的语言中的语法(但是为了方便起见,我在后面仍使用语法分析作为这种面对对象设计方法的名称)。也许使用使用语法分析的方法进行面向对象的设计并不是一个新的概念,但是在我收集资料的过程中只在浙大的教学网站上发现了关于这一方法的一些资原创 2003-07-30 08:19:00 · 1270 阅读 · 0 评论 -
无语程序设计2、3事
用程序实现用户的要求的设计有很多种,相信10个程序员对一个普通的问题可能提出5、6种不同解决方案,在这里不是说一些巧妙的设计,而是说一些实在让人无语的解决方案。 1、登陆系统的设计:首先根据密码查询,得到结果之后,遍历结果,从中找出用户名,返回该用户。无语指数:9 2、更新数据:为了统计更新多少行,将一个表中的数据全部拿出,使用循环遍历,遇到要更新的,计数器加一。无语指数:原创 2009-03-09 11:05:00 · 541 阅读 · 0 评论 -
DAO层的一点儿设计细节
客户网站流量的提高,导致几次系统内存崩溃,察看日志发现,是DAO层对数据库过量请求引起的,居然发现一个SQL中,使用了13个jion,被雷到了。 而今天一个同事为另外一个项目的增添新功能,明明只需要一个表内的数据,却对数据库请求了5次,其中三次是彻底的无用功,一次仅仅为了验证数据的存在,而是用join并把一个表中的所有字段拿出,无语了。 我们的几个项目都是一种构架,WebServi原创 2009-01-30 15:52:00 · 1743 阅读 · 0 评论 -
继承与包含在程序设计中的使用
最近做了一点小东西,需求是这样的:需要对一个网站进行访问、数据分析已及提交网页表单。根据需求,我创建了一个类,用来专门处理网站底层的访问以及表单的提交,结构如下:class MyHttpRequest{ private int statusCode; private int sessionString; private Cookie cookie; public String get(St原创 2008-10-29 09:58:00 · 1356 阅读 · 2 评论 -
软件开发过程中的事务处理(二)
在上一篇软件开发中的事务处理 中我们已经比较了将connection的打开、关闭以及提交和回滚放在service层和DAO层,而笔者认为,放在service层更为合理,这样可以更有效的控制事务,但是这样的做法带来了一些弊端,其中一个就是异常,因为DAO层不可避免地要掷出异常,而在写操作的方法中,我们则需要catch这个异常,同时把connection回滚。那么如何来处理这个问题呢?我个人的做法是这原创 2007-10-10 13:48:00 · 1411 阅读 · 0 评论 -
软件开发过程中的事务处理(三)
在使用Hibernate时,我们会发现Hibernate在装载一个对象的时候有两个方法可以使用:load和get,而这两个方法的调用方法基本上是一致的,而唯一的区别就是,当Hibernate没有找到对象时,load抛出异常,而get仅仅返回一个null。为什么Hibernate采用这样的设计呢?在这里笔者也不敢妄加揣测,但是这一设计却可以很好地解决我们在软件开发过程中的事务处理(二) 中遇到的问题原创 2007-10-11 10:20:00 · 1346 阅读 · 0 评论 -
软件开发中的事务处理
最近在CSDN里面看到了几个关于软件开发过程中的如何处理事务的帖子,而自己在前一个工程中也遇到了类似问题,以为事务处理部分设计的不当,造成了以后软件的维护和升级的很多麻烦。事务简单的理解,就是一系列相关操作,而工程中希望这一系列操作,可以一起被执行,或者一起被回滚,而不希望出现前几步成功,后面失败的情况。做典型的例子就是银行转账,从一个户头减去一定数额,在另外一个加上相应数额,两个步骤需要同是成功原创 2007-09-20 11:53:00 · 1785 阅读 · 1 评论 -
也说验证码的识别
验证码的出现就像是抓妖降魔的道士一样,是因为魔的出现而产生的,然而俗话说道高一尺,魔高一丈。所以验证码识别也相应出现了。验证码的识别,应该属于OCR的一种,但是比普通得OCR相比,可能有些地方会简单一些,比如所库会小很多,有些地方又会复杂一些,因为识别码的制造者会不停的增加识别的难度,添加躁点,扭曲字体等等。但是总体说来,验证码的识别设计思路应该和OCR大致相同。通过两天的研究和动手,也做出了一个原创 2007-09-07 15:33:00 · 4009 阅读 · 2 评论 -
一个简单用户系统的设计
在一个成熟的系统中应该包括以下三个层次:1、用户界面2、企业逻辑3、DAO层另外就是需要一些实体对象用于各个层之间的交互以及数据的存储,这里有些人会把一些专门用于交互传递数据的对象划分成DTO。对于我个人,一个有一种反对使用DTO的观点在里面,这个问题在本篇文章中不做讨论。在各个开发论坛中会不断地涌现出关于上面我提到的三个层的讨论,而这些讨论也根据面向不同的问题而导致最佳解决方案的偏差。设计就像生原创 2007-01-04 11:11:00 · 1820 阅读 · 0 评论 -
JUnit测试经验四则
刚刚加入一个项目,由于项目已经进行到最后阶段,因此我的大部分工作时进行JUnit的测试,每天写大量的JUnit从而从另外的角度得到了对项目工程的认识1、必须要有明确的需求,并且根据需求首先要写JUnit测试程序,在这些程序中将各个需求具体化,程序化,一旦需求改变,首先更改的是JUnit测试程序,或是增加或是减少,或者根据需求改变assert方法的各个变量。如果不按照这个步骤去做,做到后来很可能是在原创 2006-03-09 11:11:00 · 3108 阅读 · 11 评论 -
使用面向对象技术解决商品打折问题(一)
在现实中,商品打折是一个非常普遍的现象,在这里,我们抛开打折背后的各种动机和目的,来分析如何在我们的程序中实现这个过程,并且通过面向对象的技术,使得我们的系统更灵活,更具有可扩展性,为以后的维护和升级工作打好基础。首先介绍一下我们目前使用的系统的简单情况,这是一个网上购物系统,销售人员为提高销售额,决定为每一个购买用户提供一个打折号码,这样,这个用户在下次购买我们的产品时,就可以通过这个打折好原创 2004-09-16 23:23:00 · 5487 阅读 · 20 评论 -
使用面向对象技术解决商品打折问题(二)
我们现在看在checkout方法中究竟要使用要使用CodePromotion这个类提供的那些信息,首先可以肯定,getPromotionAmount这个方法是必需的,而且我们希望能够得知某一定但为什么要打折,所以getDescription这个方法也是一定要有的,而user()是对promotion code使用过后进行的处理。所以一个更好的方法是定义一个接口,checkout方法中的参数类型使这原创 2004-09-18 23:09:00 · 1727 阅读 · 8 评论 -
使用oo设计聊天室
OO对于现在的程序员来说是一个非常熟悉的概念,而OO也的确能够带给我们和我们的程序很多好处,代码的重用节约了大量的开发时间,而一个真正使用OO进行设计和编码的软件,也必将在升级和维护的过程中从OO方面受益匪浅。 然而OO对于大多数开发者(尤其是那些使用Delphi等高效工具的程序员)来说可能还仅仅停留在比较肤浅的认识阶段,往往在开发过程中只是简单的使用了开发工具提供的类,只是简单的对这些开发工具提原创 2004-07-11 10:59:00 · 2791 阅读 · 5 评论 -
你写的代码真的对吗?
俗话说,文无第一,武无第二,作为程序员,也很难比出高低,但是代码的质量去可以让人一眼看出水平的高低,有些代码不仅仅是质量不好,运行效率低,甚至在一些情况下会导致系统的错误。还记得几年前,项目经理发信说过,需要做defense coding,就是预防代码发生不可预见的错误。那么让我们来看看一下代码的区别。代码范例1:String configurationName = "Back原创 2013-06-20 16:05:48 · 824 阅读 · 0 评论