今天读了《软件设计与哲学,做人》http://www.jdon.com/jivejdon/thread/33237.html这个帖子,感觉程序员既要务实,也要务虚,务实就是实实在在的做技术多实践,务虚就是多多研究理论,用理论来指导实践,用实践来验证理论。只要这样 虚虚实实,才能在软件这行有长足发展。笔者曾经一度迷恋技术,认为技术就是一切,忽略了理论虚的这一面的学习和研究,这种思想曾经给自己带来很多无谓的麻烦和困扰。理论和实践两者不可偏废,就如硬币的两个面一样。搞技术的人一定要多看看《老子》《周易》等这些哲学书籍,这样可以使自己的眼光不至于过于浅显,使自己不管是做技术还是做人不过于拘泥一某个点某 ...
今天上午比较忙 ,下午回到家里感觉有些累,躺到床上就睡着了,醒来时发现已经5点了,突然想起来紫金山上洋槐花已经开了,小时候在老家还摘过,好多年都没有吃过洋槐花做的蒸闷饭了,那个香啊,童年的美好时光又浮现在眼前,早上还打算着要摘些回来做饭吃,现在还没有行动呢。马上穿上衣服上山摘槐花,紫金山就离家不到300米的地方,几分钟就到了,看着高高的洋槐树,怎么摘呢,难道真的要爬树么,这样会把衣服弄得很脏而且很费力气了。先走走看看,看看是不是有比较矮的树,这样我就可以不必要花很大力气了,正在边走边转悠,突然发现在草丛中淹没着一个用来勾洋槐花的竹竿,哈哈,上天作美啊,得来全不费功夫啊,有了勾洋槐花的竹竿,摘槐 ...
将 POJO 发布成 Web 服务 XFire 框架中,我们有两种方式将 POJO 发布成 Web 服务: 一种方式是直接使用 Web 服务接口和 Web 服务实现类(POJO)来发布; 另一种方式是基于 JSR181 标准和注释技术将被注释的 POJO 发布成 Web 服务; 下面的章节中我们将学习使用第一种方式来完成 POJO 的 Web 服务发布。我们将使用经典的 ”Hello World!”例子来演示将 POJO 发布成 Web 服务所需要的步骤,不过我们不再是简单的访问一个 Java 方法来输出 ”Hello World!&rd ...
        Java 社区一直试图将 POJO 的作用发挥到极致,降低 Java 应用实现的难度,最近的尝试是将 EJB3.0 建立在 POJO 之上;另一方面,SOA 是目前 Java 社区炙手可热的名词,非常多的企业都在努力应用和实施 SOA;XFire 为这两方面的需求提供了一种魔术般的解决方式,我们很快能够发现使用 XFire 创建和发布 Web 服务可以直接基于 POJO,将烦人的继承关系和一大堆其他可能的约束丢在一边。  POJO、SOA 概述    被重新审视的 POJO ...
