`
tedeyang
  • 浏览: 319041 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

大好文章自留地

阅读更多

好文自留地

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. 上面几条仅供参考 以上只是个人意见,不一定适合所有人。取舍由你了

 

 

 

0
0
分享到:
评论

相关推荐

    Juno 的自留地 Application Development junomay.com

    Juno 的自留地 Application Development junomay.com

    行业文档-设计装置-一种具有自留地效果形式的作物墙体.zip

    行业文档-设计装置-一种具有自留地效果形式的作物墙体

    双语帮自留地-crx插件

    双语帮自留地,由双语帮出品,用于直接收藏喜欢的网站到双语帮桌面,一处收藏 永久保存。双语帮桌面,一个高效的网上桌面,高效的搜索、直达栏、自留地、音乐盒等,等待您来探索。 双语帮自留地,由双语帮出品,用于...

    另客网自留地-crx插件

    另客网自留地,由另客网出品,用于直接收藏喜欢的网站到另客桌面,一处收藏 永久保存。另客桌面,一个高效的网上桌面,高效的搜索、直达栏、自留地、音乐盒等,等待您来探索。 另客网自留地,由另客网出品,用于直接...

    手把手教你WebSocket高清详细版

    手把手教你WebSocket高清详细版 内容超级详细 特别适合初学者

    DaiseaX:戴西之海 - 先进数字集群:技术作者自留地

    先进数字集群:这里是技术作者分享文章,见闻和教程的地方。 今日全场最佳 两篇文章 两枚博客 交流 Telegram - 先进数字集群: 读者 如果你是读者,请直接寻找你感兴趣的内容: Daisea - 戴西之海 (暂不提供链接) ...

    remedy配置

    spring 整合remedy配置自留地

    仿hao123网址大全源码下载v3.1

    三、自留地(DIY):再精选的网址也不能让所有的网友都100%的满意,hao123ku.com特开辟自留地,30秒就能让最喜欢的网站显示在首页上面,过一把DIY的瘾。 四、记录搜索历史:记录最近用过的关键词,重复使用通过下拉...

    Makefile

    lyjinger自留地之:我的Makefile 文档下载:Makefile

    sec_profile:今天爬取secwiki和xuanwu.github.iosec.to,分析安全信息站点,安全趋势,提取安全工作者账号(twitter,weixin,github等)

    202102信息源与信息类型占比 微信公众号推荐 昵称_英语 weixin_no 标题 网址 FreeBuf Freebuf 邮件钓鱼入门到入土 国家网络威胁情报共享开放... 2020年全球国防网络空间情况综述(武器技术文章-上) 赵武的自留地 g

    恶意代码清理完全手册

    稍不留神逛到一个恶意网站上,就会发现自己的IE标题栏换成了其他网站的名字、默认主页成了他家的自留地、系统被改得乱七八糟……更恐怖的还有让你的系统禁止使用、格式化硬盘、安装一个木马在机器上等等。...

    Xblog、PHPwind、Oblog三款主流商用博客软件系统的横向评测

    对于博客系统来说,其功能的实现在技术上难度并不大,关键的问题在于,由于这是用户网上的自留地,用户会对每一个细节都很挑剔,因此,这次评测的第一大类指标就是UE(用户体验)指标,第二大类是用户粘着度指标,三是...

    Android代码-MasteringAndroidDataBinding

    CSDN博客 - 码农的自留地 QQ 交流群:324112728 ,或者点击链接加入QQ群 官方虽然已经给出了教程 - Data Binding Guide (中文版 - Data Binding(数据绑定)用户指南) ,但是实践之后发现槽点实在太多,于是就有...

    安卓发展四大方向

    主攻方向一:HAL层让大家尽情开辟“自留地” 主攻方向二:没钱就改版,改版就有钱 主攻方向三:去写主动型API,掌握主导权 主攻方向四:设计云计算中的专卖连锁店

    成都四方伟业JAVA笔试题-notebook:你好2019

    基础架构自留地 JAVA 干货 掘金 :pineapple: Github :carrot: 其他文章 学习书籍 整理中...... :spouting_whale: 面试题整理 1.Lock和synchronized区别 2.用lock的好处是什么,怎么变成公平锁。 3.说一下volatile 4....

    大厂集体抢滩ChatGPT:谁真的有实力,谁在试点商业化?

    在各自领域成长为头部的互联网大厂们,近年来正在向“自留地”的纵深发展,正面交锋的机会并不多。直到大洋彼岸传来GPT的声音后,一下子抓住了大厂们的G点,他们仿佛听到了新一轮战争的号角,迅速奔赴AI大模型的战场...

    危机前的自我拯救|高效运维最佳实践(04)

    运维好比是池塘里的鱼,不管水域大小,都有一块自留地。但某天,突然来了一头鲸鱼,目标不是鱼而是水……所以运维的任务需随之而变——在水被吸干之前,提前上岸。运维2.0,就是那个带我们跳出池塘投身大湖的武器。...

    TypechoYST:Typecho简洁的主题

    请注意,你可以在非商业性使用的前提下自由地使用本主题,但是务必保留署名(Typecho Team / 期待已退化成等待 / Ginum / 疯子的自留地),你也可以基于此主题继续改造,同样的,你必须署名,且你不得因商业性目的而...

    leetcode题库-blog::memo:我的博客/笔记

    :house_with_garden:小码农的自留地 喜欢开坑(新文),不时完善(旧文),欢迎收藏(star) GitAds Some Articles :down_arrow:︎ JS HTML && CSS leetcode other Library HTTP 开发小记 设计模式 其他

Global site tag (gtag.js) - Google Analytics