- 浏览: 326332 次
- 性别:
- 来自: 上海
文章分类
最新评论
-
libaogui777:
前辈,您好, 使用PDFbox 提取内容遇到一个问题,想请教您 ...
java进行pdf解析-----pdfbox -
xin_hany:
提示惊醒了一下,解决了一个让人惆怅的问题,
danga的MemcachedClient的几个缺陷 -
roroyangivan:
牛B啊。。。我觉得 这种 回答。。。阿里的的CTO 都 HOL ...
怎样才是一个好的架构? -
406657836:
今天知道了一个线程创建时会给stack分配1M内存?一个线程默 ...
jvm线程的stack -
linzx0212:
受教了……
danga的MemcachedClient的几个缺陷
好文自留地
1.《你还在用if else吗?》
你还在用if else吗? http://www.jdon.com/artichect/ifelse.htm
摘要:
面向过程设计和面向对象设计的主要区别是:是否在业务逻辑层使用冗长的if else判断。如果你还在大量使用if else,当然,界面表现层除外,即使你使用Java/C#这样完全面向对象的语言,也只能说明你的思维停留在传统的面向过程语言上。
传统思维习惯分析
为什么会业务逻辑层使用if else,其实使用者的目的也是为了重用,但是这是面向过程编程的重用,程序员只看到代码重用,因为他看到if else几种情况下大部分代码都是重复的,只有个别不同,因此使用if else可以避免重复代码,并且认为这是模板Template模式。
他范的错误是:程序员只从代码运行顺序这个方向来看待它的代码,这种思维类似水管或串行电路,水沿着水管流动(代码运行次序),当遇到几个分管(子管),就分到这几个分管子在流动,这里就相当于碰到代码的if else处了。
而使用OO,则首先打破这个代码由上向下顺序等同于运行时的先后循序这个规律,代码结构不由执行循序决定,由什么决定呢?由OO设计;设计模式会取代这 些if else,但是最后总是由一个Service等总类按照运行顺序组装这些OO模块,只有一处,这处可包含事务,一般就是Service,EJB中是 Session bean。
一旦需求变化,我们更多的可能是Service中各个OO模块,甚至是只改动Service中的OO模块执行顺序就能符合需求。
这里我们也看到OO分离的思路,将以前过程语言的一个Main函数彻底分解,将运行顺序与代码其他逻辑分离开来,而不是象面向过程那样混乱在一起。所以有人感慨,OO也是要顺序的,这是肯定的,关键是运行顺序要单独分离出来。
是否有if else可以看出你有没有将运行顺序分离到家。
【2007-2-15 bbs】
2.介绍一个基于spring和注解的CRUD组件
http://www.iteye.com/topic/95598
摘要:
这个组件是基于Spring的getJdbcTemplate()来进行数据库操作。
组件特性:
1.子类只要继承父类SpringEntityDAO就能自动拥有添加,修改,删除,查询的方法。
2. 子类进行复杂查询的时候,不需要配置烦人的映射关系rowMapper。
这里的rowMapper是在父类中定义的,子类可以直接使用。
java 代码
1. @SuppressWarnings("unchecked")
2. public List queryNextFlows(String userId, String currentFlowState) {
3. return getJdbcTemplate() .query( sql ,new Object[] { userId, currentFlowState }, rowMapper);
4. }
3.SpringEntityDAO提供一些比较常用的数据库操作方法,子类自动拥有。
deleteAll 删除当前表的所有数据。
queryAll 查询当前表的所有数据。
queryBy根据属性名和属性值查询对象。
queryBySql使用sql语句进行查询。
具体可以参见SpringEntityDAO类。
4.兼容hibernate3.2.
配置类似于hibernate annotation,但是不需要使用hibernate和hibernate annotation的jar包。
3.学习Linux的九条忠告
学习Linux的九条忠告
以下是网友王垠写的关于学习Linux的忠告。但只要稍加替换,它完全可以用来解决FF与IE,五笔与拼音,QQ与MSN,IBM与HP,甚至是SONY与任天堂粉丝之间的种种争端。
1. 不要当“传教士”
很多人在讨论区不断的引起 "Linux vs. Windows"
之类的讨论,甚至争的面红耳赤,这是没有必要的。这种争论是浪费时间而没有任何用处的。对,你花了一下午,用许多事实“捍卫”了 “Linux 比 Windows 好”
这个说法。但是 Windows 的支持者并不会喜欢上 Linux,他们只是稍微退缩一下,然后找一些新的证据来跟你辩论。 世界上的人们都在利用Linux
研究最前沿的科学,我们还在这里讨论 “要不要用Linux” 这种无聊的问题,什么时候才能赶上时代前进的步伐? 什么叫做“Windows
支持者”,什么叫做“Linux 支持者”?我们为什么要支持某一个而反对另外一个?你不需要为 Linux “护法”,不需要成为“Linux
支持者”或者“GNU传教士”,GNU/Linux 已经用事实向世界证明了它们的威力,已经被大多数人接受。你只需要安安静静享受 GNU/Linux
给你的乐趣和自由。 你需要关心的不是你的工具是什么,而是你用它做了什么。精通 Linux 并不说明任何问题,因为它只是一个工具而已。如果你用 Windows
能很好的完成你的任务,那你就没有必要费时间去熟悉 Linux。直到有一天你发现一项任务只有 Linux 才能完成的时候再换也不迟,因为你身边的 Linux
的爱好者一定会很乐意的帮助你。
工具不是人,不应该对工具有感情。这是你在进行任何对工具的讨论前需要提醒自己的事情。面对一些容易引起争论的东西:Word
和 TeX;Emacs 和 VIM;MAXIMA,Mathematica 和 Maple;Gnome, FVWM 和 KDE;Mutt 和 Pine ……
一定要冷静的对自己说:“我不站在它们任何一边,因为它们不是人。”
各人的需要不同,生活的环境不同。对你来说好的东西,对别人来说不一定好,我们需要尊重别人的选择。如果你当面说别人正在用的程序不好,没有人会乐意接受你的意见。我从来没有建议过我爸爸不用
Windows + WPS,而用 Linux + LaTeX 来处理他的英语试卷。因为 WPS 是我爸爸的选择,他能用 WPS
编辑出很好的试题去测试他的学生,那就足够了。
我曾经帮我爸爸做了一个 perl 程序,能够自动从一种我自己设计的 markup 语言转化成
LaTeX
格式的英语试卷。可以自动对试题编号,乱序排版选择题的选项,自动生成答案表,生成老师用的显示答案的版本,自动对短文改错题进行优化分段,自动拼写检查,图形化的配置方式……
我爸爸高兴的用了一段时间,可是后来他想用 WPS 里的一种标题样式,而我不在家,无法为他修改程序。所以他又换回了
WPS。这就像有人送爱因斯坦一罐剃须泡沫一样,刚开始几天,发现他神采飞扬,不断夸这个东西真舒服。过了几天,发现爱因斯坦又开始用白水剃胡子了,因为剃须泡沫用完了,他懒得自己去买那个东西。这只是习惯问题。
2.
不要强迫自己
喜欢电脑的人总是有某些心理强迫倾向。有的人说:“键盘比鼠标快。我不要用鼠标。这样才有高效率。” 所以他在编辑器里无论什么时候总是用
20w, 10j 这样的命令到达目的点。他甚至觉得图形界面是多余的,干脆 Xwindow 都不装。全部用键盘看起来的确比让手离开键盘去拿鼠标,再回来“快”
多了,但是快的击键频率不等于工作的高效率,对你的健康更没有什么好处。这只能把你变成打键盘的机器。当你正在检查你的文章或者程序,思维正在随着字符的含义流动,突然
20w, 10j
这样的东西出现在你的脑子里,是不是会打断思路?不?那说明你当时思考的问题比较简单,这些干扰还不会起到副作用。
其实很多人用电脑的时候,思想都受到某种教条的束缚,上面这个只是众多教条中的一种。某些人制造了很多这种教条,用他的工作方式来要求别人,嘲笑方式跟他不一样的人。比如有的人嘲笑其它人写
C 程序不按 8 字符缩进,嘲笑别人在 vi 里用方向键,嘲笑别人不知道 PVM 是什么,嘲笑其它人用 JAVA, C# 这种由 GC 回收内存语言……
你不用管各种各样的教条,电脑只是你的奴隶,你想怎么用就怎么用。没有人能够约束你,没有人可以嘲笑你的工作方式。电脑明天就不再是这个样子,所以今天你不用完全了解它。你没有必要知道别人创造的一切,因为你需要留点时间自己创造些东西。Just
have fun! 当你下次修改文章的时候,不妨试试悠闲的用鼠标在你眼睛看到的地方轻轻点一下。
3. 不要“玩
Linux”
很多人用 Linux
的时候会感觉很迷茫,该用哪个发行呢?是不是我少装了什么?怎么升级这么快啊!怎么这么不稳定!每当遇到新的软件他就想试用,每当新的版本出现,他就更新,然后用鼠标在新的菜单里选择从来没见过的程序来用用。
其实你是为了Linux而使用Linux,而没有找到正确的理由来利用
Linux。你首先要明确用电脑的目的,你用它是为了解决你的实际问题,而不是为了学习安装操作系统,不是为了测试哪个版本好用,不是为了“赶上潮流”,更不是因为你硬盘太大了,你想多占点空间。
如果你启动了电脑之后不知道应该干什么,那么最好先不要用电脑,因为你可能有更重要的事情需要做。
4. 不用挑剔发行版本
很多人刚开始用
Linux 的时候,总是在怀疑别的发行版本是否比自己正在用的这个好,总是怀疑自己以后时候会失去支持,不得不换用别的发行。所以很多人今天是
Redhat,明天又换成了 debian, 一会儿又是 gentoo, …… 甚至有的人在一台机器上装了两个版本的 Linux,然后比较哪一个好。
其实你完全没有必要这样做,任何发行,只要你熟悉了,你在上面的工作方式几乎是不会受到任何影响的。
我以前一直用的
Redhat,当我有一天在我的一台新机器上安装 debian 时,我发现使用 Redhat 的经验完全没有浪费。我用了一个下午就配置好了
debian,使它服服贴贴的听我的话,就跟没有换发行一样。 Debian, TurboLinux, SuSE, Redhat, Gentoo, ...
任何一个版本都是不错的。很多人认为自己攒一个 LFS 是高水平黑客的象征,但是不是每个人都有精力去了解所有细节。 如果你是用于个人的日常事物和科研,可以试试
debian。它是我见过的最方便的一个发行。
5.
不要盲目升级
不知道这是心理作用还是什么,有的人看到比较大的版本号,就会很想换成那个。很多人的 Redhat 本来配置的很舒服了,可是一旦
Redhat 发行新的版本,他们就会尽快下载过来,然后选择升级安装。结果很多时候把自己原来修改得很好的配置文件给冲掉了。新的软件又带来了新的问题,比如有一次我的
rxvt 升级到 2.7.8 就跟 miniChinput 冲突了,升级到 Redhat 8.0,发现 xmms 居然缺省不能放mp3了,XFree86 的
xtt 模块在 I810 上有新的 bug,会导致 Mozilla
突然退出。如果你已经配置好了一切,千万别再整体升级了,这会浪费你很多很多时间的,不值得。有句话说得好:"If it's not broken, don't
fix it." 如果你的程序能够完成你需要做的事情,你何必升级呢?
6.
不要配置你不需要的东西
如果你只想做一个像我这样的普通用户,主要目的是用 Linux
来完成自己的科研任务和日常工作,那就可以不用系统管理员或者网络管理员的标准来要求自己,因为当一个系统和网络管理员确实很辛苦。普通用户学习那些不经常用到的复杂的维护系统的工具,其实是浪费时间,学了不用是会很快忘记的!我不是一个合格的网络管理员,我的服务器都只设置了我自己需要的功能,设置好
ssh, ftp 已经足够了,那样可以省去我很多麻烦。我从来不过度考虑“安全”,因为 Linux 缺省已经很安全了。我没有磁带机,就不用管 tar
的那些稀奇古怪的参数了,czf, xzf, ztf 已经可以满足我所有的需要。sed, awk, ... 我也只会几种常用的命令行。
7.
不要习惯的使用 root 帐号。
在需要的时候才 su! 这是很多刚接触 UNIX 类操作系统的人常见的现象,他们不喜欢在管理系统的时候才 su,
而是一直用 root 帐号干所有事情,配置系统,安装程序,浏览网页,玩游戏,编程 …… 结果有一天,他不小心在某个系统目录使用了 rm * ...
后果不堪设想……
8. 不要用商业的眼光来看 Linux。
Linux 不是商业软件,所以不要用要求 Solaris,
Windows 那样的眼光来看 Linux. 自由软件的作者们从来不拉拢用户,他们对用户不负有任何责任。实际上在自由软件的世界里,“开发者”和“用户”
并没有明确的界限,大家是朋友。自由软件很可能只是满足作者和他的朋友的需要,甚至是为了好玩而创造的。自由软件不是完美的,自由软件承认自己有缺点,它不会自吹自擂,蒙蔽“用户”的耳目。这种对作者责任的解脱激发了作者的创造力,他们不用过分考虑“向上兼容”,他们往往比背上重重包袱的商业软件结构更合理,技术更先进。所以当你用某个自由软件遇到困难的时候,不应该埋怨软件的作者,因为他们对你并没有义务。
你不应该把自己当成一个挑剔的顾客,而要把自己作为这个软件的顾问和一个和蔼的建议者,这样你才能理解作者写这个程序时的快乐,在遇到问题时向作者反映,帮助他完善这个软件,成为一个快乐的参与者。就像你的哥哥送你一个他用旧了的自行车,你应该珍惜这份友情,而不要在车坏了,或者骑车摔了一交的时候大骂你的哥哥。如果你真的不能使用这种合作的心态,那么最好不要使用这个软件。这是一种先进的文化,它包含了互相合作,科学创新的精神。理解这一点不是很容易,很多人往往是因为不能理解这种文化而离开自由软件。这对于作者来说并没有什么损失。
9.
干你的正事去
很多人跟我说,你的网页浪费我好多时间来配置这配置那,一会儿是 FVWM,一会儿是 Mutt ……
嗯……那些东西都是我有空的时候一点一点积累的,如果你想一次性搞定所有那些东西,恐怕得花你几个星期甚至几个月的时间!并不是一定要搞定所有这些东西你才能正常工作的。除非你真的非得利用某个程序,或者你闲着没事,否则你可以不管这些东西。
10.
上面几条仅供参考 以上只是个人意见,不一定适合所有人。取舍由你了
发表评论
-
Ruby API代码技巧
2012-05-23 21:53 1133http://www.slideshare.net/ihowe ... -
怎样才是一个好的架构?
2012-05-18 17:37 3779关于软件设计的抽象思想 曾经被阿里的某CTO问过一个问题 ... -
nginx的编译选项
2012-04-25 17:30 1584下载nginx源码包,编译命令之一: ./co ... -
10 Core Architecture Pattern Variations for Achieving Scalability
2011-11-20 22:00 1099【转载】:http://highscalability.com ... -
wowza doc of multi-bitrate streaming
2011-11-06 11:49 2404http://www.wowza.com/forums/con ... -
今天回首
2011-09-01 22:13 1307突然发觉很久不上javaeye了,仿佛生活中遗忘了这一块。 每 ... -
你的邮件”被垃圾“了吗?
2010-11-30 20:37 1144最近在注册系统中使用邮件激活,用公司的邮箱服务器发送帐号激活邮 ... -
mongodb的map/reduce实属鸡肋
2010-11-24 22:47 1544曾经被mongodb的特性所吸引,没想到map/reduce却 ... -
[老博迁移2005-11-09]TeracMiracle反编译成功
2010-08-12 22:13 903TeracMiracle反编译成功 TM:中国人写 ... -
[老博迁移2005-11-09] 越是官大,越是懒
2010-08-12 22:11 1187越是官大,越是懒 小小的公司里就有官僚了,真 ... -
danga的MemcachedClient的几个缺陷
2010-08-11 16:19 17435最近实际用起来我发现,java版danga的memcached ... -
今天参加RubyConfChina的活动,见识了
2010-06-27 00:27 1233这次是RubyConfChina的 ... -
该死的CXF
2010-04-15 21:20 1190为了连https web services,初步选择以前用得还 ... -
jsp太大编译不了,原来是64k的方法限制
2010-02-11 12:04 2858昨天遇到一个诡异的问题,吓出一身冷汗。 20几个300k ... -
javascript技巧:(function(){})()
2010-02-11 12:03 1213javascript技巧:(function(){})() ... -
lucene搜索引擎简单应用
2010-02-11 12:02 1268还用lucene架了个搜索引擎,对pdf进行全文搜索(联合 ... -
java进行pdf解析-----pdfbox
2010-02-11 11:58 10582对pdf解析有不少成熟技术,经过选型,我最后选定用pdfb ... -
用flash动态上传文件
2010-02-11 11:52 1197用flash写了一个动态的文件上传功能,当然也用了jque ... -
不当家不知道柴米贵,不开发不知道重启费
2010-02-11 11:21 1171话说我开始逐渐脱离群众,开发得越来越少。还好最近做了 ... -
【转】Getting real
2010-02-11 11:18 925【转】Getting real 刚才偶然看到的, ...
相关推荐
农村自留地转让协议书是农村土地使用权流转中常见的法律文件,主要涉及到农民对自留地的使用权转移问题。自留地是中国农村特定历史时期的产物,通常是指农户用于种植蔬菜、果树等生活自给的土地。根据《中华人民...
在这一背景下,"自留地"可能意味着开发者在这个平台上拥有自己的开发环境或者项目空间,用于实验、学习或创新。 【描述】"Juno 的自留地 Application Development junomay.com" 的描述与标题一致,再次强调了这是一...
行业文档-设计装置-一种具有自留地效果形式的作物墙体
双语帮自留地,由双语帮出品,用于直接收藏喜欢的网站到双语帮桌面,一处收藏 永久保存。双语帮桌面,一个高效的网上桌面,高效的搜索、直达栏、自留地、音乐盒等,等待您来探索。 双语帮自留地,由双语帮出品,用于...
另客网自留地,由另客网出品,用于直接收藏喜欢的网站到另客桌面,一处收藏 永久保存。另客桌面,一个高效的网上桌面,高效的搜索、直达栏、自留地、音乐盒等,等待您来探索。 另客网自留地,由另客网出品,用于直接...
手把手教你WebSocket高清详细版 内容超级详细 特别适合初学者
先进数字集群:这里是技术作者分享文章,见闻和教程的地方。 今日全场最佳 两篇文章 两枚博客 交流 Telegram - 先进数字集群: 读者 如果你是读者,请直接寻找你感兴趣的内容: Daisea - 戴西之海 (暂不提供链接) ...
1. 文章描述了作者小时候管理自留地的经历,展现了他对劳动的热爱和对生活的热情。 2. 经营自留地就像创作艺术品,需要细心照料,体现了作者对生活的投入和对自然的敬畏。 3. 文章强调了劳动的价值和收获的喜悦,...
spring 整合remedy配置自留地
三、自留地(DIY):再精选的网址也不能让所有的网友都100%的满意,hao123ku.com特开辟自留地,30秒就能让最喜欢的网站显示在首页上面,过一把DIY的瘾。 四、记录搜索历史:记录最近用过的关键词,重复使用通过下拉...
禾木村,这个位于中国西部最北端的行政村落,是一处被自然恩赐的美丽之地,被誉为“神的自留地”。这里不仅拥有壮丽的自然风光,还承载着丰富的历史文化。禾木村是图瓦人民的聚居地,他们据说是成吉思汗后裔,保留着...
深夜买买买成了他们掌控时间的一种方式,是他们私人的“自留地”。 5. 阿里巴巴生态大数据:阿里妈妈营销研究中心、市场公关部和营销创意中心联合成立了制作团队alimamainsightlab,依托阿里巴巴生态大数据,运用...
lyjinger自留地之:我的Makefile 文档下载:Makefile
202102信息源与信息类型占比 微信公众号推荐 昵称_英语 weixin_no 标题 网址 FreeBuf Freebuf 邮件钓鱼入门到入土 国家网络威胁情报共享开放... 2020年全球国防网络空间情况综述(武器技术文章-上) 赵武的自留地 g
一个数据人的自留地通过线上文章和线下沙龙的方式,为数据从业者提供了一个交流和学习的平台,帮助大家共同成长。 8. 著名互联网公司案例:文档中提到的阿里、美团、百度等互联网大厂的数据产品经理的实战经验,为...
CSDN博客 - 码农的自留地 QQ 交流群:324112728 ,或者点击链接加入QQ群 官方虽然已经给出了教程 - Data Binding Guide (中文版 - Data Binding(数据绑定)用户指南) ,但是实践之后发现槽点实在太多,于是就有...
宅基地、自留地、自留山也属于集体所有。 - **解析**: 这一规定体现了我国土地所有权的基本原则。在我国,土地所有权分为国家所有和集体所有两种形式,这是基于社会主义公有制的基础之上建立起来的。 **知识点二:...
家庭收入有限,主要依靠父母的微薄工资和自留地种植的蔬菜,偶尔通过卖柴来补充家用,这揭示了农村家庭的饮食习惯和经济压力。 6. 教育与阅读:父亲回家时会带给孩子们零花钱,这不仅用于购买小人书,也体现了对...
主攻方向一:HAL层让大家尽情开辟“自留地” 主攻方向二:没钱就改版,改版就有钱 主攻方向三:去写主动型API,掌握主导权 主攻方向四:设计云计算中的专卖连锁店
焦建利是技术支持的教师专业发展的践行者,他通过博客《教育技术学自留地》(http://jiao.blogbus.com)分享自己的经验和知识,帮助高校教师提高自己的教学水平和教学质量。他的主要研究兴趣包括:技术教育应用、...