面试题整理

来源:互联网 发布:淘宝小北名表靠谱吗 编辑:程序博客网 时间:2024/06/05 05:54

常见的列转行,主要原理是利用SQL里面的union,具体的sql语句如下:

Select username,cn_score course,cn_score as score from table

UNION

Select username,math_scorecourse,math_score as score from table

UNION

Select username,en_scorecourse,en_score as score from table

Order by usernaem,course;

也可以创建表插入数据

 

 

 

 

这就是最常见的行转列,主要原理是利用decode函数、

聚集函数(sum),结合group by分组实现的,具体的sql如下:

Select t.username

Sum(decode(t.course,语文,score,null)) as chinese

Sum(decode(t.course,数学,score,null)) as math

Sum(decode(t.course,英语,Score,null)) as english

from table

group by t.username

order by t.username

西文字体  Hiragino Sans GB W3

Hiragino Sans GB W3

Java打印有几种方式

3

不经任何修改,直接调用javascript中的window.print()打印

根据客户要求报表格式进行打印,编写相应格式的html,装载打印

同样用window.print()打印,编写相应格式的html();

通过客户提供的word格式,通过xml配置文件与数据库进行关联

自动装载数据到word中打印,利用客户端打印;

 

第一种几乎不用编写程序,最简单快捷,这里会遇到几个问题,只能打印表单内容,按钮不希望打印出来;页眉页脚不想打印出来;IEtitile不想打印出来。

 

第二种方式必须根据每个报表的格式进行定制htmlJava程序开发,会花比较多的时间。要注意的是对htmltable的样式控制,在IE中浏览看起来很细的边框,打印出来有些线条会比较粗,有些线条又会比较细,阴阳怪气的很难看。

 

第三种方案利用word强大的排版、打印功能,把排版和打印的需求扔到word中,OA软件要做的仅仅是让数据导到word中去。JAVA读取WORD模板,通过XML读取相关的数据库数据,自动转载数据到WORD模板中,最终展现给客户打印的是WORD

 

 

两个技术人员面试(应该是一个前端,一个后端)

1.一般用什么框架,简单介绍一下

Ssh框架

使用的是MVC的设计模式struts2是基于webwork技术的框架

核心是拦截器过滤器struts2的控制器

Spring是一个集成了许多第三方框架的

核心是IOC控制反转,依赖注入和AOP面向切面编程;

hibernate是基于orm对象映射(完成对象数据到关系数据映射的机制)实现的

做持久化的工具

2.说一下从页面到数据库工作流程(实现一个功能)

MVC模式开发

Jsp页面登陆

Servlet编写获取数据

Model型层jdbc连接数据库

加载驱动创建数据库连接创建prepardstatement对象

sql语句 设置参数 执行sql语句 获取结果

3.项目中遇到的问题

页面跳转的标签页面输出el表达式

4.项目中怎么和组员交流(大概的意思是:调用组员写的功能时是直接调用,还是需要和组员交流下)

询问式交流

这个代码调用一下好不好?

这个代码有错你看看是不是?

这个代码写的有点难度你看看我写的对不对?

5.如果你和另外一个人模块进度不同,你会怎么解决,是催他,还是等他做完,还是向上级汇报

上级的主动汇报沟通,看进度,

提问题最好提出自己的解决方案,争取资源,让老板放心,安心

6.小组几个人,各做什么工作

项目经理

架构师

需求分析师

系统分析师

数据库工程师

开发人员

测试人员

实施人员

配置管理质量保证

美术设计师

7.写了4个题目,当着面试官面写的,一个是关于继承的,一个是内部类的,2个数据库比较简单

8.设计模式知道哪些.之后他问了什么是工厂模式和优缺点

工厂类超类、具体产品类

优点:利用面向对象的多态机制

在系统需要的形状的时候

只要加入一个实现这个超类的具体产品就可以了。

 

缺点:就是没有可以提供新产品的逻辑必须修改源代码

9.UI了解吗

