现代社会,没有人没有上过网,没有看过网页。但是,大多数人打开网页,一般只会联想美工制作等等视觉要素。这种看法是很正常的,可是说到要学习网站开发,其实还是很有学问的――这里,我们就开始谈一下Web编程。
Web编程包括很多内容,按我自己的分法,我将它分为静态编程与动态编程(也有人称为网页编程和动态页面编程,其实是一样的),前者是网页制作的基础,也是最为简单的部分,后者是我们进行网站管理维护,Web开发应用所进行的深入一些的技术。
Internet发展的初期,由于当时网络性能与技术的限制,大多数的网页都是静态的,即用户不能与服务器动态交换,信息不能动态更新等等;而大多数人Web编程的道路就是从这个层次的技术开始的,因为这里包含着极其简单容易入门而任何网页又都离不开的HTML(超文本标记语言),我们现在上网能够看到的所有东西,都是它的功劳,用了几天,你就可以掌握HTML(千万不要用Dreamwaver等等,我们要的是NotePad,就是鼎鼎大名的记事本),用它写出让你可以自豪大约半天的页面了。然后,你要追求网页的精美,字体统一,表格个性等等,这样,Css就可以帮你了,有了它和HTML,你就可以随心所欲的驾驭网页上面的任何的元素了,就这样,静态页面的所有东西就可以解决了(什么?你要特效,那就只有再稍微看一下JavaScript了,这种脚本可以帮你制作各种特效,不过,网络发达的今天,网上有成百上千的特效,载下来修改倒也是一种省时省力的方法)。当然,静态编程还有很多的东西,比如现在很流行的XML(可扩展标记语言)等等,这里就不多说了。
静态页面的制作比较简单,技术含量也相对较低,接下来我们看一下动态编程。或许,同学们经常纳闷一些网站提供在线聊天,还有七七八八的校友录论坛,奇怪自己会用Dreamwaver等工具作出漂亮的页面却不能实现这些,这些东西又是用到了什么技术呢?人类发明了Internet,总不能就当一部电视用吧(盯了它这么久,它竟然反应),于是,用于网页动态交互的技术应运而生,直至发展到今天,已经涌现出大量用于动态Web交互程序开发的语言和平台,像大家比较常听说的Asp,Php还有现在越来越流行的Asp.Net和Jsp等。动态交互,说的简单一些,就是通过网页与服务器或者是与其他的浏览者进行交流,相信只要上过网的人,应该都上过论坛社区等等,你发了一张贴,服务器将它显示在网页上,这就是你与服务器的交互,然后其他浏览者回帖,这又是间接的再与其他人交互。动态技术的出现,改变了网页制作者进行网页管理,必须手工修改静态页面代码的命运,现在几乎大多数的网站,都已经有了自己的管理系统,可以只要有上网的情况下,随时随地更改信息内容。这是,学会静态页面制作的幸福感是否已经结束了?那么,找一本Asp的书,认真读一遍,熟悉一下ADO,Database,在你自己的电脑上装上IIS,好了,你可以开始动手了,从打印“Hello World”开始,不久之后,你就可以给你自己的个人网站加上一套简单的管理系统,你可以自己写自己的留言板,小型论坛等等,是不是可以让你笑一个月?
过了一段时间,大家又纷纷说什么面向对象,是啊,现在什么都面向对象(就连外边卖水果的婆婆,都知道将学生封装成学生类,将熟客封装成熟客类,籍此理论,痛宰学生),你的网站想不想面向对象呢?面向对象思想,说的简单就是将现实中具有一定共同特点的各种事务抽象成一个对象,籍由对象的扩充,引用,继承等等,再来表达现实中的各种事务。而要做到面向对象的一个前提是,必须对相似的事务进行封装,虽然用asp,php等也能够达到这种效果,但却不是那么的容易,因为我们通常写的asp的页面,静态html代码与vbscript或jscript的脚本代码是没有完全分离的,像和面一样揉成一团,面向对象思想想在这里进行抽象,似乎真的有些困难,即使你通过一些蹩脚的技术分离了代码,也只是像切豆腐一样,大块变小块,掩人耳目而已。这时候,我们就要考虑新的技术了,于是,我们又需要求助于Asp.Net和Jsp了。Java和C#作为面向对象技术的彻底贯彻者,面向对象的实现自然无人能出其右,这两种语言又都能进行web编程,而它们的平台便是Jsp和Asp.Net,它们能够以优异的特性很好地进行web应用程序的开发。(由于主要研究Asp.Net+C#,所以以下的讨论以.Net为主)到了现在,或许你已经逐渐认识到,Web程序设计已经从早期的设计为主而转移到了编程为主的时代,一个Web程序员也不用再觉得弱于Windows应用程序的开发者了,因为现在,你可以在Internet上建立与Windows应用程序功能同样强大,或者超越它的Web应用程序。面向对象的目的在于强调软件的复用性,而.Net能非常好的执行这种特性,并且有很多的渠道:如果是页面性复用,我们可以编写服务器控件(这种理念我想是延伸于Asp的Include吧),这还不是神奇的地方,.Net的复用性真正的体现应该是类库的编写,将自己常用的东西抽象成类,封装好其属性和方法,一个类就完成了,经过编译,你就拥有了自己的DLL,你可以在你任意的应用程序中进行引用,Using之后,你就能够使用这个类了,这样,软件的复用就实现了(一次编写,多次使用,是不是又能让你笑一段时间了,感觉就像吃饭不要钱?)。
性能上的提高也是在新技术出现所引起的又一个重大的变化,Asp.Net和Jsp性能优于Asp和Php的最重要原因,就是由解释执行变成了编译执行,由于编译需要时间,所以第一次运行会显得比较慢,但是就大的流通量来说,速度的提高是十分明显的,一旦上手实践一下,这种体会是很明显的。
以上,只是我们对于Web编程技术的一个概述,其实Web编程的内容非常广泛,单靠这样的几段话是无法说清楚的,四个字――继续学习。这个时候,你会发现,你还需要做数据库优化,缓存处理,安全防护等等等等,甚至跨越Windows编程的很多东西都能在Web编程中有所体现。
一个好的程序员,站的越高,就会发现自己更多的不足,所以,你要清楚,你一开始是菜鸟,等你努力之后,发现你更菜了,那么,你正在走向成功。