Web开发的常见问题解答

来源:互联网 发布:28大神软件下载 编辑:程序博客网 时间:2024/05/03 20:19

首先声明一点,这篇原创帖子是我的一点心得,总结了在Web开发过程中的一些技术问题(以面试官的角色),有不对的地方,请大家批评指正.

问题如下:(顺序比较乱,望海涵)

1、Web开发中的三层体系指的是什么?在各层中分别用到了什么技术?
2、javascript和java有什么关系?各自的语言特点是什么?
3、CSS是什么,有什么用处?
4、对Web2.0了解吗?核心的技术是什么?
5、面向对象编程相比较面向过程编程有什么好处?面向过程的特点是什么?
6、知道什么是xml web service?有什么作用?
7、XML和HTML的区别在哪里?
8、软件过程通常划分为几个阶段?各自过程的特点是什么?
9、如何看待软件测试?软件测试往往划分为几个过程?
10、一个测试用例都包括什么内容?如何设计良好的测试用例?
11、结构化查询语言由哪几部分组成?
12、什么是存储过程?触发器?视图?函数?事务?
13、对数据库并发处理熟悉吗?
14、常用的数据保护有几种方法?
15、什么是ORM?常用的ORM架构有哪几种?
16、什么是UML?如何看待RUP和XP?  

答案(纯粹个人理解,可能会更乱):

1、三层体系:用户界面层(UI)、业务逻辑层(BLL)、数据访问层(DAL)。首先是模式(BS)对架构的要求,因为现在internet很发达。另外就是易于管理,层层之间可以分开来开发和管理。而且层和层之间耦合比较小,这样相互产生的依赖性就小。还有就是方便团队开发,不同的模块可以分给专业的不同的去做,前台可以由专门的美工人员,(牵涉到色彩和动画);业务逻辑层由编码人员,DAL由数据库专家去做。当然不尽如此。

2、javascript和java是截然不同的两种语言,处理语法类似外,没有任何相通的地方,不要误认为他两有什么嫡系联系。Java是面向对象的。和c#一样。而javascript是一个脚本语言,由浏览器解释执行。是一个没有类型的语言(你也可以用专业的术语讲:就是非强类型语言)。在WEB开发中,java往往实现中间逻辑,javascript是前台界面技术。

3、CSS是层叠样式表(cascading style sheet)的简写,主要用于对页面进行布局和页面元素的样式进行设置。可以实现批量设置,从而保证了Web界面的风格统一。在Web开发中,往往将CSS写成一个单独的文件,也可以用style标签写在html中。在CSS文件中,可以对HTML固有标签进行设置,也可以自定义类,然后通过class引用。

4、web2.0:主要就是在Web开发中使用ajax技术。增强了用户体验。就是让用户使用起来比现在的Web舒服;Ajax技术的核心:CSS.JAVASCRIPT.DOM.XMLHTTPREQUEST (具体的说明,又很多书上写的很明白)。用Ajax开发的页面在交互的时候不用把整个页面都提交到服务器,而只是异步提交其中的部分数据,保证了用户请求的快速响应。 还要记住,ajax是客户端的技术。 而且.net框架下的(vs2005集成的)是atlas。

5、这个问题其实是老问题了。就是编程思想转变了,由原来的结构化的程序设计转变成了以数据为核心的程序设计思想,这个在我以前的文章中有介绍,就不多写了。OO的特点就是:符合人的思维习惯。将整个编程的逻辑对象通过属性和方法来描述。实现了封装、代码的重用(继承和多态机制)。

6、xml web service体现了一种面向组件的编程模式。或者说将软件提供的功能看成是一种服务。呵呵。优点有很多,由于采用XML这个网络通用的描述语言,所以服务组件的开发,可以让两个异构的平台(无论是逻辑还是后台数据)很容易的联结起来,而且能够保持各自的独立性。只要服务接口公开,别人就可以通过UDDI或DISCO找到你,然后方便的使用你所提供的服务(而不是所有的功能都由你自己去实现,这是不现实的)。

7、这也是一个老话题:HTML是文本修饰语言,有固定的修饰标签和定义标签。XML是文本描述语言,它的标签是可扩展(eXtensible)。主要对数据进行描述。是层次结构的。与关系型数据库不同,但是现在的高级语言都集成了关系型数据到层次型数据(确切的说就是XML文本数据)转换的API.如果想在网络上应用XML必须要对XML进行模式定义(就是定义XML文件中使用的标签)。而且在传输的时候要连同XML模式和数据一起传输,这样,在接收端接收到XML数据时,用模式读取验证后,进一步进行数据处理。

8、软件工程:从工程的角度去组织软件的开发。往往分成分析(需求分析)、设计(概要设计和详细设计)、实现(编码)、测试和维护几个阶段。需求分析不能经常变化,否则很大程度上可能导致项目失败。概要设计给用户看,详细设计给编码人员看。编码要遵循业界规范。维护要在分析设计阶段就开始。维护的时候往往要参考前几个阶段留下来的文档,如果前几个阶段没有文档。相信你要吃苦头了。

9、软件测试对保证软件的可靠性是十分必要的。测试方法分白盒测试和黑盒测试。根据测试实施的阶段不同,有单元测试,集成测试,性能测试,回滚测试等。软件测试往往分成:制定测试计划、设计测试用例、实施测试、bug跟踪和缺陷报告评审等几个阶段。

10、测试用例:就是测试时使用的数据(测试时用到的输入),及其输出结果(与断言做比较)。设计测试用例有几个方法:等价类划分等。要明白,既要设计满足程序需要的数据进行测试,也要输入不满足程序需要的数据进行测试。一个好的测试用例是通过是否发现了从来没有发现的错误来判断的。

11、结构化查询语言就是所谓的SQL(Structure Query Language),通常由DCL(数据控制)、DDL(数据定义)、DML(数据操作)三部分组成。DCL用于数据的授权控制;DDL用于数据的定义;DML用户数据的操作(CRUD等)。

12、存储过程:就是封装了SQL语句,一次编译。触发器:是一种特殊类型的存储过程,不过触发器根据设置条件自动执行,常用于保证数据的完整性。视图:一张虚拟表,其中的字段可以从多个table中得到。函数:对数据的处理过程,用于通用模块的设计和开发。事务:执行的原子单位。不能间断,要么执行成功,要么回滚到事务开始点。

13、数据库并发处理:就是如何解决同时访问同一个数据的情况。往往采用加锁机制和队列机制。

14、方法:数据库级别的如定期备份。另外就是保障运行的双机备份。再高级别的就是异地双机备份。当然防火墙是必不可少的。

15、什么是ORM?常用的ORM架构有哪几种?
ORM是对象关系映射(object relation mapping) 。一种将关系型数据转化城面向对象数据进行处理的过程。就是为了不让在逻辑层看到大量的SQL语句。将关系型数据库中的数据(往往妨在表中)采用一种映射mapping,(通过XML文件的方式),转换成直接用面向对象的语言去操作,这样就可以避免使用SQL . 常用的ORM框架有:java中hibernate。.net中的nhibernate和grove 。

16、UML是统一建模语言的缩写。UML是一种面向对象的建模语言。RUP讲究的是迭代。通过多次迭代完成整个项目的开发(各个阶段)。往往适用与大型的项目。XP强调的合作和高效。测试先行和结对开发,都是比较有特色的。但要求开发人员要有较高的素质,更崇尚人性化开发。

说明:可能还有很多问题,我没有想到,水平有限,请大家补充。

原创粉丝点击