20个自然界令人叹为观止的奇景,如此奇景,只能以鬼斧神工来说了啊!原网址:http://travel.cn.yahoo.com/t/newspic/travel/11277/
年过完了,新一年又开始喽!吼吼!同事的mysql忘记了root密码,我也整理测试了下,此方法可以行的通的。环境是windows,linux下面应该也可以的,就是执行mysql命令而已。1.结束mysql的服务net stop mysql5_pn2.打开dos窗口,切换到mysql的bin目录下cd D:serverPHPnow-1.5.6MySQL-5.0.90binmysqld-nt –skip-grant-tables注释:该命令通过跳过权限安全检查,开启mysql服务,这样连接mysql时,可以不用输入用户密码。此时这个dos窗口会静止了,不管,就是开启了mysql的服务。3.继续重新打开一个新的dos窗口,切换到mysql的bin目录下cd D:serverPHPnow-1.5.6MySQL-5.0.90binmysql这样就进入mysql了,继续。use mysql选择切换到mysql的数据库,继续。update user set password=password(‘123456as’) where user=’root’;修改root的密码为123456as,继续。flush privileges;刷新权限,继续。quit退出,就结束了,可以把所有的dos关闭了。4.启动mysql服务,登录net start mysql5_pn启动mysql服务mysql –u root –p进入mysql数据库,输入密码123456as就完毕了,如果还没有成功,就要看下你的人品了!关键的命令都用红色标记出来了,跟着操作就可以了。
Brad Feld的一篇文章The Rise of Developeronomics中提到了“10倍效率的开发者(10x developer)”的概念(伟大的开发者的效率往往比一般的开发者高很多,而不只是一点点),Adam Loving在读了之后受到启发,并向多位大牛(Ben Sharpe、Collin Watson和Jonathan Locke)询问如何成为“10倍效率的开发者”,最后得到了以下的答案。 1. 只做需要做的工作使用敏捷方法;全心全意做UX设计;沟通第一;编码也许不是解决问题的办法;过早的优化是一切罪恶的根源;选择最简单的解决方案。2. 站在巨人的肩膀上使用开源框架;使用简洁语言(如HAML、Jade、Coffeescript);不要做重复的事情(不要重新发明轮子);利用包管理器来进行公共和私有代码分配;不要任凭巨头(如微软)的摆布而修复库中的一个Bug;不要让你的雇主逼你学习;自主学习并为自己设定新的目标。3. 了解数据结构和算法如果你不知道什么时候应该使用快速排序、不懂辨认O(n2)程序、不会写递归函数,你将无法成为10倍效率的开发者。使用多种语言你才能清楚不同的框架是如何解决相同问题的。尽可能去了解底层命令(plumbing),以便能够作出明智的决定(Web框架是怎么存储session状态的?Cookie到底是什么?)。 4. 不要怕买工具,它可以节省你的时间Ben说:“昨天我花50美元买了一个位图字体工具,它帮我节省的时间成本绝对超过200元。” 5. 集中注意力不要整天开着你的电子邮件、Twitter、Facebook等,在工作时将它们最小化或关掉它们,戴上耳机。Tiny hack说:“即使不听音乐我也戴着耳机工作,这样便不会有人打扰到我。” 6. 尽早并且经常性地进行代码重构有时,你不得不放弃漂亮的代码转而去寻找真正对项目有用的代码,但没关系,如果你的现有项目中有这样的代码,最好的方式便是不要看它,并重构。 7. 只管去做将你的业余项目分享到Startup Weekend中。在我开始转到Unix和Ruby on Rails上之前,我买了一台Mac,使用Windows虚拟机花了一年时间做.NET项目。 8. 挑选一个编辑器,并掌握它高效开发者喜欢用文本编辑器胜过IDE编辑器,因为这样可以学到更多东西。无论什么情况,尽量使用键盘快捷键,因为熟练使用一件工具的前提是熟悉它。 在选择编辑器时,认真考虑并挑选最好的(Emacs或Vim),因为它们是通用的。其次,挑选你的首选平台最支持的。使用宏,不断地写代码;使用Mac上的TextExpander为整个段落创建快捷方式;使用Visual Studio或SublimeText的自动补齐功能;使用支持按行/列分割窗口的编辑器,这样你便能同时看到单元测试和代码(或模型、视图)。 一定要想清楚后再写代码。Adam说,“我有朋友在一个大项目组里工作,他们组里最高效的程序员是一个高位截瘫用嘴叼着棍子敲代码的人,他总是在写代码之前想得很仔细且很少出错。” 9. 整洁的代码胜过巧妙的代码要想让其他人能够读懂你的代码,尽量使用最少的代码来完成任务。遵循DRY(Don’t repeat yourself)的原则,使用明确定义的对象和库,将任务分解成小而简单的代码段。 10. 潜意识是强大的工具离开10分钟往往就可以解决一个问题。控制编程时间,给自己一个多姿多彩的生活,劳逸结合能让你在工作时更高效、更愉悦。当然,即便是上了年纪的程序员也知道,以最少的时间完成最高效的工作是成为10倍效率开发者的必要条件。 作为一个程序员,我觉得在职业生涯中最好的一件事儿就是从电脑前站起来,去拜访那些在某一领域有所建树的人们。 11. 推动自身和团队进步重视批评,以包容的态度接受批评并提升自己是非常重要的事情。没有这个基础,你不可能成为一个高效的开发者。一位智者曾经说过:“聪明的人善于从自己的错误中学习,而智慧的人善于从别人的错误中学习。” 英文原文:http://adamloving.com/internet-programming/10x-developers原文网址:http://www.iteye.com/news/23799
团队成了优秀团队,在公司周刊上面的介绍,哈哈!非常6+1 —营销平台小组文/技术部 顾蕾非常6+1成员从左往右依次为:尹东勇、赵睿、周健、沈凤飞、赵鹏、张乔乔非常6+1 — 6个人 , 一个营销平台 。 年龄从23-30不等 ,组成了一个团队-营销平台小组。他们的辛勤劳作:顺利圆满完成了23个营销活动,1 3个营销平台功能需求,二期割接,集中封闭三期平台建设。他们的顽强表现:一年中的250多个夜晚,出现在旭建3号办公室;无数个傍晚,啃着面包和快要冷却的快餐;每天中午, 出现在最经济的新城食堂, 拥挤在人群中排队等来一顿十块钱的便当。尹东勇-承担短信PUSH能力层、 任务调度 、 10658838、8899的短PUSH高速群发 、 任务调度 、 审批等工作。 作为营销平台最热心的大师兄, 有问题吆喝一声, 以最简洁的方法定位问题,最快的速度处理BUG,最简练的语言回答疑问。一个喜欢篮球, 喜欢爬山, 喜欢文艺的青年, 他的时间精力献给了营销平台。乔乔-负责彩信能力层、 群发接口层的10658899彩信群发与接收、状态报告解析、用户回访分析、外系统调用等。 营销平台的二师兄, 幽默风趣的个人签名, 滑稽的表情, 经常会将大家逗乐。 天籁的歌喉吐露心中些许的苦闷。 身在异乡 ,时长想起家中的妻儿, 一成不变的黑色外套, 已经反复穿了一周又一周。沈凤飞、 赵睿2人辛勤为营销活动、 一期 、 3期的群发用户、 营销活动管理等紧急工作忙碌着。 凤飞, 见证了营销平台的成长历程, 从还未成形的平台到今天已经完工的三期平台, 问其休息都是码代码。 一次偶然的机会, 发现这小伙是个音乐小天才, 葫芦丝 , R&B, 动与静的结合, 古与今的交汇, 无一不赞。 赵睿,营销平台年龄最小, 也是最为帅气的一个,今年七月份刚入职,便投身到无日无夜的奋战中, 年轻是最大的资本,勤学好问是最大的优点,带着一股激情,一鼓作气将三期平台的建设顺利完工。赵鹏-作为团队的基础核心人员,为营销平台的接口层、基础平台搭建兢兢业业的埋头苦干, 独自开发的自有监控工具为平台安全保驾护航。喜欢篮球的他,平时还爱好钓鱼,正是这股耐力, 才让我们的营销平台在经过多次考验后依旧坚挺。走进旭建办公室的3号, 右手边第二排靠墙, 座位下面摆放了一双泛白的黑色单鞋, 鞋底已经开胶 。 桌上, 一只圆珠笔, 一个茶叶罐, 一个电脑散热器, 一瓶眼药水, 几包感冒药。 打开电脑, 电脑的桌面, 呈现的是未满周岁的可爱的女婴笑脸。 这是团队负责人周健的座位, 先后带领了十来个研发人员, 在小组成员的心中, 一直把他当做亲人看待, 人称“大叔” 。2012年 , 非常6+1 , 会翻开崭新的一页, 我们期待一个非常不一样的平台。 哈哈!非常6+1还有另外一层的结束,6个技术控,1位大美女-顾蕾。偷了一张蕾蕾的照片出来。自从来了蕾蕾之后,我们组就活跃起来了,两年团队没有一次一起出去活动过,现在动不动就能一起活动活动了,发现的人才,三年在一起的“大叔”竟然是个歌手。从照片看,就个萌女啊!哈哈!
从用电脑开始一直用的是世界之窗的浏览器,从1.0的版本用到了3.5,自从世界之窗进入360后,也一直保留着世界之窗的使用,无论是360还是世界之窗,在win7上面都存在这样那样的bug,一直没有修复,而且世界之窗和360的软件版本都比不上世界之窗2的好用,只是现在在速度、网络、服务上面,世界之窗2的版本也只能怀念的软件了。目前我使用的搜狗浏览器,使用的皮肤是世界之窗3的皮肤,看起来亲切,用起来还不错,自动填表的功能很强大,在两种模式下面基本都可以使用,比起其他多核浏览器好多了。我常常打开多个同一网址,做测试用的多,搜狗浏览器里面没有这个功能,很麻烦,要复制网址,打开新标签,粘贴,回车,才完成,在世界之窗浏览器中一直有这个功能,很方便,相当好用,搜狗浏览器少了这个功能很不爽啊!提给官方,谁还不知道鸟不鸟你啊!搜狗浏览器采用的是webkit内核,和谷歌浏览器一样,研究了下他们的API,搞了个复制标签的插件出来,我需要的功能也有了,代码也就几行。因为搜狗浏览器和谷歌浏览器的内核一样,API也基本一样,也顺便做了个谷歌浏览器的插件,测试都可以使用的。看看源码搜狗浏览器的 1: sogouExplorer.browserAction.onClicked.addListener(function(tab){ 2: sogouExplorer.tabs.create({ 3: url: "http://baidu.com/", 4: selected: true 5: }); 6: }); 谷歌浏览器的 1: chrome.browserAction.onClicked.addListener(function(tab){ 2: chrome.tabs.create({ 3: url: tab.url, 4: selected: true 5: }); 6: }); 基本一样吧!附件包含谷歌浏览器、搜狗浏览器的插件和源码下载:http://dl.dbank.com/c0eaktfiau
myeclipse7以前都是可以很容易通过link方式来安装eclipse的插件的,自从myeclipse7以后,myeclipse修改的安装配置的方式,直接用link方式安装插件很麻烦,这里找到一个用link方式的插件配置代码的生成器,用这个安装,简单的一米,推荐必备软件。步骤如下1.比如给myeclipse10安装hibernate的插件,我的hibernate插件之前是eclipse3.2的版本安装的里面。在D:toolsMyEclipse 10MyEclipse 10建立myplugins文件,将hibernate插件放入文件中,不要有eclipse的目录。hibernate插件目录如下 D:toolsMyEclipse 10MyEclipse 10mypluginshibernatepluginscom.hudson.hibernatesynchronizer_3.1.9_lclgv1.02.使用MyEclipse插件配置代码生成器,修改里面的路径import java.io.File;import java.util.ArrayList;import java.util.List;/** * *@ClassName : PluginConfigCreator@ClassDescription : MyEclipse插件配置代码生成器@Author : dapeng@CreateTime : 2011-12-18 下午8:39:31 */public class PluginConfigCreator {public PluginConfigCreator() {}public void print(String path) { List<String> list = getFileList(path); if (list == null) { return; } int length = list.size(); for (int i = 0; i < length; i++) { String result = ""; String thePath = getFormatPath(getString(list.get(i))); File file = new File(thePath); if (file.isDirectory()) { String fileName = file.getName(); if (fileName.indexOf("_") < 0) { print(thePath); continue; } String[] filenames = fileName.split("_"); String filename1 = filenames[0]; String filename2 = filenames[1]; result = filename1 + "," + filename2 + ",file:/" + path + "/" + fileName + "\,4,false"; System.out.println(result); } else if (file.isFile()) { String fileName = file.getName(); if (fileName.indexOf("_") < 0) { continue; } int last = fileName.lastIndexOf("_");// 最后一个下划线的位 置 String filename1 = fileName.substring(0, last); String filename2 = fileName.substring(last + 1, fileName.length() - 4); result…
为了防止程序破解系统登录,一般都会采用登录+验证码的措施。kaptcha是我用到的最好用的一个验证码工具,使用非常的简单。瞧瞧我在项目中使用的效果吧!感觉还是很不错的。使用方法:1.当然是下载kaptcha的jar包了kaptaca的地址:http://code.google.com/p/kaptcha/我在下面也提供一个我修改的版本,修改点下面说。2.在web.xml中增加配置 1:<servlet> 2:<servlet-name>Kaptcha</servlet-name> 3:<servlet-class>com.google.code.kaptcha.servlet.KaptchaServlet</servlet-class> 4:</servlet> 5:<servlet-mapping> 6:<servlet-name>Kaptcha</servlet-name> 7:<url-pattern>/kaptcha.jpg</url-pattern> 8:</servlet-mapping>3.在需要的页面进行调用 1:<imgsrc="Kaptcha.jpg"> 2:<formmethod="POST"> 3:<br>验证码:<inputtype="text"name="kaptchafield"><br/> 4:<inputtype="submit"name="submit"> 5:</form>4.验证 1: String key = (String)session.getAttribute(com.google.code.kaptcha.Constants.KAPTCHA_SESSION_KEY); 2: String parm = (String) request.getParameter("kaptchafield"); 3: 4: out.println("验证码的值: " + key+"<br />"); 5: out.println("您输入的值: " + parm); 6: 7:if (key != null && parm != null) { 8:if (key.equals(parm)) { 9: out.println("<b>验证成功</b>"); 10: } else { 11: out.println("<b>验证失败</b>"); 12: } 13: }看看效果来效果还不错的,就是美化不怎么好,好在kaptcha的自定义功能很强,可以根据需要自定义自己的效果。kaptcha的配置属性**Constant****Description****Default** kaptcha.border 是否有边框 默认为yes 我们可以自己设置yes,no yes kaptcha.border.color 边框颜色 默认为Color.BLACK black kaptcha.border.thickness 边框粗细度 默认为1 1 kaptcha.image.width 验证码图片宽度 默认为200 200 kaptcha.image.height 验证码图片高度 默认为50 50 kaptcha.producer.impl 验证码生成器 com.google.code.kaptcha.impl.DefaultKaptcha kaptcha.textproducer.impl 验证码文本生成器 com.google.code.kaptcha.text.impl.DefaultTextCreator kaptcha.textproducer.char.string 验证码文本字符内容范围 abcde2345678gfynmnpwx kaptcha.textproducer.char.length 验证码文本字符长度 5 kaptcha.textproducer.char.space 验证码文本字符间距 默认为2 2 kaptcha.textproducer.font.names 验证码文本字体样式 默认为new Font("Arial", 1, fontSize), new Font("Courier", 1, fontSize) Arial, Courier kaptcha.textproducer.font.size 验证码文本字符大小 40px. kaptcha.textproducer.font.color 验证码文本字符颜色 默认为Color.BLACK black kaptcha.noise.impl 验证码噪点生成对象 com.google.code.kaptcha.impl.DefaultNoise kaptcha.noise.color 验证码噪点颜色 默认为Color.BLACK black kaptcha.obscurificator.impl 验证码样式引擎 默认为WaterRipple com.google.code.kaptcha.impl.WaterRipple kaptcha.background.impl 验证码背景生成器 默认为DefaultBackground com.google.code.kaptcha.impl.DefaultBackground kaptcha.background.clear.from 验证码背景颜色渐进 默认为Color.LIGHT_GRAY light grey kaptcha.background.clear.to 验证码背景颜色渐进 默认为Color.WHITE white kaptcha.word.impl 验证码文本字符渲染 默认为DefaultWordRenderer com.google.code.kaptcha.text.impl.DefaultWordRenderer kaptcha.session.key 放入session的key名称 KAPTCHA_SESSION_KEY kaptcha.session.date…
dapeng 2012主题的主题的模仿的腾讯CDC的主题,主题的特点是精简,比起上一个主题,没有太多的css、js、页面效果,主要是为了增加页面的速度。另外一个也是为了在2012年也有一个自己的风格主题。也就是目前自己使用的这款主题,里面很多的都是代码实现的,也是整理自己接触Wordpress,熟悉的一些函数。分页、首页图片、相关文章、分类目录等都重写了代码,加入的注释。图片演示效果:最近访问网站的速度也有些慢,自己用的外链图片也很难访问,为了速度加快一些,使用了cloudflare提供的CDN服务。使用CDN服务后的效果对比:我用的是使用的服务器地址是:174.37.169.153,效果肯定比不上国内,但也比起超时要好的多。另外之前一直使用的wp spuer cache也没有生效,今天也捣腾的可以用了。使用Firebug测试了下首次打开速度,也基本保持在3s左右,可能网络好,满足下虚荣感。主题基本就定下来了,下一步就是做一些SEO的事情了,不过,我的观点是回归自己建立博客的本质。博客首先是记录收集的地方,分享也就是附带的目的吧!如果仅仅是记录收集,用记事本还不简单啊!
文章比较老,不过也把Java开发的常用的方式、方向也说明了。J2EE开发三件宝: Domain Model(域建模)、patterns(模式)和framework(框架)。J2EE系统的概念及如何开发J2EE学习者越来越多,J2EE本身技术不断在发展,涌现出各种概念,本文章试图从一种容易理解的角度对这些概念向初学者进行解释,以便掌握学习J2EE学习方向。首先我们需要知道Java和J2EE是两个不同概念,Java不只是指一种语言,已经代表与微软不同的另外一个巨大阵营,所以Java有时是指一种软件系统的流派,当然目前主要是.NET和Java两大主流体系。J2EE可以说指Java在数据库信息系统上实现,数据库信息系统从早期的dBase、到Delphi/VB等C/S结构,发展到B/S(Browser浏览器/Server服务器)结构,而J2EE主要是指B/S结构的实现。J2EE又是一种框架和标准,框架类似API、库的概念,但是要超出它们。如果需要详细了解框架,可先从设计模式开始学习。J2EE是一个虚的大的概念,J2EE标准主要有三种子技术标准:WEB技术、EJB技术和JMS,谈到J2EE应该说最终要落实到这三个子概念上。这三种技术的每个技术在应用时都涉及两个部分:容器部分和应用部分,Web容器也是指Jsp/Servlet容器,你如果要开发一个Web应用,无论是编译或运行,都必须要有Jsp/Servlet库或API支持(除了JDK/J2SE以外)。Web技术中除了Jsp/Servlet技术外,还需要JavaBeans或Java Class实现一些功能或者包装携带数据,所以Web技术最初裸体简称为Jsp/Servlet+JavaBeans系统。谈到JavaBeans技术,就涉及到组件构件技术(component),这是Java的核心基础部分,很多软件设计概念(设计模式)都是通过JavaBeans实现的。JavaBeans不属于J2EE概念范畴中,如果一个JavaBeans对象被Web技术(也就是Jsp/Servlet)调用,那么JavaBeans就运行在J2EE的Web容器中;如果它被EJB调用,它就运行在EJB容器中。EJB(企业JavaBeans)是普通JavaBeans的一种提升和规范,因为企业信息系统开发中需要一个可伸缩的性能和事务、安全机制,这样能保证企业系统平滑发展,而不是发展到一种规模重新更换一套软件系统。至此,JavaBeans组件发展到EJB后,并不是说以前的那种JavaBeans形式就消失了,这就自然形成了两种JavaBeans技术:EJB和POJO,POJO完全不同于EJB概念,指的是普通JavaBeans,而且这个JavaBeans不依附某种框架,或者干脆可以说:这个JavaBeans是你为这个应用程序单独开发创建的。J2EE应用系统开发工具有很多:如JBuilder、Eclipse等,这些IDE首先是Java开发工具,也就是说,它们首要基本功能是可以开发出JavaBeans或Java class,但是如果要开发出J2EE系统,就要落实到要么是Web技术或EJB技术,那么就有可能要一些专门模块功能(如eclipse需要lomboz插件),最重要的是,因为J2EE系统区分为容器和应用两个部分,所以,在任何开发工具中开发J2EE都需要指定J2EE容器。J2EE容器分为WEB容器和EJB容器,Tomcat/Resin是Web容器;JBoss是EJB容器+Web容器等,其中Web容器直接使用Tomcat实现的。所以你开发的Web应用程序可以在上面两种容器运行,而你开发的Web+EJB应用则只可以在JBoss服务器上运行,商业产品Websphere/Weblogic等和JBoss属于同一种性质。J2EE容器也称为J2EE服务器,大部分时它们概念是一致的。如果你的J2EE应用系统的数据库连接是通过JNDI获得,也就是说是从容器中获得,那么你的J2EE应用系统基本与数据库无关,如果你在你的J2EE应用系统耦合了数据库JDBC驱动的配置,那么你的J2EE应用系统就有数据库概念色彩,作为一个成熟需要推广的J2EE应用系统,不推荐和具体数据库耦合,当然这其中如何保证J2EE应用系统运行性能又是体现你的设计水平了。衡量J2EE应用系统设计开发水平高低的标准就是:解耦性;你的应用系统各个功能是否能够彻底脱离?是否不相互依赖,也只有这样,才能体现可维护性、可拓展性的软件设计目标。为了达到这个目的,诞生各种框架概念,J2EE框架标准将一个系统划分为WEB和EJB主要部分,当然我们有时不是以这个具体技术区分,而是从设计上抽象为表现层、服务层和持久层,这三个层次从一个高度将J2EE分离开来,实现解耦目的。因此,我们实际编程中,也要将自己的功能向这三个层次上靠,做到大方向清楚,泾渭分明,但是没有技术上约束限制要做到这点是很不容易的,因此我们还是必须借助J2EE具体技术来实现,这时,你可以使用EJB规范实现服务层和持久层,Web技术实现表现层;EJB为什么能将服务层从Jsp/Servlet手中分离出来,因为它对JavaBeans编码有强制的约束,现在有一种对JavaBeans弱约束,使用Ioc模式实现的(当然EJB 3.0也采取这种方式),在Ioc模式诞生前,一般都是通过工厂模式来对JavaBeans约束,形成一个服务层,这也是是Jive这样开源论坛设计原理之一。由此,将服务层从表现层中分离出来目前有两种可选架构选择:管理普通JavaBeans(POJO)框架(如Spring、JdonFramework)以及管理EJB的EJB框架,因为EJB不只是框架,还是标准,而标准可以扩展发展,所以,这两种区别将来是可能模糊,被纳入同一个标准了。 但是,个人认为:标准制定是为某个目的服务的,总要牺牲一些换取另外一些,所以,这两种架构会长时间并存。这两种架构分歧也曾经诞生一个新名词:完全POJO的系统也称为轻量级系统(lightweight),其实这个名词本身就没有一个严格定义,更多是一个吸引人的招牌,轻量是指容易学习容易使用吗?按照这个定义,其实轻量Spring等系统并不容易学习;而且EJB 3.0(依然叫EJB)以后的系统是否可称为轻量级了呢?前面谈了服务层框架,使用服务层框架可以将JavaBeans从Jsp/Servlet中分离出来,而使用表现层框架则可以将Jsp中剩余的JavaBeans完全分离,这部分JavaBeans主要负责显示相关,一般是通过标签库(taglib)实现,不同框架有不同自己的标签库,Struts是应用比较广泛的一种表现层框架。这样,表现层和服务层的分离是通过两种框架达到目的,剩余的就是持久层框架了,通过持久层的框架将数据库存储从服务层中分离出来是其目的,持久层框架有两种方向:直接自己编写JDBC等SQL语句(如iBatis);使用O/R Mapping技术实现的Hibernate和JDO技术;当然还有EJB中的实体Bean技术。持久层框架目前呈现百花齐放,各有优缺点的现状,所以正如表现层框架一样,目前没有一个框架被指定为标准框架,当然,表现层框架现在又出来了一个JSF,它代表的页面组件概念是一个新的发展方向,但是复杂的实现让人有些忘而却步。在所有这些J2EE技术中,虽然SUN公司发挥了很大的作用,不过总体来说:网络上有这样一个评价:SUN的理论天下无敌;SUN的产品用起来撞墙;对于初学者,特别是那些试图通过或已经通过SUN认证的初学者,赶快摆脱SUN的阴影,立即开溜,使用开源领域的产品来实现自己的应用系统。最后,你的J2EE应用系统如果采取上面提到的表现层、服务层和持久层的框架实现,基本你也可以在无需深刻掌握设计模式的情况下开发出一个高质量的应用系统了。还要注意的是: 开发出一个高质量的J2EE系统还需要正确的业务需求理解,那么域建模提供了一种比较切实可行的正确理解业务需求的方法,相关详细知识可从UML角度结合理解。当然,如果你想设计自己的行业框架,那么第一步从设计模式开始吧,因为设计模式提供你一个实现JavaBeans或类之间解耦参考实现方法,当你学会了系统基本单元JavaBean或类之间解耦时,那么系统模块之间的解耦你就可能掌握,进而你就可以实现行业框架的提炼了,这又是另外一个发展方向了。以上理念可以总结为一句话:J2EE开发三件宝: Domain Model(域建模)、patterns(模式)和framework(框架)。原文网址:http://www.javaresearch.org/article/31774.htm