在文章开始之前,先淡淡自己的知识背景,嵌入式开发行业出身,对web开发相关知识基本不了解,仅仅是熟悉c、c++、java开发语言和一些嵌入式相关的知识而已,而且java开发语音也是因为最近学习Android开发学习的。
最近着手了解web开发相关的知识,在网上以搜索,各种专业名称一堆一堆的出现了,只能感叹这些年来web的发展确实是迅猛啊。互联网的这些技术凝结了全世界优秀程序员的先进思想,还是人多力量大啊。了解这些技术,确实极大的开拓了我的视野。
先列举一下我了解到的一系列的web开发名词:html、dhtml、css、dom、javascript、ajax、jQuery、server、jsp、spring、hibernate、struts、spring mvc、xml、json、mysql、oracle、tomcat等等,对于一个完全没有接触过web开发的人来说,要是看到这一串技术,估计都有点被吓到了,实在是太多了,不知道何年何月才学得完,只怕最后会沦落到学了a忘了b,于是乎最近一个月进入了翻阅相关书籍的日子。
web开发一般都会划分为前段开发和后端开发。
前端开发主要包括了:html、dhtml、css、dom、javascript、ajax、jQuery这些技术。
我不想针对每种技术去解析,再谈他的发展史,这些内容网上还是很多了,这里只是谈谈自己的理解。什么html、dhtml、xhtml他们不过都是一个名字而已,主要是由于web的发展不断的演变而来,看名称就知道,他们的核心还是“html”,现在网页的开发都推荐采用分层的思想,分为结构层、表示层、行为层。其实html主要起着结构层的作用,用于定义网页各个元素之间的层次关系。所以,不要去纠结这些名称的不同,作为一位初学者,仅仅了解一下如何使用它定义网页结构即可,他们之间的一些差异和差异的原因,随着学习的深入再慢慢的了解吧。
为什么要分层,其实主要和网页越来越复杂有关系,如果一个文档里面既要描述文档结构、还要描述文档样式风格、文档怎么响应用户操作,再加上文档有很多很多代码,估计你一看就晕了吧。这个思想起始和c语音中的模块开发或者c++里面面向对象编程思想都有些类似。个人水平有限,就不纠结于解释为什么要分为这三层了,这一类技术书籍里面有很好的解释。
好了,既然html负责结构层,那么谁负责表示层和行为层呢?表示层由css负责,javascript负责行为层。
什么是表示层,其实它的主要作用是描述文档不同节点(或者说是对应内容)的显示风格,例如字体大小、颜色等等,当然它不只这么点能力,还有一些更为强大的功能,作为一位初学者,先了解一下如何使用它控制文档各个节点的风格即可,后续功能,慢慢深入吧。
什么是行为层,其实它的主要作用是控制文档的响应,并动态的进行运算。你可能想问它怎么响应。其实网页里面已经定义了一系列的响应接口。我们只需要在对应位置编写对应的响应代码即可。
那我们怎么将这三层联系起来呢?这个时候就需要DOM了,什么是DOM,其实它就是当前网页的一个抽象对象而已,你改变它,就等于改变网页里面的元素。那怎么操作DOM呢?其实各大厂商的浏览器都内置了javascript的解释器,DOM则用javascript对象来表示,于是我们可以编写javascript代码来将这三层联系在一起。什么是javascript的解释器,什么是动态语音,其实可以简单的理解为,你用c语音写了一个程序,用于处理输入的文本,不同的文本有不同的响应,做不同的运算,并有一定的规则。
不过用javascript操作DOM还是有些困难的,主要原因是各大浏览器有些地方不兼容,并且原始DOM提供的方法太基础(就像编程c程序,完全没有库函数让你调用一样,什么都得自己实现)。于是出现了jQuery,初步了解jQuery,使用它你可以不用考虑浏览器兼容问题,并且操作DOM对象更加的方便快捷,所以实践中还是使用jQuery吧,不过学习它之前还是要先学习javascript和DOM(不要学得很深,毕竟是初学嘛),之后在看jQuery,你又会感慨,这玩意确实是个好东西。
ajax主要用于实现与服务器端通信,一般的使用其实就是了解一下XmlRequest这个对象的操作就行了,并且jQuery对它也有封装,这里不纠结这个问题。
web前端开发对于一个初学者来说,基本上就这些内容了,别的我也不知道了,毕竟我就是一位初学者。
下面谈谈web后端开发吧。
从原理上来说,web后端主要是接收前端发来的请求,并处理(处理过程中可能会访问数据库提取数据),然后将对应的页面发送给前端。既然是这样,我们怎么样编写web后端的程序呢。这里我这了解了tomcat,tomcat是什么,它是服务器程序。服务器程序为我们的的响应程序提供对应的容器。主要作用是处理原始请求,并负责响应程序的管理,将原始请求转换为更容易处理的数据。对于java来说,刚开始使用server进行编程,不过用它来生成返回的页面有点麻烦,需要我们手动拼装。于是后面出现了jsp,我们可以像写html的形式编写源文件,然后再由对应的程序将其编译为server程序,省去了手动拼装页面的烦恼。和前端开发一样,后面发现代码越来越多,一个页面既有响应处理代码,又有html排版代码,显得十分臃肿,不便于维护,又出现了一些新的方案来解决这些问题。
spring mvc提供了这样一套机制,让我们将响应代码与html排版代码分开,spring是一个强大的框架,从名字可以看出spring mvc只是spring的一部分而已,其实spring最为核心的在于我们可以使用它来集成我们的代码,并且保持我们的代码具有低耦合度和良好的测试性,具体怎么实现,还是去看spring相关的书籍吧,一时半会解释不清楚。
后端开发一般还会涉及到数据库,传统操作数据库的方法是使用jdbc,其实也是随着软件复杂度的增加,发现使用这类方法有时候比较麻烦,于是出现了hibernate这样一种技术,简单的说使用它在开发复杂的项目时,操作数据库会方便很多,程序也会更健壮(当然要正确的使用才行)。
其实了解这些,和Android网络开发也有一定的关系,如果使用Android开发网络应用,我们主要使用Android的api实现http通信来访问服务器,这样web前端开发用处其实不多,现在能想到的可能在一些内容排版的显示上可能会用到,在通信方面一般使用xml或者json的格式来传输,透过spring mvc返回对应的视图即可。传统的web开发一般是返回jsp文件,这里自然返回xml文件或者json文件了。
个人水平有限,属于菜鸟水平,最近才了解这方面的知识,文章中有问题的地方还望大家指出,将不甚感激。