香港最卖座30部
1. 色,戒 [2007] – 3910万数据统计截至10月29日
2.《本能》(Basic Instinct) [1992]
3. 《艳舞女郎》(Showgirls) [1995] - 1891万
4. 《玉蒲团之偷情宝鉴》[1991] - 1842万
5. 《黑社会》[2005] – 1589万
6. 《97古惑仔:战无不胜》 [1997] – 1579万
7. 《八仙饭店之人肉叉烧包》[1993] – 1575万
8. 《耶稣受难记》 (The Passion of the Christ)[2004] – 1546万
9. 《情人》(The Lover) [1992] – 1487万
10. 《我在黑社会的日子》[1989] – 1403万
11. 《香港奇案之强奸》[1993] – 1375万
12. 《情不自禁》[1991] – 1361万
13. 《黑社会2:以和为贵》[2006] – 1358万
14. 《灭门惨案之孽杀》[1993] – 1327万
15. 《羔羊医生》[1992] – 1275万
16. 《美国丽人》(American Beauty)[2000] – 1254万
17. 《蜜桃成熟时》[1993] - 1230万
18. 《庙街皇后》 [1990] – 1182万
19. 《色情男女》 [1996] – 1161万
20. 《聊斋艳谭》[1990] – 1128万
21. 《黑太阳731》[1988] –1109万
22. 《醉生梦死之湾仔之虎》[1994] –1106万
23. 《聊斋艳谭续集:五通神》 [1991] –1103万
24. 《偷窥》(Sliver)[1993] –1073万
25. 《晚9朝5》 [1994] –1046万
26. 《三度诱惑》 [1990] –1044万
27. 《满清十大酷刑》 [1994]-1040万
28. 《濠江风云》[1998] –1030万
29. 《卿本佳人》 [1991] - 1026万
30. 《香港舞男》 [1990] – 1024万
英国卫报:世界上最有用的100个网站
12月28日消息,下文是英国《卫报》评选出的“世界上最有用的100个网站”,从中我们可以了解英国人目前最为关注的网站是哪些,也可以了解目前互联网发展的趋势和方向,看看这些网站您是否曾经关注过:
两年前,多数英国人都没有安装宽带,Web 2.0也刚刚进入开发人员的视野。2006年,许多事情都已经发生了改变。
2004年,因特网还是另外一个样子:例如,没有YouTube。许多上网的英国人都没有安装。如今这一些都已经发生了戏剧性的变化:现在,超过75%的用户已经安装了宽带,Web 2.0的到来已经让访问网站的速度和运行自己的机器一样快了。我们可以重温一下两年前我们给出的名单。其中一些网站有了新的发展,有些还在原地踏步。这里我们以20个分类列出100个网站,与上一次的名单相比,这里有许多新的网站,同时也还有许多那时就存在的网站,当然它们依然非常重要。
一、应用软件
为什么要在浏览器中运行一个应用软件?因为可以与不同位置的人们分享任务,这在进行有密码保护的工作时候非常有效。backpackit.com因其简单的任务,basecamphq.com因其成熟的项目而当选。Tadalis很简单,类似于DOS。而Google的Documents &Spreadsheets需要一个Google帐号(免费的),而且它不打算与微软竞争。Wikicalc是一个免费的在线电子表格,发展也非常迅速。
backpackit.com
basecamphq.com
tadalist.com
docs.google.com
softwaregarden.com/wkcalpha
Blogs: reading
二、博客:阅读
互联网上有着无数的博客服务网站,用户需要选择最好的。通过RSS和博客搜索引擎就可以简化工作。Technorati虽然有时候比较诡异,但是一般情况下是一个可以值得信赖的博客导航网站。Icerocket很善于粘住用户。网民需要在网上找到能包含自己最感兴趣的事,那么Newsgator 和 Google Reader就是一个很好的选择。另外,Bloglines也是一个很好的信息获取网站。
technorati.com
icerocket.com
newsgator.com
google.com/reader
bloglines.com
三、博客:写作
网民需要找到一个好工具来写作,而不仅仅是阅读。开源和免费的软件程序Wordpress就突显了出来,它因自己的创造性、管理能力和发布信息的工具,已经将它的竞争对手远远抛在了身后。Wordpress.org是一个免费的软件;wordpress.com提供免费包的付费、管理版。Blogger是剩下的里面最好的。Vox灵巧、简单而且免费,同时包含了很多的社交应用功能。Statcounter统计非常棒,能为你的网站提供很好的统计数据。免费的Google Analytics也非常好。
wordpress.org
blogger.com
vox.com
statcounter.com
google.com/analytics
四、电子邮件
Google的Gmail是基于网络的电子邮件系统,缺点就是在英国还是只有受邀请才能使用。但是,Yahoo的免费邮件服务是一个厉害的竞争者,而微软也有Live Mail。与微软以前的Hotmail服务不同,如果你30天中不登陆的话,它不会删除你所有的旧信。在所有这些免费服务商中,Bluebottle因为它对垃圾邮件的过滤功能而深受人们喜爱。免费版本提供250MB的存储空间,并且支持POP3 和SMTP标准,因而网民从中可以获得一个很好的邮件程序和网络通道。另外还有TempInbox,它提供免费、临时的邮件帐号,而且不需要注册。
mail.google.com
mail.yahoo.com
mail.live.com
bluebottle.com
tempinbox.com/english
五、游戏
如今互联网上有许多视频游戏网站,你需要一个像Gametab这样的导航帮你找到最好的。Pocketgamer深入研究了手控游戏,Gamasutra收集得非常全面。Gamesfaqs拥有常见问题解答和预演(另外还有游戏的秘笈、复盘和预览等)。ESRB允许按照年龄段来搜索。
gametab.com
pocketgamer.co.uk
gamasutra.com
gamefaqs.com
esrb.org/ratings/index.jsp
六、地图
在Google地图和人造卫星图像出现以前,每个人都会看Ordnance Survey的数据,这意味着它们之间没有什么区别。Ordnance Survey已经升级了自己的网站,可以告诉你该买一个地区的哪个地图。它的地名搜索非常棒。与此同时,New Popular Edition能够显示地区在上个世纪40年代时的样子,这非常不错。
maps.google.co.uk
streetmap.co.uk
multimap.com
ordnancesurvey.co.uk
npemap.org.uk
七、新闻:主流媒体
BBC继续在自己的道路上行进,它提供了多种媒体形式,同时允许用户添加自己的评论。《纽约时报》网站虽然关闭了一些内容,但是它依然非常强大。这两个网站的RSS feeds在bbcriver.com和nytimesriver.com上可以使用手机来阅读。Google新闻也尽其所能,虽然头条依然是最新的,而不是最为准确的。Nowpublic是OhMyNews来自美国的竞争对手,宣称拥有52,000个配备移动电话的业余记者,而且这些人的位置可以通过GPS或者手机定位来获得。
news.bbc.co.uk
nytimes.com
news.google.co.uk
english.ohmynews.com
nowpublic.com
八、新闻:推荐
Web 2.0所能做到的一件很好的事情就是,它能够让许多人来投票。虽然可能会被滥用,但是一般情况下还是能够起到很好的作用。那些能让网民投票的网站,以及博客热衷于讲故事的网站(memoerandum)现在越来越多了。最大的就是Digg,今年年初已经超过了Slashdot。Reddi如今被《连线》杂志所收购。Findory有点不同,你越用它学到的就越多。
digg.com
reddit.com
memeorandum.com
megite.com
findory.com
九、特色
Snopes披露难以置信的故事、诡计和城市传说,并且揭穿或者证实这些故事。另外,还有100个看上去无用,但是非比寻常的网络博物馆。其中包括虚拟卫生纸博物馆、老计算机网罗博物馆和交通信号标识博物馆。网民可以通过Weird网站上的链接找到许多其他有趣的网站。Onion是网上的讽刺文学杂志,不过它对美国存在偏见。如果要休息5分钟,那么可以浏览B3ta。这个英国网站每周发送一次酷站的直邮,它还有一个信息公告板供人们粘贴有趣的处理图。但是需要注意的是:有人认为,它常常会产生人身攻击,对于工作的人来说并不安全。
snopes.com
ringsurf.com
theweirdsite.com
theonion.com
b3ta.com
十、政治
对Theyworkforyou和 Publicwhip 来说,MySociety依然是不可战胜的,因为它将Hansard纳入旗下。但是,博客已经开始向大众披露一些政治人物上不了台面的事情。Guido Fawkes有来自威斯敏斯特市的许多内部消息,而NO2ID经常会引发有关政治和科技方面的争论。与此同时,NHS 23是一个wiki网站,经常讨论政治、技术和国民健康保险制度等话题。
theyworkforyou.com
publicwhip.org.uk
5thnovember.blogspot.com
no2id.net
editthis.info/nhs_it_info
十一、公众行为
需要揭露一些当权者的弊政了。网络的不同之处在于它的不断成长,政治家如今也上网。而且也有一些请愿的网站。Pledgebank 和HearfromyourMP都是MySociety (mysociety.org)家族下的网站,让市民和决策者之间有个交流,这样才使得人们有所期待。包括The Virtual Activist的Netaction网站,是网民在线提出方案的一个重要工具。那些对发展自己地区有兴趣的人可以上Timebank,可以找到一些用于打发业余时间的组织。
pledgebank.com
petitions.pm.gov.uk
hearfromyourmp.com
netaction.org
timebank.org.uk
十二、广播
广播现在已经传递到千家万户。BBC在这里占据优势地位,但是依然有许多地方站从AOL的短讯中获取即时的新闻,这非常有趣。雷达和无线电设备遍布世界,所以你总能找到可以听的东西。Reciva做的事情也是一样,但是如果你购买了它的网络收音机,你可以在线添加你自己喜欢的节目。
bbc.co.uk/radio
shoutcast.com
radio-locator.com
live-radio.net
reciva.com
十三、推荐:音乐
能够发现与你喜欢的音乐相似的素材,这一点显得越来越重要,无论是收听者还是唱片公司都希望从中获利。Last.fm需要在你的机器上运行一个软件,显示其他人有此音乐的人喜欢的是什么。Pandora称你需要一个美国的邮编,给它一个然后你就可以听到精心挑选的节目了。Liveplasma能够搜索相关的电影和音乐。Tuneglue是last.fm与EMI投资的一个新网站,使用Amazon和last.fm的数据。Goombah需要下载,而且只能在iTunes中播放音乐,但是有时也还是比较重要。
last.fm
pandora.com
liveplasma.com
audiomap.tuneglue.net
goombah.com
十四、索引
Wikipedia占据了索引网站的主导地位,部分原因是因为它的网页与Google高度相关。用户撰写的东西,虽然不是十分可信,但是却是非常有趣的。Wikipedia一直与大英百科全书竞争,而大英百科全书不是免费的。另外一个可选的网站是HighBeam 百科全书,它从哥伦比亚百科全书上搜索了超过57,000篇文章。另外,Jim Martindale索引创建于1994年,提供了大量的索引资源。对于单词来说,最好使用Onelook,它提供了931个词典中的750万单词。而且它还能够根据单词的意思来查找到单词。最后,Teldir与世界上的在线电话簿相联系。
en.wikipedia.org
encyclopedia.com
martindalecenter.com
onelook.com
infobel.com/teldir
十五、科学
Alphagalileo提供了欧洲面对民众的科学信息,是eurekalert的对应网站。Eurekalert是美国的协会,主要是为前沿科学发布宣言的。Space.com依然关注于空间科学。Nasa包含了财富方面的信息。气候变化重要性的突显使得有气候变化学家撰写的RealClimate博客的地位也越来越高了。
alphagalileo.org
eurekalert.org
space.com
nasa.gov/home
realclimate.org
十六、搜索
Google依然是我们获取信息的主要手段(占据所有搜索用户的一半),但是这并不意味着它是最好的。如今的搜索可以包含硬件、博客、图像、点对点甚至是过去的历史记录。Blinkx因其对视频的专著依然是独特的,而Ask也取得了很大的进步,虽然它只吸引了很少的用户。
google.co.uk
search.yahoo.com
search.msn.co.uk
blinkx.com
ask.com
十七、社交
网民可以在网上找到与自己兴趣相同的人,可以创建自己的个人空间与别人分享。社交网络现在越来越多,但是依然没有阻止MySpace成为老大。Bebo也很流行。Habbo吸引了很多年轻人,而Friendster 和LinkedIn则吸引了很多年龄大的网民。
myspace.com
bebo.com
habbo.com
friendster.com
linkedin.com
十八、视频
虽然YouTube上的人非常多,但是它不是唯一能够找到视频的网站。Revver提供了一个收益分享系统,当别人观看你的视频的时候,你就可以获得一定的现金。你也可以在brightcove 和currenttv创建自己的电台。另外,Videojug上演示了怎么去做那些可能有用的工作。
youtube.com
revver.com
brightcove.com
currenttv.com
videojug.com
十九、虚拟世界
与MySpace等社交网站不同的是,虚拟世界给你一个替身,用于代表虚拟世界中的你。宽带的使用加速了计算机运行速度,使得这一切变成可能。BBC在Second Life上举行一场音乐会,这听起来比较诡异。IBM首席执行官拥有了一个替身,这使得Habbo Hotel上人满为患。World of Warcraft拥有数百万的用户,并且在寻找自己的文化。用户也可以在Sims在线上玩耍。大量新人的涌现是否会让这个世界上的人与人之间变得更加冷漠,这依然是一个未知的问题。
secondlife.com
habbohotel.co.uk
worldofwarcraft.com
thesimsonline.com
eqplayers.station.sony.com/index.vm
二十、时代潮流
这个每个人都在谈论的。这些网站之所以如此引人注目,是因为它们代表了整个世界在思考些什么。看着它们从我们身边经过,不要忘记:YouTube是网络上流动的图像;Flickr是静止的图像;Google的搜索趋势代表者整个世界在寻找的东西;Digg表示我们找到了什么;Technorati表示人们正在写着什么。
发Symbian智能电话应用
Symbian 操作系统(OS) 已经成为智能电话操作系统的主流。 Symbian OS, 以32 位抢占式多任务处理技术, 能在移动电话跑一些相当华丽的应用(pretty flashy applications)。
现在市场上大多数的智能电话采用Symbian OS v6.1 和v7.0s. Symbian 在2004 年2月发布了OS V8.0, 对Java 和多媒体进行了重大升级。 Nokia 的第一个3G 电话就是基于Symbian (Nokia 6630), 使用了V8.0 中特有的视频流和视频会议能力。
大约30 个移动电话厂商采用了Symbian OS ,譬如Nokia 、索尼、Ericsson 、Motorola 和Samsung. 并且, 在去年今天,有几乎20 百万个电话在使用它的OS, 以火爆的百分之200 成长(growth)。它提供移动软件开发商能嵌入的一个可伸缩的和可扩展的基础开发库。 如果您不是Symbian 开发商, 那么强烈考虑成为的一个! (strongly consider becoming one! )
第三方独立软件商(ISVs) 和企业组织, 迅速地开发基于Symbian的应用,游戏和时间管理应用是热销的商品,由于在智能电话上有更好的处理图形能力,和兼容不同的智能电话, Symbian OS有各种各样的参考平台(用户界面) , 也就是60系列 和UIQ.
流行的60系列平台, 是Nokia Mobile Software 开发的, is available through license agreements for Nokia phones as well as many other vendors, such as LG 电子、Lenovo 、Nokia 、Panasonic 、Samsung 、Sendo 和西门子。 60系列 为Java 和C++ 开发商提供一个完全智能电话参考设计包括浏览器、媒体播放装置、日历、SMS 、MMS 和一套APIs.
60系列 是为高端电话应用设计的,支持日历, 交际管理者软件, 多媒体短信, 电子邮件, 浏览器和图像, 实际上, 例如, 联络功能可显示联络名单(the Contacts function readily displays a list of contacts CZJ注:好像是废话)。 Ready-to-run 应用, 譬如电话本和像册。
60系列 提供一个高位颜色屏幕格式(a large color screen format), 相当好的170x208 像素。 然而,记住,电话屏幕可能将演变。 在您的应用开发中请务必考虑。 例如, 我发现它最好是在运行时计算屏幕位置而不是使用固定的座标。 代码成功地将跑在未来设备有不同的屏幕尺寸的那样。
60系列 1.x 根据Symbian OS 6 .1, 和60系列 2 .x 利用Symbian OS 7 .0s, 增加在机上照相机支持尤其。 没有打破的兼容性标准, 各种各样的电话制作商定做60系列 接口包括不同的位图、声音、色彩设计、字体、术语、菜单系统和钥匙。
UIQ 2.1, 由UIQ Technology开发, 是一个基于笔的图形用户界面,屏幕是208x320 的移动电话。 索尼和Motorola 用UIQ 作为平台。 UIQ 3.0, 发布了在2004 年2月, 在UIQ 2.1提供几种改进, 包括支持对于更小的屏幕显示和电话需要one-handed operation 单手操作。 UIQ 适合特别的屏幕尺寸和输入方式的手机开发.
您选择哪种手机作为目标设备将决定您需要哪种平台。 例如如果您的应用是为Motorola A1000设计的, 那么您应该使用UIQ 2.1 接口。 而Nokia 6600, 60系列 2.0 比较合适。 记住, 保证开发工具支持可适用的平台。
Nokia, 60系列发展的强大后盾, 提供工具帮助您把UIQ 应用转换成60系列 。有的公司例如 Peroon 公司还提供从60系列导出到UIQ的工具. 一些集成开发环境(IDE) 制作商, 譬如Metrowerks, 同时支持60系列 和UIQ 开发。
下列是支持Symbian 的几个IDEs:
AppForge Crossfire5.5. 这IDE 直接地集成微软Visual.basic. Crossfire功能包括是非常简净的, 它实际上it's hard to find the seams! Crossfire增加许多独特的控件为Symbian OS 应用, 包括标准控件譬如Label, Radio, TextBox, ComboBox and ListBox, 还有一些改进的, 譬如Camera, Filmstrip and Movie。 对Crossfire的用途是理想的如果您是一位经验丰富的Visual.basic 开发商。 在这种情况下, 您已经通晓工具接口和调试器。 Crossfire, 您能使用C #, VB.net, 或Visual.basic 6.0 开发运行在,除了Symbian OS ,还包括所有主导的Palm 和Windows Mobile devices . 然而,它的致命弱点是, 为了达到跨编译器和快速移植到不同操作系统上的目的,它要求一个特别Crossfire客户文件包括在各个客户设备。 这增加费用和内存要求。 范围从大约500KB 到1.3MB.
Borland Mobile Edition。
C++BuilderX Mobile Edition 1.5 是跨平台, 多编译器C++ 开发环境。 这个工具现在提供on-target调试。 You can use the same debugger interface via a serial or Bluetooth connection with the phone
您能用同样调试器接口通过串口或Bluetooth与电话连接, which is great for fully testing timing and resource management。 Import wizard 容易地转换Symbian OS SDK 项目格式成C++BuilderX 项目。
Borland JBuilder 9 Mobile Edition v1.1 支持MIDP 2.0 和支持在Linux上开发。 Borland Mobile Studio 包括C++ 和Java 开发环境,提供统一的应用开发、调试和部署。
Metrowerks CodeWarrior. 与这IDE, 您可以用C/C++ 开发Symbian OS 电话通过plugging in多种device-specific Symbian OS SDKs. CodeWarrior 使用一个项目范例管理原始代码、图书馆和资源。 有并且一台联合调试器以Symbian OS 仿效为60系列 和UIQ 平台。
选择IDE。 如果您是一位Visual.basic 开发商, Crossfire可能会是一个好选择,
如果您的应用需要运行在多个操作系统。 您主要熟练与C++, Borland 或Metrowerks 也许是最佳。
为了支持对于不同的手机操作系统频繁地改变, 经常修改代码是肯定的 (CZJ注:看来这行当真不好做啊!)。
WiKi融入电子表格软件 互联网发展大势所趋
1979年,Bricklin发布VisiCalc,是第一款适用于个人电脑的电子表格软件。现在,他即将完成WikiCalc的beta测试版。
WikiCalc是一种挂在浏览器上的开放源代码协同作业工具,功能模仿电子表格软件,但同时引用wikis让使用者随时随地编辑互联网信息的技术。
?WikiCalc是用AJAX写的一般用途工具,可在本机上执行,也可通过Windows、Mac OS X、Unix或Linux服务器执行,现在已有alpha测试版,更稳定的beta测试版可望在2月底前发布。