UI设计是指对软件的人机交互、操作逻辑、界面美观的整体设计

10.js的框架了解哪些

Jquery

JavaScript代码

Dojo

Prototype

11.jquery在使用时遇到过哪些困难

允许调用定义在 jQuery 对象上的多个不同方法

 

$() 函数用于将任何对象包裹成 jQuery 对象

网页上有 5 个 <div> 元素,如何使用 jQuery来选择它们?

id选择器

标签选择器

类选择器

$(“div”)

 jQuery 里的 ID 选择器和 class 选择器有何不同?(答案

 ID 选择器和 class 选择器之间的差异

面试过程中很大几率使用ID选择css选择器来写代码

$(“#LoginTextBox”)

$(“.active”)

如何在点击一个按钮时使用 jQuery 隐藏一个图片?

如何为按钮设置事件并执行hide() 方法,

$(“#buttontoclick”).click(function(){

$(“imageToHide”).hide();

})

 $(document).ready() 是个什么函数?为什么要用它?(answer)

Ready()函数用于文档进入ready状态时执行代码

Jquery允许你执行代码。

$(document).ready()的最大好处在于适用于所有浏览器j

Jquery解决了跨浏览器的难题

 

JavaScript window.onload 事件和 jQuery ready 函数有何不同?(答案

Javascript window.onload事件除了等待Dom被创建嗨

还要等待包括大型图片、音频、视频在内的所有外部资源完全加载

如果加载图片和媒体内容话费了大量时间,用户就会感受到定义在

Window.0nload事件上的代码在执行时明显的延迟;

 

jQuery ready() 函数只需对 DOM 树的等待

无需对图像或外部资源加载等待,从而执行起来更快

 

使用 jQuery $(document).ready() 优势可以在网页里多次使用它

浏览器会按他们在html页面里出现的顺序执行他们。

相反对于onload技术而言,只能在单一函数里使用;

鉴于这个好处,用jQuery ready()函数比用javaScript

Window.onload事件要更好些;

7. 如何找到所有 HTML select 标签的选中项?(答案如下)

$(‘[name=NameOfSelectedTag] :selected’)

使用属性选择器和:selected选择器,结果只返回被选

中的选项,你按需修改它。

 

8. jQuery 里的 each() 是什么函数?你是如何使用它的?(答案如下)

$(‘[name=NameOfSelected] :selected’).each(function(selected)){

alert($(selected).text());}

你是如何将一个 HTML 元素添加到 DOM 树中的?(答案如下)

Jquery方法appendTo()将一个HTML元素添加到DOM树中,

这是jQuery提供的众多操控DOM的方法中的一个。

你可以通过qppendTo()方法在指定的DoM元素末尾

添加一个现存的元素或者一个新的HTML元素;

$(this) 和 this 关键字在 jQuery 中有何不同?

$(this)返回一个jQuery对象,你可以对它调用多个jQuery方法

比如text()val()获取值等等。

This代表当前元素,它是javaScript关键词中的一个

表示上下文中当前DOM元素,你不能对它调用

jQUery方法,直到它被$()函数包裹例如$(this)

12.ajax了解吗,有什么作用

ajax即asynchronous javascript

and xml(异步javascript和xml)

它并不是一门新技术,而是有

Javascript css dom文档对象模型

Xmlhttprequest混合实现的;

Xmlhttprequest对象时ajax中的核心对象

它是一个具有应用接口的javascript对象

能够使用超文本传输协议连接一个服务器,是微软浏览器中提出的

 

使用xmlhttpRequest对象,ajax可以象桌面应用程序一样

只同服务器进行数据层面的交互,而不用每次都刷新页面,这样加快

加快了服务器响应速度,缩短用户的等待时间;

 

Open()用于设置异步请求方法url

Send用于向服务器发送请求

Onreadystatechange()

每个状态改变都会触发事件

ReadyState

请求的状态0-初始化1=正在加载

2=已加载3=交互中4=完成

ResponseText

服务器响应字符串

ResponseXML

服务器响应xml

 

 

Status

返回服务器的http状态码

200-成功

202请求被接受,但尚未成功

400-错误请求

404-文件未找到

500-内部服务器错误

13.之前的公司做的是项目还是产品

产品:1可用2高效3保证用户需求及后续服务

项目:没什么好说的,做的多么好或多么懒都算项目

14.web service了解吗

Webservice是一个平台独立的低耦合,自包含的基于可编程的wen

的应用程序

用于开发分布式的互操作的应用程序

Web Service平台需要一套协议来实现分布式应用程序的创建。任何平台都有它的数据表示方法和类型系统。要实现互操作性,Web Service平台必须提供一套标准的类型系统,用于沟通不同平台、编程语言和组件模型中的不同类型系统。目前这些协议有:

Web服务有两层含义:1、是指封装成单个实体并发布到网络上的功能集合体;2、是指功能集合体被调用后所提供的服务。简单地讲,Web服务是一个URL资源,客户端可以通过编程方式请求得到它的服务,而不需要知道所请求的服务是怎样实现的,这一点与传统的分布式组件对象模型不同。

 

服务注册中心

 

 

服务请求者--------服务器提供者

Webservice的调用有3重方式

1、Httpget

2、Httppost

3、Httpsoap

 

 

15.bootstrap了解吗

简单灵活可用于架构流行的用户界面和交互接口的html,css,javascript工具集

 

1全局样式(Global Style)

<!DOCTYPE html><htmllang="en">

  ...</html>

 

2格网系统(Grid System).默认的Bootstrap格网系统提供一个宽达940像素的,12列的格网

<divclass="row">

  <divclass="span4">...</div>

  <divclass="span8">...</div></div>

2.2偏移列.

<divclass="row">

  <divclass="span4">...</div>

  <divclass="span4 offset4">...</div></div>

2.3 嵌套列. 

第一层的宽度为12和第二层两个宽度为6的两个div.
<div class=row>

   <div class=span12>

<div class=row>

<div calss=span6></div>

<div class=span6></div>

</div>

</div>

</div>

3

流式格网系统(Fluid grid system).它使用%,而不是固定的px,来确定页面要素的宽度.只需要简单的将.row 改成.row-fluid ,就可以将fixed行改为fluid.如图1-4所示:

 

<divclass="row-fluid">

  <divclass="span4">...</div>

  <divclass="span8">...</div></div>

 

自定义格网(Grid customization).Bootstrap允许通过修改variables.less的参数值来自定义格网系统。主要包括如表1-1所示的变量:

变量

默认值

说明

@gridColumns

12

列数

@gridColumnWidth

60px

每列的宽度

@gridGutterWidth

20px

列间距

 

<divclass="container-fluid">

  <divclass="row-fluid">

    <divclass="span2">

      <!--Sidebar content-->

    </div>

    <divclass="span10">

      <!--Body content-->

    </div>

  </div></div>

16.bootstrap是什么框架?js的还是css

bootstrap是基于HTMLCSSJAVASCRIPT的,

简洁灵活,使得WEB开发更加快捷;

17.$.get()$.ajax()有什么区别

$.get()和$.post()都是通过get和post方式来进行异步
$.ajax()说是jquery最底层的ajax实现的 

 

 

部门经理面试(基本上问的都是前一家公司的问题)

 

18.注释一般在什么时候用

1、注释形式统一

在整个应用程序中,使用具有一致的标点和结构的样式来构造注释。如果在其它项目中发现们的注释规范与这份文档不同,按照这份规范写代码,不要试图在既成的规范系统中引入新的规范。

2、注释内容准确简洁

内容要简单、明了、含义准确,防止注释的多义性,错误的注释不但无益反而有害

注释条件

1、基本注释

a、类接口注释

b、构造函数注释

c、方法注释

d、全局变量注释

e、字段属性注释

2、特殊必加注释(必须加)

a)    典型算法必须有注释。

(b)    在代码不明晰处必须有注释。

(c)     在代码修改处加上修改标识的注释。

(d)    在循环和逻辑分支组成的代码中加注释。

(e)    为他人提供的接口必须加详细注释。

 

1、单行(single-line)注释:“//……”

2、块(block)注释:“/*……*/”

3、文档注释:“/**……*/”

4、javadoc 注释标签语法

@author   对类的说明 标明开发该类模块的作者

@version   对类的说明 标明该类模块的版本

@see     对类、属性、方法的说明 参考转向,也就是相关主题

@param    对方法的说明 对方法中某参数的说明

@return   对方法的说明 对方法返回值的说明

@exception  对方法的说明 对方法可能抛出的异常进行说明

 

1.   类(接口)注释

例如:

/**

类的描述

@author Administrator

* @Time 2012-11-2014:49:01

*

*/

public classTest extends Button {

  ……

}

2.   构造方法注释

例如:

public class Test extends Button {

  /**

   * 构造方法 的描述

   * @param name

   *       按钮的上显示的文字

   */

  public Test(String name){

     ……

  }

}

3.   方法注释

例如

public class Test extends Button {

  /**

   * 为按钮添加颜色

   *@param color

         按钮的颜色

*@return

*@exception  (方法有异常的话加)

* @author Administrator

* @Time2012-11-20 15:02:29

   */

  public voidaddColor(String color){

     ……

  }

}

4.   全局变量注释

例如:

public final class String

   implements Java.io.Serializable, Comparable<String>,CharSequence

{

   /** The value is used for characterstorage. */

   private final char value[];

   /** The offset is the first index of thestorage that is used. */

   private final int offset;

   /** The count is the number of charactersin the String. */

   private final int count;

   /** Cache the hash code for the string */

private int hash// Default to 0

……

}

5.   字段/属性注释

例如:

public class EmailBody implements Serializable{

   private String id;

   private String senderName;//发送人姓名

   private String title;//不能超过120个中文字符

   private String content;//邮件正文

   private String attach;//附件,如果有的话

   private String totalCount;//总发送人数

   private String successCount;//成功发送的人数

   private Integer isDelete;//0不删除 1删除

   private Date createTime;//目前不支持定时 所以创建后即刻发送

   privateSet<EmailList> EmailList;

……

}

其实规范是自己订的,只要团队中大家都统一遵守,统一规范,就会取得好的效果,希望对平时不加注释的朋友有点帮助。

19.前一个公司文档一般写些什么

需求文档一般分两类
需求调研报告
需求分析报告

调研报告:是记录的用户的原始需求,基本上可以算做是和用户沟通的原始记录。
分析报告:是对调研报告进行归类分析的结果。一个比较全面的文档了,在这个文档里面一般包含以下内容:
项目的背景
项目的目标
项目的范围
用户特点
相关技术、规范标准等
相关约束
用户的组织结构、角色等
用户需要的功能点,这些功能的优先级,业务流程、功能特点,有没有特殊需求等等

总而言之,需求分析报告的下一站是给设计人员的,设计人员看到需求分析报告就知道系统应该包含哪些功能点、权限设计、流程设计等,这些内容都可以直接从需要分析报告里面得出

 

20.组长有写需求文档吗

21.给你们的需求文档是很详细的,还是简单的

22.你们项目部署的时候是怎么个流程

首相,你要有一个tomcat之类的服务器,将对应的jar导入到你的web项目,然后在工具栏找到一个叫做 deploy MyEclipse J2ee project to Server的按钮,点击,按照提示发布即可。

人事面试

23.你对我们公司了解吗

 

24.离职原因

寻求更大的发展:

现有的企业岗位设置难以满足自身职业进一步发展的要求。比如该企业不太重视财务管理,作为会计,想往更专业的职业方向发展,那就只能离开那个企业。这个原因是用得最多的,如果你换工作不太频繁,可以用这个原因,让人很容易接受。假如经常换工作,用这个原因是不能让人信服的,只能说明你做事没有规划,心态不稳定。

 原公司发生了重大客观变化:

公司重组或部门内部变动,导致工作内容发生重大变化,无法再继续履行劳动合同,或者直接被裁员等。例如某些职位是为配合企业完成阶段性任务而特设的,并非常设职能,因此当这一阶段任务完成又找不到适合岗位时,就得离开。被裁员的最好不要实话实说,要不HR一般会认为你没能力,因为不胜任工作才被裁员的。将原因归结为公司客观情况变化,导致自己职业要重新规划会好一些,当然客观原因要有说服力,不要让HR认为是你的问题就好。

 企业文化不匹配

企业文化可以是一些氛围等东西,比如强制加班、言行不自由、管理混乱等,在描述这个原因时要注意:每个企业都有这样那样的文化,不能太批驳哪里不好,要不HR就会认为是你自己适应能力差了。说出的具体原因,要举例说明,让HR确实认为是企业的责任远大于你的责任,那你就成功了。

 工作环境差

工作环境差可以包含工作温度高、职业病隐患、某些产品过敏等。这个原因在描述时要合情合理,让HR认为确实客观存在才行

 

待遇太低

待遇太低是大部分换工作的人的实际离职原因。但在描述这个原因时,我们可以委婉一点,可以说希望自己的工作更上一个台阶,待遇上也能上个台阶,迎接更具挑战性的工作,让自己职业更深层次的发展。如果直接说那公司待遇低,那HR可能认为是你自己能力不行导致待遇低。要知道人才市场上也是一分钱一分货的道理。

个人原因

个人原因可以包括老家临时有事,突然中断工作;家庭地址发生变化,导致交通距离太远无法继续在原公司上班;身体原因(包括生大病、怀孕生小孩等)中断工作;继续深造、脱产学习导致工作需要中断等。

个人原因作为离职原因,是比较让HR接受的,但在描述时也要合情合理,不要让HR认为那压根就没发生的事,完全是忽悠人的,那可不行。频繁换工作的人也不适合用这个原因。久未上班的人用这个原因比较好。

25.还有什么需要问的?

因为其很注重员工的个性和创新能力

贵公司的晋升机制是什么样的

对学习的热情和对公司的忠诚度以及你的上进心

26.薪资要求

1:我的工资要求可能有点高,请问公司可以提供多少月薪?

2:我的工资要求可能过高,但我认为薪酬不是最重要的,我更在乎的是这个职位本身,因为我非常喜欢这份工作,我的专业和能力也符合公司的要求。我相信公司会在工作中了解我的价值,从而逐步提升我的工资水平。请问公司可以提供的薪酬范围是多少?

 

1:您给出的这个数字和我的期望值很接近,但是我心目中的期望稍微要高出一些。我了解公司对于新人工资数额有一定的限制,我们能否谈谈除了工资以外的其他福利待遇?

2:您开出的工资水平和我的期望值还有差距,不知道我如果能进入公司,能通过怎样的努力来缩小这个差距?我相信如果公司给我这个机会,我能让我的工资水平达到我的期望。

 

27hibernatemybaits的区别是什么?

1、hiberante是全自动的,而mybaits是半自动的

Hibernate完全可以通过对象关系模型实现对数据库的操作

拥有完整的javaBena对象与数据库的映射结构自动生成sql

Mybaits仅有基本的字段映射,对象数据以及对象实际关系仍然

需要通过sql来实现和管理;

2、. hibernate数据库移植性远大于mybatis

 

hibernate通过它强大的映射结构和hql语言,大大降低了对象与数据库(OracleMySQL等)的耦合性

 

 

mybatis由于需要手写sql,因此与数据库的耦合性直接取决于程序员写sql的方法,如果sql不具通用性而用了很多某数据库特性的sql语句的话,移植性也会随之降低很多,成本很高。

 

3. hibernate拥有完整的日志系统,mybatis则欠缺一些。

包括:sql记录、关系异常、优化警告、缓存提示、脏数据警告等

mybatis则除了基本记录功能外,功能薄弱很多

 

4. mybatis相比hibernate需要关心很多细节

hibernate配置要比mybatis复杂的多,学习成本也比mybatis高。但也正因为mybatis使用简单,才导致它要比hibernate关心很多技术细节。mybatis由于不用考虑很多细节,开发模式上与传统jdbc区别很小,因此很容易上手并开发项目,但忽略细节会导致项目前期bug较多,因而开发出相对稳定的软件很慢,而开发出软件却很快。

 

5. sql直接优化上,mybatis要比hibernate方便很多

由于mybatissql都是写在xml里,因此优化sqlhibernate方便很多。而hibernatesql很多都是自动生成的,无法直接维护sql;虽

 

 

Mybaits:小巧、方便、高效、简单、直接、半自动

Hibernate:强大、方便、高效、复杂、绕弯子、全自动

 

Mybaits

1、入门简单

2、细致sql优化,减少查询字段

3、缺点框架比较简陋,功能尚有缺失,虽然简化了数据绑定代码

但是整个数据底层数据库实际还是要自己写的,工作量也比较大,而且不太容易适应快速数据库修改。

4、二级缓存机制不佳。

hibernate

1. 功能强大,数据库无关性好,O/R映射能力强,如果你对Hibernate相当精通,而且对Hibernate进行了适当的封装,那么你的项目整个持久层代码会相当简单,需要写的代码很少,开发速度很快,非常爽。

2. 有更好的二级缓存机制,可以使用第三方缓存。

3. 缺点就是学习门槛不低,要精通门槛更高,而且怎么设计O/R映射,在性能和对象模型之间如何权衡取得平衡,以及怎样用好Hibernate方面需要你的经验和能力都很强才行。

 

举个形象比喻:

mybaits:机械工具、使用方便、拿来就用、工作还是自己阿里做,不过是工具

Hibernate:智能机器人、研发成本搞,工作可以摆脱他了,但是仅限于它能

做的事;

28springMVCstruts2的区别是什么?

SpringMVC设计思路:将整个处理流程规范化,并把每一个处理步骤分派到不同的组件中进行处理。

步骤1——Http请求进行初步处理,查找与之对应的Controller处理类(方法)  ——HandlerMapping

步骤2——调用相应的Controller处理类(方法)完成业务逻辑                    ——HandlerAdapter

步骤3——Controller处理类(方法)调用时可能发生的异常进行处理            ——HandlerExceptionResolver

步骤4——根据Controller处理类(方法)的调用结果,进行Http响应处理       ——ViewResolver

1、Struts2是类级别的拦截一个类对应一个request上下文,SpringMVC是方法级别的拦截,一个方法对应一个request上下文,而方法同时又跟一个url对应,所以说从架构本身上SpringMVC就容易实现restful url,而struts2的架构实现起来要费劲,因为Struts2中Action的一个方法可以对应一个url,而其类属性却被所有方法共享,这也就无法用注解或其他方式标识其所属方法了。

2、由上边原因,SpringMVC的方法之间基本上独立的,独享request response数据,请求数据通过参数获取,处理结果通过ModelMap交回给框架,方法之间不共享变量,而Struts2搞的就比较乱,虽然方法之间也是独立的,但其所有Action变量是共享的,这不会影响程序运行,却给我们编码读程序时带来麻烦,每次来了请求就创建一个Action,一个Action对象对应一个request上下文

3、由于Struts2需要针对每个request进行封装,把request,session等servlet生命周期的变量封装成一个一个Map,供给每个Action使用,并保证线程安全,所以在原则上,是比较耗费内存的

4、 拦截器实现机制上,Struts2有以自己的interceptor机制SpringMVC用的是独立的AOP方式,这样导致Struts2的配置文件量还是比SpringMVC大。

5、SpringMVC的入口是servlet,而Struts2是filter(这里要指出,filter和servlet是不同的。以前认为filter是servlet的一种特殊),这就导致了二者的机制不同,这里就牵涉到servlet和filter的区别了

6、

SpringMVC集成了Ajax,使用非常方便,只需一个注解@ResponseBody就可以实现,然后直接返回响应文本即可,而Struts2拦截器集成了Ajax,在Action中处理时一般必须安装插件或者自己写代码集成进去,使用起来也相对不方便。

7SpringMVC验证支持JSR303,处理起来相对更加灵活方便,而Struts2验证比较繁琐,感觉太烦乱。

8、spring MVC和Spring是无缝的。从这个项目的管理和安全上也比Struts2高(当然Struts2也可以通过不同的目录结构和相关配置做到SpringMVC一样的效果,但是需要xml配置的地方不少)。

9、设计思想上,Struts2更加符合OOP的编程思想 SpringMVC就比较谨慎,在servlet上扩展。

10、SpringMVC开发效率和性能高Struts2。

11、SpringMVC可以认为已经100%零配置

 

 

 

 

 

 

 

项目开发和管理需要弄清楚的6个问题

1.项目需求[含需求变更]和需求模块报价清楚吗

2.系统框架、源代码管理、文档管理清楚吗

3.项目的质量要求、Bug、异常处理清楚吗

4.项目进度跟踪清楚吗

5.每个成员的任务清楚吗

6.上下级、客户、平级沟通清楚吗

总结

项目的常见过程包括:市场营销-接到订制项目-需求分析并确定模块-文档制作和代码书写-程序测试和调整-验收交付培训使用接受反馈作后期维护-项目告一段落。

1.【需求阶段】项目需求清楚吗?

1. 需求的部署环境:这个很重要,弄清楚客户的部署环境,才能很好地开发。

2. 需求的里程碑:一般分为几个里程碑,比如一期,二期等,或者几个关键流程的某个流程走通。

3. 对需求进行分类:重要,一般,次要需求。这个在项目的不同周期可能发生转换。

4. 是否画出了流程图用例图,实体关系图,原型DEMO等来表示项目的关键需求。

5. 有没有对需求进行细化,也就是需求点的分解。

6. 对需求变更有没有进行处理,这个如何与任务计划和安排进行联动,对计划始终进行完美的控制,完全体现在报表上,而不是口头上,这个需要一个系统,记录需求的变动历史记录。

7. 需求占项目的的40%也不为过,这个过程很重要

8. 有没有出原型设计,有没有需求说明文档

9. 需求要与计划,安排结合起来。

10. 是否有需求管理和需求变更管理系统,这个与任务安排,系统每日构建是连在一起的。

11. 需求管理应该是分模块的,分功能点的,细化到不能细化为止。

12. 先做功能,优化次之,但是最基础的功能做完,也要有最基本的用户体验,而不是错误的不可用的,或者体验差的。

13. 需求弄清楚,技术架构才好做,包括硬件和软件部分。

14. 需求清楚,才知道找合适的人来做合适的事。

15. 哪些需求完成,哪些需求不确定,哪些需求有变化,哪些需求不做了,都清楚吗

2.【需求阶段】源代码管理清楚吗?

1. 是否用源代码系统进行管理

2. 是否进行每日构建

3. 是否是完整的源代码管理,每个人看到的是全部,而不是部分,有的公司并没有正确应用源代码管理,各做各的。

4. 从源代码管理下载的一定是最完整最正确能顺利运行的系统吗?

5. 源代码进行了权限控制码

6. 源代码管理有分支的备份吗

7. 从我们的源代码到上线发布能一步完成吗

8. 有规范统一的开发,测试,检测标准

9. 数据库是一个人主力负责维护吗

10. 统一部分的代码,核心代码是一个人在做吗

3.【测试阶段】项目的Bug清楚吗?

1. 对待Bug的处理原则:发现一个处理一个,绝不拖到第二天。

2. 需求管理和Bug管理应该是连在一起的,对应到需求管理的模块部分

3. 在开始新程序之前,旧有的Bug是否已经清除,应该尽量避免返工。

4. 有清楚的Bug列表,有人进行跟踪,监督,检查吗

5. 对于暂无法修改的Bug,后期有进行研究和更新改进吗。

6. 有没有在线的Bug管理系统,不仅仅是测试人员,开发人员,需求人员,客户都可以添加,只是看到的权限可能不同。

4.【开发阶段】项目跟踪清楚吗? 

1. 项目需求内容,开发日程安排,开发进度,跟踪监督能反映在一个明确的地方吗,让管理员,程序员,客户等都能一目了然的看到,而不是让项目管理计划与进度形同虚设吗?

2. 项目的需求点,模块,功能,具体的功能点,变更记录,计划时间,完成时间,负责人,整个项目的情况应该是一目了然的。

3. 项目流程的制定和执行清楚吗

4. 代码和功能的走查在做吗,有在进行跟踪和监督吗

5. 项目人员的绩效就是来自于任务的完成情况,工作态度,以及跟踪的报表中

6. 项目质量,样式规范,代码和开发规范,测试要求和规范清楚吗,没有标准参考,怎么进行质量跟踪呢?数据库设计一个人,样式设计一个人,共用部分最好是一个人去做,核心类库一个人

5.【开发阶段】每个成员的任务清楚吗?

1. 模块,功能点责任具体到人,谁负责谁承担责任

2. 成员间交叉开发,以防成员变动带来的烦恼

3. 优先解决成员的问题

4. 有对成员进行技术讲解和知识培训吗

5. 有进行项目成员每日工作日志的记录吗,这个工作日志记录应该与工作计划安排是差不多的,不过即使这样,也是要项目组成员去填写的,每天至少写个两条以上。

6. 工作周报和月报有时候还是很需要的。

7. 指标管理未必不适合我们,什么人什么时间,完成什么功能,记录数量和时间,就可以得出单位时间开发的效率。同时也可以算出Bug率,这样都是衡量工作的指标

8. 项目成员之间沟通方便吗?

9. 工作计划的安排和变动,有成员的参与吗?

10. 目前某个人在做什么,前面在做什么,后面要做什么,完成的怎么样,清楚吗?

6.【需求开发测试阶段】沟通清楚吗?

1. 团队的每日或每周沟通,应该定期沟通,随时沟通用,让小组成员放心,安心。

2. 客户用户的沟通,客户沟通人必须唯一,关注反馈意见,但不完全接受,引导用户,汇报进度,让客户放心,安心。

3. 上级的主动汇报沟通,看进度,提问题最好提出自己的解决方案,争取资源,让老板放心,安心。

4. 项目组外的统一沟通,设定一个跟其他组的统一沟通人,提前沟通,同样需要跟踪和检查,确保无误,让合作伙伴放心,安心。

5. 列出所有需要沟通的问题点,沟通人,沟通时间,沟通结果

总结

一般大家都用MS Project,个人感觉并不是很好用,很多时候形同虚设,也可能是我自己不会用。

我的想法是:

最最重要的是出一张图表,做到胸有成竹,这张图标的内容就是:

需求【模块,功能点,变更记录】-->责任人【变更记录】-->执行时间【计划,完成,变更记录】-->完成进度-->是否审核-->Bug列表-->是否解决,做到这个,项目管理全盘子都清楚了,那就可以轻松一些了。

当然补充一下:还可以根据人出对应的图表:

查看这个人的工作情况和时间进度。

还可以根据时间出人和事情的报表。

这样人,事,时间,三者进行一个组合,应该有六种类型的图标,这是个人的想法。如果有一个类似的项目管理软件,那就很不错了。

=============================更新于2013-9-16

今天我终于发现一款项目管理软件,这个软件的名字叫做禅道项目管理,用的是免费版的,感觉比较好用,已经基本完成了我的大部分功能。

 

等价测试输入三个数进行三边判断三角形

说如三个数xyz进行比较用c/c++语言编写

Osi模型tcp怎么建立和断开连接;

 

0 0
原创粉丝点击