初级Web开发技术人员必知的26项基本概念和技术
World Wide Web(简称Web)是随着Internet的普及使用而发展起来的一门技术,它的发明极大地方便了人们对Internet上资源的组织和访问。
Web技术涉及的内容相当广泛,尤其是Web开发是比较费力的,需要掌握很多的技术,特别是从事前端开发的朋友,需要通十行才行。在此,我就借助马海祥博客的平台向初学者介绍一些Web开发中的基本概念和用到的技术,从A到Z总共26项,每项对应一个概念或者技术,希望能对大家有所帮助。
A — AJAX
AJAX全称为“Asynchronous JavaScript and XML”(异步JavaScript和XML),是一种创建交互式网页应用的网页开发技术,根据Ajax提出者Jesse James Garrett建议,AJAX:
①、使用XHTML+CSS来表示信息;
②、使用JavaScript操作DOM(Document Object Model)进行动态显示及交互;
③、使用XML和XSLT进行数据交换及相关操作;
④、使用XMLHttpRequest对象与Web服务器进行异步数据交换;
⑤、使用JavaScript将所有的东西绑定在一起。
据马海祥了解:类似于DHTML或LAMP,AJAX不是指一种单一的技术,而是有机地利用了一系列相关的技术。
事实上,一些基于AJAX的“派生/合成”式(derivative/composite)的技术正在出现,如AFLAX。
B — Browser
网页浏览器是个显示网页服务器或文件系统内的文件,并让用户与此些文件交互的一种软件。它用来显示在万维网或局域网等内的文字、图像及其他信息。
这些文字或图像,可以是连接其他网址的超连结,用户可迅速及轻易地浏览各种信息,大部分网页为HTML格式,有些网页需特定浏览器才能正确显示。
个人电脑上常见的网页浏览器按照2010年1月的市场占有率依次是微软的Internet Explorer、Mozilla的Firefox、Google的Google Chrome、苹果公司的Safari和Opera软件公司的Opera。
据马海祥了解,浏览器是最经常使用到的客户端程序,Web开发人员应该确保其程序在各个主流浏览器中都能正常工作。
C — CSS
层叠样式表,又称:串样式列表,英文:Cascading Style Sheets,简写为CSS,由W3C定义和维护的标准,一种用来为结构化文档(如HTML文档或XML应用)添加样式(字体、间距和颜色等)的计算机语言。
目前最新版本是CSS 2.1,为W3C的候选推荐标准,下一版本CSS 3仍然在开发过程中。
D — DOM
文档对象模型(Document Object Model,简称DOM),是W3C组织推荐的处理可扩展置标语言的标准编程接口。
Document Object Model的历史可以追溯至1990年代后期微软与Netscape的“浏览器大战”(browser wars),双方为了在JavaScript与JScript一决生死,于是大规模的赋予浏览器强大的功能。
微软在网页技术上加入了不少专属事物,计有VBScript、ActiveX、以及微软自家的DHTML格式等,使不少网页使用非微软平台及浏览器无法正常显示,DOM即是当时蕴酿出来的杰作。
E — Events
事件是可以被控件识别的操作,如按下确定按钮,选择某个单选按钮或者复选框。每一种控件有自己可以识别的事件,如窗体的加载、单击、双击等事件,编辑框(文本框)的文本改变事等等,现代的Web应用程序很大程度上依靠事件驱动。
事件有系统事件和用户事件,系统事件由系统激发,如时间每隔24小时,银行储户的存款日期增加一天,用户事件由用户激发,如用户点击按钮,在文本框中显示特定的文本,事件驱动控件执行某项功能,触发事件的对象称为事件发送者,接收事件的对象称为事件接收者。
据马海祥了解使用事件机制可以实现:当类对象的某个状态发生变化时,系统将会通过某种途径调用类中的有关处理这个事件的方法或者触发控件事件的对象就会调用该控件所有已注册的事件处理程序等。
F — Firebug
Firebug是网页浏览器Mozilla Firefox的一个扩展,是一个除错工具。
用户可以利用它除错、编辑、甚至删改任何网站的CSS、HTML、DOM与JavaScript代码。Firebug也有提供其他网页开发工具,例如Yahoo!的网页速度优化建议工具YSlow。
Firebug是哈维(Joe Hewitt)撰写的,他是最初Firefox创始者之一。
G — Grid
网格,也称栅格,不过从定义上说,栅格更为准确些。网上找个一个对网页栅格系统比较恰当的定义:以规则的网格阵列来指导和规范网页中的版面布局以及信息分布。
网页栅格系统是从平面栅格系统中发展而来,对于网页设计来说,栅格系统的使用,不仅可以让网页的信息呈现更加美观易读,更具可用性,而且,对于前端开发来说,网页将更加的灵活与规范。
H — HTML
超文本置标语言(英文:HyperText Markup Language,HTML)是为“网页创建和其它可在网页浏览器中看到的信息”设计的一种置标语言。
HTML被用来结构化信息——例如标题、段落和列表等等,也可用来在一定程度上描述文档的外观和语义,由蒂姆·伯纳斯-李给出原始定义,由IETF用简化的SGML(标准通用置标语言)语法进行进一步发展的HTML,后来成为国际标准,由万维网联盟(W3C)维护。
最新版本是HTML5它是HTML下一个的主要修订版本,现在仍处于发展阶段。目标是取代1999年所定订的HTML 4.01和XHTML 1.0标准,以期能在互联网应用迅速发展的时候,使网络标准达到符合当代的网络需求(至于两者的区别,大家可查看马海祥博客《html5和html4的区别:html5新标签的用法解释》的相关介绍)。
广义论及HTML5时,实际指的是包括HTML、CSS和JavaScript在内的一套技术组合。
I — IE
Windows Internet Explorer(旧称Microsoft Internet Explorer,简称Internet Explorer,缩写IE),是微软公司推出的一款网页浏览器。截至2010年9月止,统计的数据显示Internet Explorer的市场占有率高达59.65%,虽然它依然是使用最广泛的网页浏览器,但与2003年最高峰时相比,市场占有率相差超过30%。
Internet Explorer对一些标准化技术都有一定程度上的支持,但亦有很多运行上的差距和兼容性的故障,这导致技术开发者的批评日益增加。批评增加的情况,在很大程度上是归因于Internet Explorer的竞争对手相对地已提供完全的技术支持,标准规格(Standards-compliant)的应用亦越来越广泛起来。
因为Internet Explorer在全球广为应用,网络开发者们在寻求跨平台的代码时常常会发现Internet Explorer的漏洞、私有的功能集合和对标准支持的不完善。
2011年3月14日发布的Internet Explorer 9浏览器大幅提高对CSS3和HTML5等W3C规范的支持程度,这个版本也是Internet Explorer浏览器第一个采用GPU加速的版本,正式版于Acid3测试中获得95/100分,相比以往版本有很大进步。
对此,我们可以认为,从Internet Explorer 9开始,Internet Explorer浏览器对W3C规范的支持将不再是问题。
J — JavaScript
JavaScript是一种广泛用于客户端Web开发的脚本语言,常用来给HTML网页添加动态功能,比如响应用户的各种操作(具体可查看马海祥博客《JavaScript是什么?JavaScript功能有哪些》的相关介绍)。它最初由网景公司的Brendan Eich设计,是一种动态、弱类型、基于原型的语言,内置支持类。
JavaScript是Sun公司的注册商标,Ecma国际以JavaScript为基础制定了ECMAScript标准,JavaScript也可以用于其他场合,如服务器端编程,完整的JavaScript实现包含三个部分:ECMAScript,文档对象模型,字节顺序记号。
Netscape公司在最初将其脚本语言命名为LiveScript来Netscape在与Sun合作之后将其改名为JavaScript。JavaScript最初受Java启发而开始设计的,目的之一就是“看上去像Java”,因此语法上有类似之处,一些名称和命名规范也借自Java。
但JavaScript的主要设计原则源自Self和Scheme.JavaScript与Java名称上的近似,是当时网景为了营销考虑与Sun公司达成协议的结果。
为了取得技术优势,微软推出了JScript来迎战JavaScript的脚本语言。为了互用性,Ecma国际(前身为欧洲计算机制造商协会)创建了ECMA-262标准(ECMAScript)。
现在两者都属于ECMAScript的实现,尽管JavaScript作为给非程序人员的脚本语言,而非作为给程序人员的编程语言来推广和宣传,但是JavaScript具有非常丰富的特性。
K — Keyword Optimization
关键词优化,也叫搜索引擎优化(Search Engine Optimization,简称SEO)是一种利用搜索引擎的搜索规则来提高目的网站在有关搜索引擎内的排名的方式(具体可查看马海祥博客《seo是什么》的相关介绍)。
由于不少研究发现,搜索引擎的用户往往只会留意搜索结果最前面的几个条目,所以不少网站都希望通过各种形式来影响搜索引擎的排序,当中尤以各种依靠广告维生的网站为甚。
所谓“针对搜索引擎作优化的处理”,是指为了要让网站更容易被搜索引擎接受,搜索引擎会将网站彼此间的内容做一些相关性的数据比对,然后再由浏览器将这些内容以最快速且接近最完整的方式,体现给搜索者。
搜索引擎优化对于任何一家网站来说,要想在网站推广中取得成功,搜索引擎优化都是至为关键的一项任务。
同时,随着搜索引擎不断变换它们的排名算法规则,每次算法上的改变都会让一些排名很好的网站在一夜之间名落孙山,而失去排名的直接后果就是失去了网站固有的可观访问量。
所以,每次搜索引擎算法的改变都会在网站之中引起不小的骚动和焦虑,可以说,搜索引擎优化是一个愈来愈复杂的任务。
L — Less
Less最早是一个ruby的gem,让CSS具有动态语言的特性,这些特性包括变量,操作符,嵌套规则。
其实Less真正的作用是将使用高级特性的CSS转换成标准的CSS,这些都是在Web客户端发起请求时通过Http Handler来完成的,也可以是编辑时就完成的。
此外,Less可以配置成自动最小化所生成的CSS文件,不仅节省了带宽,并且使最终用户体验更上一层,另外有.Net版本的Less。
M — MVC
MVC模式(Model-View-Controller)是软件工程中的一种软件架构模式,把软件系统分为三个基本部分:模型(Model)、视图(View)和控制器(Controller)。
MVC模式最早由Trygve Reenskaug在1974年提出,是施乐帕罗奥多研究中心(Xerox PARC)在20世纪80年代为程序语言Smalltalk发明的一种软件设计模式,MVC模式的目的是实现一种动态的程序设计,使后续对程序的修改和扩展简化,并且使程序某一部分的重复利用成为可能。
除此之外,此模式通过对复杂度的简化,使程序结构更加直观。软件系统通过对自身基本部份分离的同时也赋予了各个基本部分应有的功能。
N — Node.JS
Node是一个Javascript运行环境(runtime),实际上它是对Google V8引擎(应用于Google Chrome浏览器)进行了封装。V8引擎执行Javascript的速度非常快,性能非常好,Node对一些特殊用例进行了优化,提供了替代的API,使得V8在非浏览器环境下运行得更好。
例如,在服务器环境中,处理二进制数据通常是必不可少的,但Javascript对此支持不足,因此,V8.Node增加了Buffer类,方便并且高效地 处理二进制数据。
因此,Node不仅仅简单的使用了V8,还对其进行了优化,使其在各环境下更加给力,Node.js包罗万象,但最主要的一点是,它提供了一种在Web浏览器之外运行Javascript的途径,Javascript广泛应用于网站的前端开发,Node使得这种流行的编程语言能够在更多环境下运行,甚至是网站的服务器端。
O — Object
对象(object)是面向对象(Object Oriented)中的术语,既表示客观世界问题空间(Namespace)中的某个具体的事物,又表示软件系统解空间中的基本元素。
在软件系统中,对象具有唯一的标识符,对象包括属性(Properties)和方法(Methods),属性就是需要记忆的信息,方法就是对象能够提供的服务。
在面向对象(Object Oriented) 的软件中,对象(Object)是某一个类(Class)的实例(Instance)。
P — PHP
PHP(Hypertext Preprocessor)是一种在电脑上运行的脚本语言,主要用途是在于处理动态网页,也包含了命令行运行接口(command line interface),或者产生图形用户界面(GUI)程序。
据马海祥了解:PHP最早由Rasmus Lerdorf在1995年发明,而现在PHP的标准由PHP Group和开放源代码社区维护,PHP以PHP License作为许可协议,不过因为这个协议限制了PHP名称的使用,所以和开放源代码许可协议GPL不兼容。
PHP的应用范围相当广泛,尤其是在网页程序的开发上,一般来说PHP大多运行在网页服务器上,通过运行PHP代码来产生用户浏览的网页。
PHP可以在多数的服务器和操作系统上运行,而且使用PHP完全是免费的,根据2007年4月的统计数据,PHP已经被安装在超过2000万个网站和100万台服务器上。
Q — Query
查询,有很多种意思,例如查询语言用来和存储数据的扩展系统交互,一个很好的例子就是SQL用来操作关系数据库。
另一种意思是,一个查询字符串,作为URL的一部分用于Web应用程序中传递数据,查询字符串的格式一般是键值对形式。
R — Regular Expressions
正则表达式(英语:Regular Expression、regex或regexp,缩写为RE),也译为正规表示法、常规表示法,在计算机科学中,是指一个用来描述或者匹配一系列符合某个句法规则的字符串的单个字符串。
在很多文本编辑器或其他工具里,正则表达式通常被用来检索和/或替换那些符合某个模式的文本内容,许多程序设计语言都支持利用正则表达式进行字符串操作。
例如,在Perl中就内建了一个功能强大的正则表达式引擎,正则表达式这个概念最初是由Unix中的工具软件(例如sed和grep)普及开的。
S — Source Control
源代码管理,也称版本控制,是一种软件工程技巧,借此能在软件开发的过程中,确保由不同人所编辑的同一程式档案都得到同步。
软件设计师常会利用版本控制来追踪、维护源码、文件以及设定档等等的更动,并且提供控制这些更动控制权的程序。
在最简单的情况下,软件设计师可以自己保留一个程式的许多不同版本,并且为它们做适当的编号,这种简单的方法已被用在很多大型的软件专案中,这是一个可以达到目的的方法,但不够有效率。
除了得同时维护很多几乎一样的程式码备份外,而且极度依赖软件设计师的自我修养与开发纪律,但这却常是导致错误发生的原因。
有时候,一个程式同时存有两个以上的版本也有其必要性,例如:在一个为了部署的版本中程式错误已经被修正、但没有加入新功能;在另一个开发版本则有新的功能正在开发、也有新的错误待解决,这使得同时间需要不同的版本并修改。
此外,为了找出只存在于某一特定版本中的程式错误、或找出程式错误出现的版本,软件除错者也必须借由比对不同版本的程式码以找出问题的位置。
T — TDD
测试驱动开发(Test-driven development)是现代计算机软件开发方法的一种,利用测试来驱动软件程序的设计和实现,测试驱动开始流行于20世纪90年代,测试驱动开发是极限编程中倡导的程序开发方法,方法主要是先写测试程序,然后再编码使其通过测试,测试驱动开发的目的是取得快速反馈并使用“illustrate the main line”方法来构建程序。
测试驱动开发的比喻,开发可以从两个方面去看待:实现的功能和质量。
测试驱动开发更像两顶帽子思考法的开发方式,先戴上实现功能的帽子,在测试的辅助下,快速实现正确的功能;再戴上重构的帽子,在测试的保护下,通过去除冗余和重复的代码,提高代码重用性,实现对质量的改进,可见测试在测试驱动开发中确实属于核心地位,贯穿了开发的始终。
U — Unit Testing
单元测试(又称为模块测试)是针对程序模块(软件设计的最小单位)来进行正确性检验的测试工作,程序单元是应用的最小可测试部件。
在过程化编程中,一个单元就是单个程序、函数、过程等;对于面向对象编程,最小单元就是方法,包括基类(超类)、抽象类、或者派生类(子类)中的方法。
通常来说,程序员每修改一次程序就会进行最少一次单元测试,在编写程序的过程中前后很可能要进行多次单元测试,以证实程序达到软件规格书(en:Specification)要求的工作目标,没有臭虫;虽然单元测试不是什么必须的,但也不坏,这牵涉到项目管理的政策决定。
V — VIM
Vim是从vi发展出来的一个文本编辑器,代码补完、编译及错误跳转等方便编程的功能特别丰富,在程序员中被广泛使用,和Emacs并列成为类Unix系统用户最喜欢的编辑器。
Vim的第一个版本由Bram Moolenaar在1991年发布,最初的简称是Vi IMitation,随着功能的不断增加,正式名称改成了Vi IMproved,现在是在开放源代码方式下发行的自由软件。
W — WordPress
WordPress是一种使用PHP语言开发的博客平台,用户可以在支持PHP和MySQL数据库的服务器上架设自己的网志,也可以把WordPress当作一个内容管理系统(CMS)来使用。
WordPress是一个免费的开源项目,在GNU通用公共许可证下授权发布,目前最新版本为2011年2月24日发布的3.0.5官方简体中文版,另外还有包括英文在内的多种语言可选。
X — XSS
跨网站指令码(Cross-site scripting,通常简称为XSS)是一种网站应用程式的安全漏洞攻击,允许恶意使用者将程式码注入到网页上,其他使用者在观看网页时就会受到影响。
这类攻击通常包含了HTML以及使用者端脚本语言。
Y — YUI
Yahoo! UI Library (YUI)是一个开放源代码的JavaScript函数库,为了能建立一个高互动的网页,它采用了AJAX,DHTML和DOM等程式码技术,它也包含了许多CSS资源。
Z — Z index
Z-Index是CSS属性,设置元素的堆叠顺序,拥有更高堆叠顺序的元素总是会处于堆叠顺序较低的元素的前面。
该属性设置一个定位元素沿z轴的位置,z轴定义为垂直延伸到显示区的轴,如果为正数,则离用户更近,为负数则表示离用户更远。
马海祥博客点评:
Web前端开发工程师既要与上游的交互设计师、视觉设计师和产品经理沟通,又要与下游的服务器端工程师沟通,需要掌握的技能非常多,这就从知识的广度上对Web前端开发工程师提出了要求,如果要精于前端开发这一行,也许要先精十行,然而,全才总是少有的,所以,对于不太重要的知识,我们只需要“通”即可。
本文发布于马海祥博客文章,如想转载,请注明原文网址摘自于http://www.mahaixiang.cn/bcyy/826.html,注明出处;否则,禁止转载;谢谢配合!相关标签搜索: web开发 web技术 基本概念 web技术开发
上一篇:工作中令程序员最生气的10件事情
下一篇:你知道Java内部的这些事儿吗?
您可能还会对以下这些文章感兴趣!
-
为什么Swift编程语言刚一推出就这么火?
Swift语言是苹果公司在2014年WWDC(苹果开发者大会)上发布的全新开发语言,从演示视频及随后在appstore上线的标准文档看来,语法内容混合了OC,JS,Python,语法简单,使用方便,可与Objective-C*共同运行于MAC OS和iOS平台,用于搭建基于苹果平台的应用程序。作为一项……【查看全文】
-
一个美国程序员对IT行业招聘的吐槽
今天听到一个朋友抱怨说“作为程序员,找工作有时候似乎挺苦逼的。”说真的,让我去掉前面这句中“似乎”二字吧。就是苦逼!很多人都曾抱怨处在招聘的一方很糟糕??我们没有任何可靠的方式来甄别会写代码并且写得好的人。这的确是真的,我们这行在这方面做得很糟糕。即……【查看全文】
-
初级软件工程师必须要学会哪些编程技术
软件工程师(Software Engineer)可以说是从事软件职业的人员的一种职业能力的认证,通过它说明具备了工程师的资格,通俗的来说,软件工程师就是从事软件开发相关工作的人员的统称,它是一个广义的概念,包括软件设计人员、软件架构人员、软件工程管理人员、程序员等一……【查看全文】
-
你知道Java内部的这些事儿吗?
Java技术具有卓越的通用性、高效性、平台移植性和安全性,广泛应用于个人PC、数据中心、游戏控制台、科学超级计算机、移动电话和互联网,同时拥有全球最大的开发者专业社群,在全球云计算和移动互联网的产业环境下,Java更具备了显著优势和广阔前景。你是不是写Java已经……【查看全文】
阅读:659关键词: java 日期:2014-11-21 -
工作中令程序员最生气的10件事情
作为一个优秀的程序员,他的思想不能局限在当前的工作任务里面,要想想看自己写的模块是否可以脱离当前系统存在,通过简单的封装在其他系统中或其他模块中直接使用,这样做可以使代码能重复利用,减少重复的劳动,也能使系统结构越趋合理,模块化思维能力的提高是程序员……【查看全文】
-
Python语言代码的性能优化方法大全
选择了脚本语言就要忍受其速度,这句话在某种程度上说明了python作为脚本的一个不足之处,那就是执行效率和性能不够理想,特别是在performance较差的机器上,因此有必要进行一定的代码优化来提高程序的执行效率。那么我们该如何进行Python性能优化呢?接下来我就跟大家……【查看全文】
-
原来还能这样评价编程语言!
如果编程语言是女人,PHP是你的豆蔻年华的心上人,她是情窦初开的你今年夏天傻乎乎的追求的目标。玩一玩可以,但千万不要投入过深,因为这个女孩有严重的问题。Perl是PHP的姐姐。她对你来说年龄稍微大了一点,但在90年代,她是相当受欢迎的。她和Larry Wall(译注:Perl……【查看全文】
-
计算机语言的发展简史
计算机语言总的来说分为机器语言,汇编一语言,高级语言三大类。而这三种语言也恰恰是计算机语言发展历史的三个阶段。1946年2月14日,世界上第一台计算机ENIAC诞生,使用的是最原始的穿孔卡片。这种卡片上使用的语言是只有专家才能理解的语言,与人类语言差别极大,这种……【查看全文】
-
老程序员给初学者的一些建议和忠告
对于课程有这样简单的选择方法:如果你是计算机系的,请学好你所有的专业基础课;如果不是,请参照计算机系的课程表。如果你发现自己看一本书时无法看下去了,请翻到书的最后,看看它的参考文献,找到它们并学习它们,再回头看这本书。如果一本书的书名中带有“原理”……【查看全文】
-
盘点史上最奇葩的10大编程语言排行榜
一般来说,人们大多都认为编程语言很容易使用和学习,因为编程语言就是应该给你提供数据结构让你来解决实际问题,它们的语法也应清晰明了,容易理解且执行速度快,不应该有任何bug。但有时候编程语言设计者们会创建一些违背这些原则的语言,要么供研究使用,要么纯属娱……【查看全文】
分类目录
互联网更多>>
- 互联网思维的一些特征 如今,互联网迅猛发展已经渗透人们生活各个方面,尤其是互联网正加快向传统行业渗透和融合,对传统行业提出严……
- 基于高斯模糊原理的模糊图片的研究 高斯模糊(Gaussian Blur)的原理中,它是根据高斯曲线调节象素色值,它是有选择地模糊图像。说得直白一点,就是高……
- 盘点2010年代这10年的重大网络安全事件 二十一世纪的第2个十年即将过去,在过去十年里有很多的重大网络安全事件发生,我们见证了过去十年,大量的数据……
SEO优化 更多>>
-
百度搜索将推出飓风算法2.0:严厉打
为了营造良好的搜索内容生态,保护搜索用户的…… -
SEO是什么?
对于刚入SEO行业的新人来说,要想做好网站的s…… -
网站收录量对于网站排名的影响作用
很多做SEO的朋友都会问,是不是网站收录越多网…… -
如何使用留言评论进行推广引流
随着新媒体的快速发展,留言评论变得随处可见…… -
百度冰桶算法5.0:保障移动搜索用户
为了提升移动搜索落地页体验,营造优质的移动…… -
今年网站SEO优化要注意的6大策略
通俗的来说,SEO技术就是一种达到SEO效果所采用…… -
史上最全的网站SEO策略方案
在搜索引擎优化中,一个网站的SEO策略能最终影…… -
移动端手机站做站内优化的要点
随着移动流量的与日俱增,移动搜索引擎的功能……