WikiCalc让使用者输入、存储和修改以表格格式编纂的信息。Excel、Lotus 1-2-3和VisiCalc使用者对这种格式再熟悉不过了。
?
?
协同软件制造商SocialText公司的首席执行官Ross Mayfield说:“这个潜力很大,既因为采用的是电子表格软件隐喻(spreadsheet metaphor),即人们处理量化信息的熟悉方式,也因为世上没人比他更胜任这项任务。”
长久以来,有个问题始终困扰着IT界,就是电子表格软件应用程序传统上只适合一人使用,但各界渴望能有让许多人迅速、轻易编辑信息的电子表格软件功能。Mayfield认为,WikiCalc就是解决这个问题的答案。
Excel的竞争对手?
当然,WikiCalc不是在互联网上使用电子表格软件功能的唯一方式。另一项称为Num Sum的产品,让使用者建立架构在网上、可分享的电子表格软件,但未采用WikiCalc的开源模式。
多人共同编辑同一份电子表格软件的功能,微软Excel本身并未提供,但微软去年收购的协同工具Groove则办得到。
今年稍后推出Office 2007后,企业用户若是购买高价位的企业版Office,即可同时取得Groove与Excel。Windows Sharepoint Services也提供wiki式的电子表格软件编辑功能。
此外,已在大众测试阶段的JotSpot Tracker,也是类似WikiCalc的产品,让人人都能建立、发布和分享定制化的电子表格软件及其他追踪(tracking)软件,可与其他的应用程序结合起来。
但在电子表格软件领域,每一种产品难免会被拿来与Excel比较,而Bricklin的软件一下子就解决困扰使用者多年的问题。
Mayfield说:“用Excel,人们得整天互打电子邮件排球,用附加文件传来传去的,很没有效率。你要如何追踪电子表格软件上的变化呢?假如制表的人不只两人,而是财务部里40个人设法一起整理数字信息,该如何是好”
Bricklin的解决办法,是让使用WikiCalc者输入信息,供其他的人修改,同时让修改的情况立即显示在每个参与者的电脑屏幕上。
他说:“你可以把它当成一种编辑工具(authoring tool),除了一个ISP提供的代管帐号之外,什么都不需要。”
截至目前,WikiCalc的功能尚未完全上线。例如,在单元格里输入HTML并对网络信息作动态呼叫(dynamic call)的功能,现在尚未提供。但Bricklin说,到2月下旬beta测试版发布时,大多数的功能应该都会准备就绪。
熟悉详情的人指出,就电子表格软件功能而论,WikiCalc当然还不能与Excel相提并论,但已能处理许多电子表格软件式的功能,包括以表格格式呈现信息,并在独立的单元格里套用计算公式。这正是WikiCalc可让广大使用者容易上手的功能。
但WikiCalc要发挥潜力,必须要广为宣传才行。近年来,Bricklin忙于顾问、演讲和经营自己的软件公司Software Garden,可能缺乏营销经验。
英国软件开发者顾问Dennis Howlett说:“Bricklin有很强的软件背景,但能不能打开市场,是另一回事。我觉得他和蔼可亲,平易近人,对造福社区的思考深刻。但就我的经验来看,这样的好人似乎不太擅长营销。”
不过,Howlett是WikiCalc的粉丝。他认为,就算这个软件无法取代Excel在职场的地位,至少也能满足许多不同的需求。
他说:“Dan (Bricklin之名)让WikiCalc简单易用,符合只需做简单任务者的需要。”而且,因为这是开放源代码的软件,所以依照通用公共授权(GPL)唾手可得,不费分文,企业也可依照传统授权购买。
Howlett预期,WikiCalc会发展出众多有创意的用途,例如用在会计环境下,即可提供Excel未内建的交易报表工具。
他说:“从开发人员的观点来看,WikiCalc是一种解决那种问题的方法。因为他们可轻易把交易信息取来置入电子表格软件,省掉至少一、两个步骤。”
Howlett相信,WikiCalc允许众人共同编辑信息,也可用来拆除财务部门与销售部门的籓篱,甚至化敌为友。
不论如何,Bricklin都对WikiCalc即将面世兴奋不已。他认为,这个软件会向世人展示,生产力工具朝互联网发展,是未来的大势所趋。
他说:“这不是Excel,正如维基不是Word一样。但我认为这显示趋势可能往哪里走。正如同一些网页电子邮件系统可能是附属于用户端电邮软件的子集合,服务器方面也应该大有可为。”
淡泊
晚上无聊,总感觉自己的心情很浮躁。。。
Google了一个关键字“淡泊”,发现了这个叶子。
看完之后,很喜欢这两句:
1。“现在学生学习认真不认真?”谈话之中,冯先生几次问弟子叶君远。冯先生说,“做学问要实实在在,不能求名求利。”
2。冯先生说,中国的学问无穷无尽,有如大海,有如高山。“做学问是一辈子的事,绝非一朝一夕就可以成功的,一定要肯下功夫,肯吃苦,要自甘寂寞和淡泊。一个真正的求知者,是应该永不满足,永远要奋力探求的。”
我当然仅仅是个普通的JAVA程序员。。。不是做研究搞学问的,但是冯先生关于做学问的看法,和做事,做人,写程序不也都一样吗?哪一行不是应该都要这样么。踏踏实实的,勤勤奋奋的,一丝不苟,坚持一衡。
可是自己似乎太过于浮躁了,尽管我刚踏入这一行就知道最怯浮躁。。。可是始终还有被浮躁的身影左右。
譬如最近,我就总在想这些:
1。如何换份高薪的工作。
2。在BlogJava多发表文章,或者如何在JavaEye多回帖,显摆自己,提高自己的知名度。
3。看看这个BLOG左侧正在读的书,一下子4,5本。看看这个看看那个,通常是一本书没有充分理解。就又开始买新书或者读别的。
其实,有时候。真的不清楚是环境造成的,还是自我的毛病。总之,中国的各行各业似乎都充斥着浮躁的身影,太多的人都想投机取巧,急于求成。所以,我们没有发明过C/C++、Java、Ruby。我们没有“NIKE”,“SONY”,“三星”这样的世界名牌。。。
似乎今夜的思路特别顺畅,可能是因为好久没有写点非技术的东西了吧。所以写出来觉得很畅快。。。我发现其实客观的认识自己,承认自己比较困难。但是一旦开始分析,那么其实也很容易。
经常看一些激励或励志的书籍,把自己的信心弄得足足的是件好事。可同时也会让自己变得冲动,盲目和浮躁。所以有时还是应该停下来思考一下自己的轨迹。修正一下位置。
一定作一个实实在在的技术工作者。认认真真地学习技术,不要那么浮躁。
虽然周围的气氛也许并不太适合,而且容易影响我的心情。但是我一定要努力克服这些外界因素,还自己一个简单不含杂质的心灵。
也许说得过于理想化,不太可能做到这么完美,但是不完美并不代表要放弃对完美的追求。默默的努力,总会带来回报和更多的收获。
写下这篇文字,作为对自己的提醒,同时想把它放到BlogJava首页,希望更多的人看到并学习这种对待事物的态度。希望周围有更多认认真真地人。希望大环境变得越来越好起来。也希望个人有更多的提高和进步。
Java代码查询站点
你还在用if else吗
面向过程设计和面向对象设计的主要区别是:是否在业务逻辑层使用冗长的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可以看出你有没有将运行顺序分离到家。
设计模式的切入口
经常有人反映,设计模式是不错,但是我很难用到,其实如果你使用if else来写代码时(除显示控制以外),就是在写业务逻辑,只不过使用简单的判断语句来作为现实情况的替代者。
还是以大家熟悉的论坛帖子为例子,如ForumMessage是一个模型,但是实际中帖子分两种性质:主题贴(第一个根贴)和回帖(回以前帖子的帖子),这里有一个朴素的解决方案:
建立一个ForumMessage,然后在ForumMessage加入isTopic这样判断语句,注意,你这里一个简单属性的判断引入,可能导致你的程序其他地方到处存在if else 的判断。
如果我们改用另外一种分析实现思路,以对象化概念看待,实际中有主题贴和回帖,就是两种对象,但是这两种对象大部分是一致的,因此,我将ForumMessage设为表达主题贴;然后创建一个继承ForumMessage的子类ForumMessageReply作为回帖,这样,我在程序地方,如Service中,我已经确定这个Model是回帖了,我就直接下溯为ForumMessageReply即可,这个有点类似向Collection放入对象和取出时的强制类型转换。通过这个手段我消灭了以后程序中if else的判断语句出现可能。
从这里体现了,如果分析方向错误,也会导致误用模式。
讨论设计模式举例,不能没有业务上下文场景的案例,否则无法决定是否该用模式,下面举两个对比的例子:
第一. 这个帖子中举例的第一个代码案例是没有上下文的,文中只说明有一段代码:
| main() { if(case A){ //do with strategy A }else(case B){ //do with strategy B }else(case C){ //do with strategy C } } |
这段代码只是纯粹的代码,没有业务功能,所以,在这种情况下,我们就很难确定使用什么模式,就是一定用策略模式等,也逃不过还是使用if else的命运,设计模式不是魔法,不能将一段毫无意义的代码变得简单了,只能将其体现的业务功能更加容易可拓展了。
第二.在这个帖子中,作者举了一个PacketParser业务案例,这段代码是体现业务功能的,是一个数据包的分析,作者也比较了各种模式使用的不同,所以我们还是使用动态代理模式或Command模式来消灭那些可能存在的if else
由以上两个案例表明:业务逻辑是我们使用设计模式的切入点,而在分解业务逻辑时,我们习惯则可能使用if else来实现,当你有这种企图或者已经实现代码了,那么就应该考虑是否需要重构Refactoring了。
if else替代者
那么实战中,哪些设计模式可以替代if else呢?其实GoF设计模式都可以用来替代if else,我们分别描述如下:
public class Order{ private int status; //说明: //status=1 表示订货但为查看 ; //status=2 表示已经查看未处理; //status=3 表示已经处理未付款 //status=4 表示已经付款未发货 //status=5 表示已经发货 } |

OO设计的总结
还有一种伪模式,虽然使用了状态等模式,但是在模式内部实质还是使用if else或switch进行状态切换或重要条件判断,那么无疑说明还需要进一步努力。更重要的是,不能以模式自居,而且出书示人。
真正掌握面向对象这些思想是一件困难的事情,目前有各种属于揪着自己头发向上拔的解说,都是误人子弟的,所以我觉得初学者读Thinking in Java(Java编程思想)是没有用,它试图从语言层次来讲OO编程思想,非常失败,作为语言参考书可以,但是作为Java体现的OO思想的学习资料,就错了。
OO编程思想是一种方法论,方法论如果没有应用比较,是无法体会这个方法论的特点的,禅是古代一个方法论,悟禅是靠挑水砍柴这些应用才能体会。
那么OO思想靠什么应用能够体会到了?是GoF设计模式,GoF设计模式是等于软件人员的挑水砍柴等基本活,所以,如果一个程序员连基本活都不会,他何以自居OO程序员?从事OO专业设计编程这个工作,如果不掌握设计模式基本功,就象一个做和尚的人不愿意挑水砍柴,他何以立足这个行业?早就被师傅赶下山。
最后总结:将if else用在小地方还可以,如简单的数值判断;但是如果按照你的传统习惯思维,在实现业务功能时也使用if else,那么说明你的思维可能需要重塑,你的编程经验越丰富,传统过程思维模式就容易根深蒂固,想靠自己改变很困难;建议接受专业头脑风暴培训。
用一句话总结:如果你做了不少系统,很久没有使用if else了,那么说明你可能真正进入OO设计的境地了。(这是本人自己发明的实战性的衡量考核标准)。