只显示主题贴

我没有用过Hibernate(可能不久之后就要用),不过本主题贴提到的类似问题我也遇到过。想一想通过纯的JDBC吧,设计时我也犹豫,是把事务做到每个操作里面呢,还是每个操作从来不管事务,事务在上一层做掉。在一个项目中某一功能部分,我写了一个DBUtil类,处理所有的数据库操作, public class DBUtil { public static String[] getMethodTargetList(Connection conn, String methodName) throws SQLException {} static void resetTargetE ...
  • 进入论坛 Java
去年初我的一位同事推荐我看一本小册子“最后期限”,若没弄错的话是你gigix翻译的吧?这里我要说一声谢谢。这本书初看起来其貌不扬,但读后给我留下十分深刻的印象,令人赞叹。毫无疑问它同时说明了两件事情:原文写得很好,翻译得也很好。我孤陋寡闻,从这本书知道Demaco这位令人敬佩的先驱。这本书写的生动传神,几乎到处都闪烁着智慧的思想,我决不小看它。尽管我主要从事技术,仍然感到受益匪浅。我曾经看过一些评论,我相信有些朋友低估了它的价值。
OO是一种认知论、方法论。它适合于对付复杂事物。不管背后的原因是什么,我们这个世界恰恰是复杂的(这种复杂性到底意味着什么,怎么描述,却有着众所周知的难度)。人类的思维是高级的,因为它有抓住复杂事物或现象的"质"的趋向,实际上体现了一种把复杂的东西简单化的能力,而OO体现了相似的特点。 OO并不是要把事情搞得不必要的复杂。OO恰恰有一种趋势,它要把事情变得简单。经过良好设计的OO系统中包含的复杂性往往反映了事物本身的复杂性。“抽象”是OO看待事物的核心要点。这种“抽象”能力要在复杂中抓住简单性。人们往往容易被表观的复杂性所迷惑,包括各种具体的OO技术、语言自身所带有一些复杂性。有可能把一些人 ...
  • 进入论坛 Java
引用 raimundo的文章你先去看看 rainundo这篇文章还是包含了一些启示思想。我以前在jdon上看过这篇文章。 他的一些关于复杂性和简单性的认识,比如对象模型的复杂性,关系模型的简洁性,OO不具有思维简洁性和计算简洁性,对此我没有什么反对意见。 但是rainundo也没有得出OO落后的结论。他只是指出了OO所存在的复杂性。据此还没有充足论据否定OO。 OO的价值不在于它处处适用,在各方面都是胜者。而是,它所表现出来的与生俱来的描述以及适应能力,使它在很多的场合足以值得考虑。在我看来,OO伟大的地方就在于其思想,它的威力来源于此。
  • 进入论坛 Java
庄某觉得我跟他玩“虚”的太多了。说实话,我是不打算在这里争论太久。这里我发表的贴子不多,但是几乎每次,我都尽量表达出来自内心的一种概括性的话来,毕竟篇幅不长,我不想浪费。另外,通过几个贴子你能解释清楚几个象这样的概念性、认知性很强的、因而模糊性很强的问题?很难! 但是我也不打算让他太失望。这里我首先来解释一下单一职责原理SRP。 SRP直观上并不难理解。它是一个简单、深刻、理想的原则。若有可能,我们就要遵从它。它包含了一种“分而治之”,“分解”的思想,包含了任何时候只关注一件事情的思想。简单地说,一个类只作一件事情。一个接口只关注一件事情。“一件事情”这个措辞体现了一种内聚性思想,在特定 ...
  • 进入论坛 Java
引用 庄表伟 写道: to:JavaCup Bob大叔我很佩服,就在于他明确的告诉我们,OO设计原则,不能一味的去遵循,会死在里面的 :p 但是,谁能告诉我,如何去遵循这些原则呢? 多做几个失败的项目就知道如何遵守了,呵呵。 Robert C. Martin的面向对象的设计原则总结得相当好。总的来说,相当深刻有力。我此前从没有看到过有这样的接近理论层面的总结。我稍觉遗憾的是他的书中的例子,不都是很恰当的。有些章节写的看起来令人费解和混乱。但是总的来说,我甚至没有发现这些原则中有哪一个不妥或令人质疑。 这里我要指出一点,面向对象的设计原则的地位是比设计模式高的。在某 ...
  • 进入论坛 Java
引用 OO是用于表达客观世界的模型和思考方法,这种麻烦正是客观世界的多样性决定的,如果我理解正确的话,这就是age0所表达的观点之一。OO提供的是一种思考和描述问题的方法,OO并不担负也不需要担负对模型正确与否检验。 我也有同感,age0的许多观点在我看来是正确的。例如,好的OO设计是困难的。在某种意义上,它往往正好反映了问题固有的复杂性和深刻性,要求你做出全面的考虑。 前面firebody指出了庄某对于抽象类和接口的认识问题,我也感到庄某可能在这些方面缺乏深刻认识。我曾经这样想过,若有人要求我用极简练的话说出这些年来学到什么,或者体会最深的是什么,我的回答可能是:抽象。 在我从事五六 ...
  • 进入论坛 Java
引用 这里就说一个很奇怪的逻辑,OO语言为什么还要和底层有那么深的瓜葛呢?面向对象的本意,不就是试图将程序员从底层开发的烦琐中搭救出来吗? 我说了,这并非一定要如此。但是,道理很明显,对于一个事物,如果你愈能深入地掌握它,你的评述将会愈加客观和有力度,因为你很清楚它是什么,它为何出现,如何实现它,它的优点和缺点。无论你是赞成,还是反对。 我以前好像听人说过,你掌握C++越深,那么转向Java就越难。反而一个初学编程的比你更能适应。让我怎么说好呢?至少对我来说完全不是这样。如果你对一个东西掌握的如此透析,你还迷信这种说法?只有对一门东西掌握的一知半解,才会有这种担心,因为你并没有真正掌握。 ...
  • 进入论坛 Java
我认为庄某的问题,就是局限于未经考验的“学术眼光”,这是问题产生的一个主要根源(我也有类似的错误倾向,比如,用数学的眼光去看物理,尽管我数学并不好)。 当今可以获得“知识”的途径很多,从学校课堂上,认证和培训上,市面上大量涌现、令人目不暇接的计算机书籍中,你都可以得到。然而,这里面最核心的要素是自主思考。在这个过程中有大量的筛选和沉积,那些留下的部分应该是你从内心深处认同的,它几乎变成了你的一部分。 一个人能够做到大量、快速地阅读和接收新知识,同时不乏自主思考和创新能力,这两者并无必然矛盾。相比而言,我更看重后者。技术更新看起来如此之快,客观上也一种压迫人们的趋势,使之几乎来不及思考和 ...
  • 进入论坛 Java
引用 还有就是面向对象,我怎么觉得我现在想问题,还是在用面向过程的思想,我觉得原因是不是在小程序中面向对象是不是体现不出来? 不是的,在中小程序中面向对象也可以体现出来的。 不要着急。也不要太刻意自己在用面向过程,还是面向对象。前面几位说的不错,需要积累经验的。新手要对自己宽松,这点很重要。等你有了二三年的经验,就会逐渐开朗的,并且很可能开始有了自己的主见。你再回头会明白一些原来令你困惑的事情。没错,这个过程需要不低于二三年,并且看来也没有什么更快的途径。当然,保持一颗学习的心能让你进步更快些。总之,计算机里面的问题、方法、技巧等和数学里的方法步骤很不一样,它是经验性的、实践性很强的东西。
  • 进入论坛 Java
tomswan
搜索本博客
最近加入圈子
存档
最新评论
评论排行榜