vimer linux kernel 爱好者

网站知识体系结构

2014-05-06

总述

网站建设是一项可大可小的工程。要说大,可以大到像Google、Facebook 这样日均流量上PB,占全球流量三分之一的网站,也可以小到像用模块二次开发做的各类小论坛、小博客。在这里首先要确定的学习网站技术的目的。是为了以后想当长的一段时间里面靠它来谋生?还是好奇想了解一下它?不论是哪种情况,既然接触到这一块知识,并且想了解到一定的程度。要清楚的认识到,网站这项技术已经随着互联网渗透到我们的日常生活中,而且有愈演愈烈的趋势。不论以后是不是直接靠着这项技术谋生,你都会直接或者间接的接触它。熟悉这项技术,会让你在以后的日子里占据一项获胜的筹码。

网站这项技术是典型编程项目开发。需要美工、程序员、数据架构及分析员、运维人员的相互配合才能完成。当然,值得注意的是,每一种职位都对应的一块专业的知识,但是不以为着处于一种职位的时候就不需要了解另外一种职位的知识。因为每个职位之间需要相互配合,所以高效的配合少不了对所配合的职位的知识的了解。并且当一个项目处于初期规模还小的时候,没有足够的人专职做某一项任务的时候,就需要一个人兼任数职。所以,不论最后自己专长于哪种职位,都需要对整个网站技术有一个通盘的了解。

表现

所谓表现,就是我们在打开一个网站所看到的样子。图片放在什么位置,文字的颜色和大小是怎么样子的,这些都属于表现。表现都属于前端,是我们直接可以看到的,下面介绍的技术都是属于后端,是一般人感觉不到,但确实存并且支撑着前端。前端的建设属于美工的职责,虽然也是写代码,但是一般写的都是标记语言,并不需要很强的逻辑思维,反而更倾向与是写代码版的PS和Flsh。美工最好是有一定的美术功底,否则作出来的页面会显得很业余。

在表现中,有三种技术需要掌握。

HTML + CSS + JavaScript

HTML是结构,决定一个网页的显示内容和显示顺序。CSS是表现,而CSS决定这些显示的内容的排版。JavaScript是交互。像“返回顶部”、”渐出渐入“这些涉及到需要与人有一定程度互动的高级交互都属于JavaScript的范畴。JavaScript中也有一些类似于CSS的表现功能,注意区分,不要混淆。

学会HTML+CSS之后,就可以做出一个简易的静态网页了。以上说的都是传统的技术,发展到现在已经有新版本了。如果想要进阶的话,还需要学习新版本。

HTML5 + CSS3 + JavaScript + Ajax

HTML5和CSS3是传统HTML和CSS的下一个版本,是未来几年的发展趋势。HTML5更加强化了其结构属性,更利于书写和构建,更方便搜索引擎的抓取。CSS3更是大大加强来其表现的属性,将原本需要庞大的JavaScript完成的动画表现替换成几个属性就可以完成。虽然HTML5和CSS3更好,但是考虑到更新换代需要几年的时间,兼容性就必须要考虑在其中。所以在学习HTML5和CSS3之前一定要先对HTML和CSS有一定的掌握。JavaScript,简称”JS“,虽然名字里有一个”Java“,但是它和Java编程语言没有任何关系。如果不明白的话可以参考雷锋塔和雷锋的关系。现在的JS一般做高级交互和高级表现。 Ajax是异步的JavaScript与XML技术,可以异步地加载数据。比如QQ空间里面的好友动态也不是一次性加载完成的,而是下拉一页才开始加载下一页的。这就是Ajax做的事情。

在学习下面的网站编程之前,这些东西是必须要先学习的。而且只了解还不够,必须要写出一个能看的没有什么致命缺点的网页。

功能

功能通过编程实现。我们打开一个网站,既可以发表文章,又可以添加图片,还可以购买商品。这些应用都是功能,都需要通过编程实现。程序员使用一些适用于网络的语言来做后台的功能,相比美工,这个工作需要具有相当强的逻辑思维才能担当。而且程序员是整个网站项目里的核心,即如果做一个网站只能聘得其一个员工的话,那么那个唯一的员工一定是程序员。因为程序员必须要懂得编程语言开发和数据库设计,在美工上至少能完成第一版的网站,在运维上必须能让整个服务器跑起来。所以做编程的程序员在一个网站项目里面至关重要,但也是最辛苦,技术要求最高的。

