从我的space 转过来
总的来说,我对于网络编程是很不感兴趣的,以前也曾经迷过一段时间,对于一些客户端的编程还勉强过得去,对于服务器端的编程就很次了,更不用说一些网站安全之类的了。
网络编程的一个好处是,你可以很快就看到结果,UI设计占了很大的一部分。这就是这么多象dreamweaver 这类WYSWYG (what is see is what you get) 编辑器的原因,在应用软件里,是很少的。为什么我说UI很重要呢?现在很多的公司,特别是大中型企业的老板,IT 部门的Head 都不理你用什么severside script 啊,他们要的是一个好看的,有一定的用途的网页就可以了。天下的老板都一样的,他们要能够看到实在的东西,不在意你在熬了几天的夜,没有结果,就bye bye。所以在一开始要给人做网页的时候,就要先了解一下,到底你的老板是怎么样的一个人。然后要考虑一下网页的要求,如果不需要维护太多,就静态了,相信我,现在很多网页,静态网页就应该满足了要求了,如果每天都要改变内容,就动态了。然后要考虑的是用不用CMS 系统,这个是大型网页要做的事。不说这些了,反正我也菜鸟的看法,说了让人笑话。
说说这个方面的前途吧。应该说web 2.0 是这个的前途。所谓的web 2.0 是一个concept ,一个abstraction, 并不是一个新的technology。它以 AJAX (asynchronous Javascript and XML) 做为出发点,在前两年正是开始standardize, 其实这个技术在97,98 年微软就开始用了,可是没有重视。 Web 1.0 也就是我们现在所看到的大多网页,大多数是以提供内容交换(information exchagne)为目的的, 象一开始的Yahoo,就是靠catalog 来吸引人的,现在网页的要求是,只要传达了信息,就可以了。而传达的信息方式有很多种,一种是文字,所以很多的网页都有大量的文字,这些网站由一些新闻网,社区网站可以看出来。一种是图片,这些由一些图片网站可以看出来得,而很多这些图片都是以美女取胜啊,哈哈,再者是设计,一些flash 网站,做得真得是很好,所有这些都是为了表达一些作者得一点东西。而web2.0 的主题是提高用户感受,user experience. 这个就象现在很多用户选择apple 的Mac OS X 的原因,同样的道理。苹果从一开始就向者 user experience 这个方面发展,而windows 更注重于作用,functions. 其实windows 最大的目标是中小型企业。扯远了。。。。总之,web 2.0 注重的是user experience。 于是ajax 进来了,它可以在页面不refresh 的情况下更新页面的内容,那就意味着,所有浏览器里的Back 按钮已经失去了用途了。这个内容到底是怎么load 进来的呢? 这个是用 XMLHttpRequest 这个object 做到的。 当XMLHttpRequest 从用户端clientside第一次送出去的时候,server 就会送回一个XML里面的内容来,而ajax就利用送回来的这个东西,如果你在XMLHttpRequest 要求从server那里的一个文件里送回来一点东西,你可以把那个XML文件名给HttpRequest这个object里的open() 这个 函数,那么你的XMLHttpRequest object 的responseXML 或者 ResponseText里的内容就是那个xml 文件里的东西。因为XML是一个很强的数据存贮形式,它几乎可以存贮任何用户定义的数据,所以这个东西其实用途很大。而这也是back 的按钮失去作用的原因,因为其实你的browser 只做了一个htppRequest 给server, 你没有什么history 可以写啊,你back 也是没有用的。
htppRequest 的运作形式是很有意思,它的open() 函数有第三个parameter 是一个boolean ,如果是true, 那么传送方式将是asynchronous ,什么意思呢?就是你可以看到一些东西,但是在网页的后面,它还是在继续从server 拿东西。如果是false ,那就是sychronous了,就是你看到的东西就是server 上的东西,当client 没有得server返回的东西前你是看不到人很东西在网页上的。所谓的Ajax就是用了用了asynchronous。其实我看不出来有什么很大的用途,因为如果这么做的话,你的网页向server 第一次发出的request 会很占你的网宽。当然了,如果你要求的东西很大,比如一个高分辨率图片image, 如果用户可以先看到一点大概的内容,就足够了,用户可以去看别的东西先,回来再看完整的图。如果你用过google map ,就会知道了,你先看到的是一个大概的图,然后一点一点变清楚,这就是ajax 的用途。这就是关于ajax 的asynchronous, 不过也是我自己的理解啦,不知对不对。准确来说,我觉得所谓的ajax 的东西并不是很好用,因为client side得到了responseXML 后,你要怎么样处理你的XML 内容呢?答案是用Javascript 或 VB script。 这就意味着,你的javascript file 会很大,你要做很多js file. 而javascript 是很难debug 的,从我自己的经验来看,如果你的javascript 超过了5万行,将是totally out of control,如果你把他们分成几个js 文件,那么你的网页在第一次load 的时候,就会在load javascript 文件的时间上花很多时间,这样即使就完全defeat 了提高用户感觉的目的,你不想盯着一个空白网页1分钟等它把client side 的js 文件下载完吧? 我参加做的一个project,因为做了太多的javascript,现在已经接近崩溃了,我用ie 打开,有时我的IE会完全崩溃啊。所以不要每次都把你的open() 的第三个参数设成true, 有时false 也是很好的,至少你的IE不会因为initial loading 而崩溃。 而javascript 最大的弱点是,没有debugger 啊。写javascript 你不知道你会错在那里,出一个错熬夜头发白了你也不没有办法,真正晕倒啊。
好了,足够javascript了,再说说其他方面吧,当然了javascript是一个OOP 的语言,它是flash Actionscript 的爷爷。所以它也可以做一些很花哨的东西,比如做一些拖拉 drag and drop,animation,画简单图形 之类的东西。这样用户就可以不用flash 了。插一下,我觉得flash 绝对是很强的,不知为什么成不了主流。
web 2.0 的另外一些概念,其实现在大家都见到了。blogging 其实也是其中之一,以前,大家都要做一个personal webpage,要自己动手html 什么的。可是blogging 不一样,它由你的provider 做好了,你只要做些customization 就可以。这样用户就很方便了啊。blog是很符合web 2.0 的精神的。
RSS 是web 2.0 的,以前,一个网站的内容更新了,你永远不会知道,你要去打开那个网站去看,这种是passive 的information exchange,而RSS 是Active 的内容更新,它是由那个新闻网站push 到你要的地方的,只要你subscribe 了。就像你订了报纸,报纸是会每天送到你门口。
BookMarking 又是一个web 2.0 的新东西,如果你试过yahoo.com.cn或者pageflakes.com 或者digg.com, 或de.licio.us 你就会知道,这也是个use-center 的web服务。你可以自由得选择自己想要得内容在yahoo.com.cn 的网页上,这样给了user 很大的权利。你要做的只是在yahoo 的customize panel 上drag 一个内容到页面上,以后你每次去yahoo.com.cn 就可以看到那个东西在yahoo.com.cn 页面上了,而别人是不会看到你加的那个东西的。我怀疑是用cookie 实现的。而digg 和 de.licio.us 在这个基础上加了一点东西。他们通过了user rank 这个东西来决定什么东西应该在他们的主页上。user 可以对他们页面的没一个东西进行rank 。 rank 最高的也就是最popular 的东西,就会出现在他们的主页最显眼的地方,这样你永远看到最popular,最in 的东西了。这个是很web2.0 的东西。其实这个的实现,当然不可能完全用ajax加XML 了,数据库当然很重要。不过那很次要,因为我们只要user 感觉好就可以。
user editing 也是一个很大的概念,现在做的最好的是writly.com 了吧。它可以让用户登陆,然后在网页上建立一个microsoft word 的文件,保存,然后可以下载。有什么特别的地方呢?有一个很大的区别,因为用户现在不需要花钱买office 了啊,到那里注册一个帐户就可以了。另一个做的很好的网站是thinkfree office 网站。那个强的,不是一般啊。meebo.com也不错。这个说明了web2.0 里另一个很重要的概念。web2.0 是要把web 做为一个很大的platform, 平台。就像把internet 当作一个很大的主机。里面有各种各样的软件已经install 在那里了,你只要register 就可以用了。不禁会想,那MS 不是要疯了啊,它的office 怎么卖? 哈哈。。不过也许以后你register 也要很多钱,还不是一样,真是很TMD没有办法,总之这些家伙是需要钱的啦。。。。其实这样做也是很好的防盗版的方法,你register才可以用啊,那那些offfice crack 还有个Pi 用啊。不过真的是很方便啊,现在用户的电脑的只要有intenet access 就可以了。至于怎么实现那些网站,现在最主流的是用ajax ,加xml 再加上j2ee 或asp.net。
好了,够多了,以后有空再加。总之,google 的一切东西,都走在了web2.0 的最前端,它是web 2.0 和user experience 的领跑者。乱说一通,不知道对不对。