许多人在研究SAAS,尤其是做传统管理软件的。看着阿里软件,看着Google Office,看着Salesforce,眼馋了。 但是,我经常问他们一个问题,你们研究SAAS的什么?很多人却讲不明白,看个热闹,大呼别人过瘾,自己却没有自己动手的开始。 许多人对SAAS有误区。说SAAS就是给中小企业用的,说SAAS就是CRM,还有的说SAAS只能做些边缘应用,如OA什么的。有的说SAAS在EAI方面不行,有的说SAAS在定制方面不行。这些都是看现状看表面得出的结果。 SaaS是Software-as-a-service(软件即服务)的简称。软件即服务。这才是SAAS。我要接下来的讨论就是在 ...
在国内做管理软件的,用友就是一个标杆。 用友有U8,金蝶就有K3;用友有NC,金蝶就有EAS。用友有通系列,金蝶就有KIS。 时代在发展,曾经辉煌的管理软件行业成了没有人关注的壁花。大家都在关注互联网,关注嵌入式,关注PPG哄孩子,关注阿里巴巴和垂直行业网,关注如家分众橡果国际,关注网游、搜索、地图、QQ,关注通信手机3G。 阿里软件横空出世,Salsforce打起SAAS,顿时让过惯了既定游戏规则的管理软件大佬一下子不知道怎么玩了。 中小企业曾经是块最难啃的肉。没有钱投资软件硬件,没有钱雇佣IT维护人员,虽数量众多却失之无味弃之可惜。阿里携商品展示、沟通(IM、邮件、短信)、支付、营 ...
们做管理软件的,主要核心就在数据存储管理上。所以数据库设计是我们的重中之重。为了让我们的管理软件能够稳定、可扩展、性能优秀、可跟踪排错、可升级部署、可插件运行,我们往往研发自己的管理软件开发平台。我们总是希望去学习别人的开发平台(如用友或金蝶或SAP),但我们却总是感叹管理软件业务处理细节繁多,而数据库管理软件却简单的SELECT、INSERT、DELETE、UPDATE四个命令就搞定。我们多希望有一天能做出一个架构,也可以这么简单就搞定管理软件。我们往往研究别人的架构,却忘记了我们身边我们最熟悉的数据库的架构。所以,今天,我想带领大家一起剖析一下数据库的架构,来探索数据库的架构思想。而我本人 ...
我上一篇文章《用友 U9 SOA Ready》写完后,有朋友说里面的企业管理软件平台架构讲的非常好,可惜被用友的内容给遮盖了,希望我能独立成篇,真正把企业管理软件平台架构讲透。于是就成了这篇博文的动笔之因。 企业管理软件,由于进入门坎低,各行各业各层次企业都需要,做面向企业应用比做面向个人应用要赚钱多,好销售,所以中国内地有相当大部分的程序员在从事着企业管理软件的开发。 尤其是接项目的软件公司,这类公司往往在中国当前软件行业占很多。3-4个或5-6个程序员,老板拉来什么项目就做什么项目,进销存、费用报销、销售管理、客服维修工单、请假考勤管理等等为大部分单子内容。 有朋友留言:就10来万的 ...
一,ping      它是用来检查网络是否通畅或者网络连接速度的命令。作为一个生活在网络上的管理员或者黑客来说,ping命令是第一个必须掌握的DOS命令,它所利用的原理是这样的:网络上的机器都有唯一确定的IP地址,我们给目标IP地址发送一个数据包,对方就要返回一个同样大小的数据包,根据返回的数据包我们可以确定目标主机的存在,可以初步判断目标主机的操作系统等。下面就来看看它的一些常用的操作。先看看帮助吧,在DOS窗口中键入:ping /? 回车,。所示的帮助画面。在此,我们只掌握一些基本的很有用的参数就可以了(下同)。      -t 表示将不间断向目标IP发送数据包,直到我们强迫 ...
今天看到一则新闻,“新疆南部的塔里木盆地是中国地表最干旱的地区,幸运的是该盆地地下,不仅储藏着石油,还拥有巨大的地下水资源,地质工作者相继在塔里木盆地北缘和罗布泊发现与三峡水库库容相当的“地下水库”。这些水资源如果合理开采,能有效地缓解当地用水矛盾”。据地质学家考证,当年新疆罗布泊沙漠曾经是海洋,现今确是茫茫沙海。然而昔日的贫瘠沙海将不贫瘠,将不在是不毛之地,因为找到了水,发现了石油,他将会成为新疆的一个新的增长极。从这则新闻我更加感慨沧海桑田,世事轮回,乾坤无常,这个世界上唯有不变的是变化。周易认为大千世界都是在64卦中循回,每时每刻每种事物都处于自己卦象中,这个卦的时间也许是一天也许是一年 ...
要快乐的度过充满困难的一生——任总给陈珠芳及党委成员的一封信 陈珠芳及党委成员:   华为不断地有员工自杀与自残,而且员工中患忧郁症、焦虑症的不断增多,令人十分担心。有什么办法可以让员工积极、开放、正派地面对人生?我思考再三,不得其解.    我们要引导员工理解、欣赏和接受习惯高雅的生活习惯与文化活动,使他们从身心上自己解放自己。这次我们不惜使用为客户提供的服务,作一次演示,让大家看到高雅的生活无处不在。这些生活场景、生活方式北京、上海已经比较多,只要你愿意多花一些钱就可以实现。 员工不能成为守财奴,不能成为金钱的奴隶,丰厚的薪酬是为了通过优裕、高雅的生活,激发人们更加努力去工 ...
提供 一种方法 顺序访问 一个聚和 对象中的各个元素,而又不暴露其内部的表示或实现。 迭代器模式让我们能游走于聚合内的每一个元素,而又不暴露其内部的表示。把游走的任务放在迭代器上,而不是聚合上。这样简化了聚合的接口和实现,也让责任各得其所。 1.迭代器允许访问聚合的元素,而不需要暴露它的内部结构。 2.迭代器将遍历聚合的工作封装进一个对象中。 3.当使用迭代器的时候,我们依赖聚合提供遍历。 4.迭代器提供了一个通用的接口,让我们遍历聚合项,当我们编码使用聚合的项时,就可以使用多太机制。 package pattern; import java.util.ArrayList; import ...
在一个方法中定义一个算法的骨架,而将一些步骤延迟到子类中。模版方法使子类可以在不改变算法结构的情况下,重新定义算法中的某些步骤。模板就是一个方法。更具体的说,这个方法将算法定义成一组步骤,其中的任何步骤都可以是抽象的,由子类负责实现。这可以确保算法的结构保持不变,同时由子类提供部分实现。 1 。模版方法定义了算法的步骤,把这些步骤地实现延迟到子类。 2。模版方法模式为我们提供了一种代码复用的重要技巧。 3。模版方法的抽象类可以定义具体的方法,抽象的方法和钩子。 4。抽象方法由子类实现。 5。钩子是一种方法,它在抽象类中不做事,或者只做默认的事情,资料可以选择要不要去覆盖它。 6。为了防止子类改 ...
提供了一个统一的接口,用来访问子系统中的一群接口。外观定义了一个高层接口,让子系统更容易使用。 1。当需要使用一个现有的类而其接口并不符合你的需求时,就使用适配器。 2。当需要简化并统一一个个很大的接口或者一群复杂的接口时,就使用外观。 3。适配器改变接口以符合客户的期望。 4。外观将客户从一个复杂的子系统中解耦。 5。实现一个适配器可能需要一番功夫,也可能不费功夫,视目标接口的大小与复杂度而定。 6。实现一个外观,需要将子系统组合进外观众,然后将工作委托给子系统执行。 7。适配器模式有两种形式:对象适配器和类适配器。类适配器需要用到多重继承。 8。你可以为一个子系统实现一个以上的外观。 ...
将一个类的接口,转换成客户期待的另一个接口。适配器让原本接口不兼容的类可以合作无间。 package pattern; interface Turkey { public void gobble(); public void fly(); } class WildTurkey implements Turkey{ public WildTurkey(){} public void gobble(){ System.out.println("Gobble gobble"); } public void fly(){ System.out ...
马云自语:(经典中的经典) 1、 “男人的长相和智商是成反比的”。 2、 “创业这么多年,我遇到了太多的倒霉事,但只要有一点好事,我就会让自己非常开心,左手温暖右手” 3、 “如果我马云可以创业成功,那么大部分的年轻人也能够创业成功” 4、 “今天会很残酷,明天会很残酷,后天会很美好,但大部分人会死在明天晚上” 5、 “有些人,创业初期是很有激情的,但激情来得快,去的也快,所以,我希望你们的激情能保持3年,保持一辈子。” 6、“不管是谁,不管你从哪里来,要知道到哪里去?你想做什么,该做什么。” 马云语录: n “网络公司将来要判断两个:第一它的tea ...
1 。命令模式将发出请求的对象和执行请求的对象解耦。 2。在被解耦的两者之间是通过命令对象进行沟通的。命令对象封装了接受者和一个或者一组动作。 3。调用者通过调用命令对象的execute()发出请求,这会使得接受者的动作被调用。 4 。调用者可以接受命令当作参数,甚至在运行时动态进行。 5。命令可以支持撤销,做法是实现一个undo()方法来回到execute()被执行前的状态。 6。宏命令是命令的一种简单的延伸,允许调用多个命令。宏方法也可以支持撤销。 7。实际操作时,很常见使用“聪明”命令对象,也就是直接实现了请求,而不是将工作委托给接收者。 8。命令也可以用来实现日志和事物系统。 pa ...
成长的过程 主要是克服困难的过程,如果没有困难,那么你根本就没有成长。就像火车,只有开起来的时候才有阻力,不开的时候是静态的,什么都没有。仔细观察那些成功者,大成功者遇到大的困难,小成功遇到小的困难,不成功也不会遇到困难。反复为学习之母,实践是学习之父,思考是学习的祖母,怀疑是学习的祖父。把新员工作为自己朋友,兄弟 去关心。学习工作生活方方面。好的导师是好的领导的开始。为人师表才能为人领导,所谓榜样的力量。
前一段时间,看了一个文章,说的是马云的事迹,马云的其他都忘记了,记住的是马云的一句话“男人的胸怀是被撑大的”。海洋很是宽广,其无所不容,且什么东西放入海水好像没有变化。这是海洋宽广。人的胸怀应该像海洋一样宽广。宽广的胸怀说起来容易,做起来确实很难。今天看刘积仁老师对员工的一次讲话,要求员工要培养自己的性格。我在想人在培养自己好的性格的时候其实就是在撑大自己的胸怀。只有宽广的胸怀才能有好的性格。心胸狭隘者必然性格偏激。心胸宽广者必然眼界宽广,只有看得宽,看得远,心胸才能宽广,没有听说古今中外那个心胸宽广者鼠目寸光。但是目光的长远宽广是和自己的知识和认识 有很大的关系,自己对客观世界,对自己的认识 ...
1.聪明地锻炼 如果你在健身馆里只知道发狠用劲的话,最好不要浪费时间。一般来讲,十个人中只有一个人了解正确的健身方法,绝大多数人的锻炼目的似乎只是让自己疲劳,这种方法很容易受伤,而且收获甚微,最好是对自己的锻炼方法进行一次正确的评估。 2.多骑自行车 人们应该多骑自行车,以中速骑车,对心肺功能的提高很有帮助,对减肥也有特效。 3.散步半小时 尽量每周散步四到五次,每次30到40分钟,这对身体非常有益,有规律的活动有助于身体健康,还具有减肥功效。无需花费巨资参加健身俱乐部,只要买一双舒适的鞋穿就行了。 ...
我们经常会把自己桌面上的灰尘清洗清洗,把我们和水的杯子进行清洗,把我们家进行清洗,把我们的衣服进行清洗。难道我们心灵就不会落下尘埃,那我们是不是也经常去清洗我们心灵上的灰尘呢。如果我们不经常去反省心灵上的尘埃,那么它会很难被发现,就是反省也不一定能被发现,但是心灵上的 尘埃对我们的危害其实要远远比我们能看得见的尘埃大,心灵的尘埃会导致心灵的不健康,导致心灵的残缺,心灵的残缺是无形的,但是危害是巨大的。经常去反省自己,发现自己心灵的尘埃,努力去清除它。孔子曰“吾尔三省悟身”,我想不能只是三省,还要三清,清洗心灵的尘埃。
2008-04-07

红灯思

每天,在上班路上,我总是要时不时注视一下远方,看看是不是有红灯,如果远远看到了红灯,我的车就要减速,然后慢慢停下,如果发现马上就是红灯了我也会停下来,等待,直到红灯成为绿灯。我在想,其实生活中我们会经常遇到红灯,我们会停 下来吗。今年cctv 有一个感动中国节目,评选了一个军校的老师为2007十大感动中国人物,这个人的获选,很大意义上 是原由他在身患重病时还坚持工作,好像写出了一部书,他由于病情严重已经不能去cctv领奖了,听他老婆说他已经把他的后事都安排好了。他的行为让我反省,他是不是应该这样?当身患重病时候是应该养病呢还是继续工作,留得青山在不愁没柴烧,当身体很有问题时候,意味着身体已经亮 ...
确保一个类只有一个实例,并且只有一个全局访问点。如果使用多个类加载器,可能导致单例模式失效而产生多个实例。单例不允许继承,全局变量也会产生多个实例. 单例模式和工厂模式,抽象工程模式 其实都是为了创建对象,但是单例模式只能产生一个对象实例,而工厂模式可以产生不同类型的对象,抽象工厂模式却能批量产生不同类型的对象。单例模式产生的对象有些孤独,是寡者,没有兄弟,一般对特别重要的资源才可能用到单例模式,这些资源只有一份,就如皇帝,太阳只有一个,皇帝是不希望其他人与他同时也是皇帝的,哪怕是自己的兄弟姐妹。 synchronized 对线程同步有作用,但是会降低性能。如果对性能要求不高采用此办法 ...
提供一个接口,用于创建相关或依赖对象的家族,而不需要明确指定具体类。抽象工厂允许客户使用抽象的接口来创建一组相关产品,而不需要关心具体实际产出的产品是什么。 总结 : 所有工厂都是用来封装对象的创建。 简单工厂,虽然不是真正的设计模式,但是仍然不失为一个简单的方法,可以把客户程序从具体类解耦。 工厂方法使用继承:把对象的创建委托给子类,子类实现工厂方法来创建对象。 抽象工厂使用对象组合:对象的创建被实现在工厂接口所暴露出来的方法 中。 所有工厂模式都是通过减少应用程序和具体类之间的依赖关系促进松耦合。 工厂方法允许类将实例化延迟到子类进行。 抽象工厂创建相关的家族,而不需要依赖他们的具体 ...
工厂发法定义了一个创建对象的接口或者抽象类,但是有子类来决定要实例化的类是哪一个,工厂方法让类把实例化 推迟到子类。 package pattern; import java.util.ArrayList; public abstract class PizzaStore { SimplePizzaFactory factory; public PizzaStore() { } public PizzaStore(SimplePizzaFactory factory) { this.factory = factory; } public Pizza orde ...
昨天还很开心 半年多没有被罚款,没有想到今天就在中山东路逸仙桥附近遇到了条子,遇到的第一个条子没有注意我,我就认为没事,继续往前走,没有想到前面200米又有两个条子,在10米左右看到他们,当时就掉头想跑但是掉头的技术太差还是没有跑过条子。唉,今天罚款一是意识上麻痹大意,二是条子现在搞游击战,三是 逃跑有点慢了,以后多练习紧急调头的技术。要时刻有如履薄冰,如临深渊的精神,决不能麻痹。以后要多多看着远处,如果真有条子必须在30米外发现,要时刻注意拐弯处,十字路口,小路口,电线杆和其他障碍物后面是否有条子隐藏。200块我可以吃两次大餐,买一件漂亮衣服,买一束好花送给老婆,买2-7本正版书,20本盗版 ...
 package pattern; public class StarbuzzCoffee { public static void main(String args[]) { Beverage beverage = new Espresso(); System.out.println(beverage.getDescription() + "$" + beverage.cost(0.5)); Beverage beverage2 = new DarkRoast(); beverage2 = new Mocha(beverage2); beverage2 = n ...
天下事,大事小事,欲了不了,不了了之; 世上人,哲人愚人,欲明不明,不明则明。 天下事,千变万化,自有主见,定会以不变应万变; 世上人,千招万招,身怀绝招,定能以绝招对万招。 天下事,积金积银,不如积德教子; 世上人,宽天宽地,莫如宽厚待人。 天下事,事可从众,亦可异众,自己注意是关键; 世上人,人恐不明,犹恐太明,难得糊涂是聪明。 天下事,谁能说清,一壶浊酒喜相逢,大事小事,全在这壶浊酒中; 世上人,那个明白,黄梁村头访卢生,穷人富人,百年过后都是梦。  
观察者模式定义了对象之间的一对多依赖,这样一来当一个对象改变状态时,他的所有依赖着都会收到通知改变状态。 观察者模式 有点类似 打草惊蛇,一石双鸟。对主题进行扩展,不会影响观察者,添加观察者也业不会影响主题。 1.观察者模式定义了对象之间一对多的关系。 2。主题(也就是可观察者)用一个共同的接口来更新观察者 3。观察者和可观察者之间用松耦合方式结合,可观察者不知道观察者的细节,只知道观察者实现了观察者接口。 4 。使用此模式时,你可以被观察者处推或者拉数据。然而推的方式被认为更正确。 5。有多个观察者时,不可以依赖特定的通知次序。 6。java 有多种观察者模式的实现,包括了通用的java。u ...
策略模式-定义了算法族,分别封装起来,让他们之间可以相互替换,此模式让算法的变化独立于使用算法的客户。策略模式有点像调包计和偷梁换柱。 设计模式就是为了适应变化那些大师而想起来的,能适应变化的软件才能长命,人也一样,只有适应外界变化,方可生存。 package pattern; public abstract class Duck { FlyBehavior flyBehavior; QuackBehavior quackBehavior; public Duck() { } public abstract void display(); public void perfo ...