在功能中,有三个技术可以选择一种或多种:

PHP

最容易学习,最简单使用,并且性能优秀。同时具有很多的现成的开源程序让我们使用和学习,非常适合做中小型的网站。只要运用得当PHP也是可以做大型网站的,比如Facebook,新浪微博。强烈推荐学习。

JSP

JSP只是Java平台中的一个应用,并且很成功。最开放——内容最丰富,但是难度也较高。非常适合做企业网站。

ASP / ASP.NET

最舒服——微软包办了几乎所有的开发和平台资源,但也最封闭。中国较早起家的几大网站(以论坛、博客、门户等内容主导,并不需要多少技术的网站为主)基本上都有它的影子。它们不需要跟进技术,并且积重难返,想迅速转型不容易。而且作为一个新手,如果想做一个ASP/ASP.NET程序运行在网络上的话,仅仅是一台运行它的服务器钱就比前面两项技术的价格之和还多。所以在现代企业中,考虑到成本问题,ASP/ASP.NET是最后考虑的。

如果是想玩玩的话,那就选择PHP,它与C/C++、Java语言风格相似,开源免费,资源相对较多,如果不想自己编程的话,还可以下载免费的程序,只要安装上就可以运行了。如果想以后从事网站编程,可以进一步学习Java,然后学习JSP。但是绝对不推荐ASP.NET。让人决定很坑的事情是大二上学期有一节ASP,让我觉得ASP是几个世纪前的东西了,完全不用理会,及格就行。

数据

博客中的文字,购物网站中的商品信息都是数据,它们是需要通过数据库组织管理起来的。需要数据架构及分析人员做数据库的架设与数据的分析。一般在一个项目的初期,程序员会与数据库架设人员更加频繁接触以保证程序调用正确的数据,甚至一些程序员本身就是数据库架设人员。在后来网站数据越来越大的时候数据库分析人员才加入进来做数据分析,而不是数据库的建设。因为数据库的架设和维护一直都是程序员或者数据库架设人员来做的。

MySQL

在编程语言的选择中我相信应该选择的是PHP,所以跟PHP最搭配的一款数据库是MySQL,它相对小巧,但功能强大,是不二首选。

Oracle

如果进阶到JSP阶段的时候,那么Oracle数据库就是不二选择了。Oracle数据库和Java语言同是Oracle公司的产品,搭配起来使用完美无暇。

运维

表现也好,功能也好,数据也罢,它们都需要运行在服务器上,而服务器的架构和维护都需要专职人员来做支撑。于是运维人员就担当起网站软件和硬件的架构的运行维护工作。一般来说,早期项目开始的时候,运维、数据、程序还没有分开的时候,程序员会在做程序的时候顺便将服务器搭建起来,而以后当程序员专心做程序的时候才会聘请专职运维来对付随时可能出现的服务器问题。

Unix/Linux

服务器所用的操作系统最多的可不是我们最长接触的Windows,而是Unix/Linux。虽然Windows也有服务器版本,但是首先Windows版本需要付费,(不要想着给自己的服务器安装盗版的Windows,除非你有专属与自己的服务器硬件)其次Windows先天的缺点让它在与其它操作系统争夺服务器领域的时候败下阵来。总而言之,要先做运维,学习Unix/Linux是必须要过的一关。

当然你也可以不自己使用Unix/Linux做服务器,而是租用别人做好的服务器,自己只做开发。网站设计有很多变通的方法,所以才让网站的架构丰富多彩,当然相应的也更加难学习。

域名

对于一个网站来说,还有一个非做不可的事情,就是域名的选购和使用。购买什么样子的域名,已经如何将这些域名分配给不同的程序或者主机,其中的知识也是很有趣的。

网络

相对与其它知识,网络知识应该是学习网站的最基础的知识。当然不需要精通,但是至少应该要知道网站程序之所以不同于桌面应用程序就是因为有互联网这条信息高速公路。

总结

想要学习网站设计,就必须要了解前端+后端的所有技术应用思路,掌握并精通其中一项技术。还要做好充分的心里准备,因为学习这些东西都是需要时间的。如果没有相应的时间保证,是没有可能学会它的。而且整个学习周期漫长,要做好打持久站的准备,没有个吧半年一年的是达不到一定水平的。


Comments

Content