常见的列转行,主要原理是利用SQL里面的union,具体的sql语句如下:
Select username,’cn_score’ course,cn_score as score from table
UNION
Select username,’math_score’course,math_score as score from table
UNION
Select username,’en_score’course,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中打印,利用客户端打印;
第一种几乎不用编写程序,最简单快捷,这里会遇到几个问题,只能打印表单内容,按钮不希望打印出来;页眉页脚不想打印出来;IE的titile不想打印出来。
第二种方式必须根据每个报表的格式进行定制html和Java程序开发,会花比较多的时间。要注意的是对html中table的样式控制,在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><html lang="en">
...</html>
2、格网系统(Grid System).默认的Bootstrap格网系统提供一个宽达940像素的,12列的格网
<div class="row">
<div class="span4">...</div>
<div class="span8">...</div></div>
2.2偏移列.
<div class="row">
<div class="span4">...</div>
<div class="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所示:
<div class="row-fluid">
<div class="span4">...</div>
<div class="span8">...</div></div>
自定义格网(Grid customization).Bootstrap允许通过修改variables.less的参数值来自定义格网系统。主要包括如表1-1所示的变量:
变量 | 默认值 | 说明 |
@gridColumns | 12 | 列数 |
@gridColumnWidth | 60px | 每列的宽度 |
@gridGutterWidth | 20px | 列间距 |
<div class="container-fluid">
<div class="row-fluid">
<div class="span2">
<!--Sidebar content-->
</div>
<div class="span10">
<!--Body content-->
</div>
</div></div>
16.bootstrap是什么框架?js的还是css的
bootstrap是基于HTML、CSS、JAVASCRIPT的,
简洁灵活,使得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:您开出的工资水平和我的期望值还有差距,不知道我如果能进入公司,能通过怎样的努力来缩小这个差距?我相信如果公司给我这个机会,我能让我的工资水平达到我的期望。
27hibernate和mybaits的区别是什么?
1、hiberante是全自动的,而mybaits是半自动的
Hibernate完全可以通过对象关系模型实现对数据库的操作
拥有完整的javaBena对象与数据库的映射结构自动生成sql;
Mybaits仅有基本的字段映射,对象数据以及对象实际关系仍然
需要通过sql来实现和管理;
2、. hibernate数据库移植性远大于mybatis。
hibernate通过它强大的映射结构和hql语言,大大降低了对象与数据库(Oracle、MySQL等)的耦合性;
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方便很多
由于mybatis的sql都是写在xml里,因此优化sql比hibernate方便很多。而hibernate的sql很多都是自动生成的,无法直接维护sql;虽
Mybaits:小巧、方便、高效、简单、直接、半自动
Hibernate:强大、方便、高效、复杂、绕弯子、全自动
Mybaits
1、入门简单
2、细致sql优化,减少查询字段
3、缺点框架比较简陋,功能尚有缺失,虽然简化了数据绑定代码
但是整个数据底层数据库实际还是要自己写的,工作量也比较大,而且不太容易适应快速数据库修改。
4、二级缓存机制不佳。
hibernate:
1. 功能强大,数据库无关性好,O/R映射能力强,如果你对Hibernate相当精通,而且对Hibernate进行了适当的封装,那么你的项目整个持久层代码会相当简单,需要写的代码很少,开发速度很快,非常爽。
2. 有更好的二级缓存机制,可以使用第三方缓存。
3. 缺点就是学习门槛不低,要精通门槛更高,而且怎么设计O/R映射,在性能和对象模型之间如何权衡取得平衡,以及怎样用好Hibernate方面需要你的经验和能力都很强才行。
举个形象比喻:
mybaits:机械工具、使用方便、拿来就用、工作还是自己阿里做,不过是工具
Hibernate:智能机器人、研发成本搞,工作可以摆脱他了,但是仅限于它能
做的事;
28springMVC和struts2的区别是什么?
SpringMVC设计思路:将整个处理流程规范化,并把每一个处理步骤分派到不同的组件中进行处理。
步骤1—— 对Http请求进行初步处理,查找与之对应的Controller处理类(方法) ——HandlerMapping
l 步骤2—— 调用相应的Controller处理类(方法)完成业务逻辑 ——HandlerAdapter
l 步骤3—— 对Controller处理类(方法)调用时可能发生的异常进行处理 ——HandlerExceptionResolver
l 步骤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.【需求阶段】项目需求清楚吗?
1. 需求的部署环境:这个很重要,弄清楚客户的部署环境,才能很好地开发。
2. 需求的里程碑:一般分为几个里程碑,比如一期,二期等,或者几个关键流程的某个流程走通。
3. 对需求进行分类:重要,一般,次要需求。这个在项目的不同周期可能发生转换。
4. 是否画出了流程图,用例图,实体关系图,原型DEMO等来表示项目的关键需求。
5. 有没有对需求进行细化,也就是需求点的分解。
6. 对需求变更有没有进行处理,这个如何与任务计划和安排进行联动,对计划始终进行完美的控制,完全体现在报表上,而不是口头上,这个需要一个系统,记录需求的变动历史记录。
7. 需求占项目的的40%也不为过,这个过程很重要
8. 有没有出原型设计,有没有需求说明文档
9. 需求要与计划,安排结合起来。
10. 是否有需求管理和需求变更管理系统,这个与任务安排,系统每日构建是连在一起的。
11. 需求管理应该是分模块的,分功能点的,细化到不能细化为止。
12. 先做功能,优化次之,但是最基础的功能做完,也要有最基本的用户体验,而不是错误的不可用的,或者体验差的。
13. 需求弄清楚,技术架构才好做,包括硬件和软件部分。
14. 需求清楚,才知道找合适的人来做合适的事。
15. 哪些需求完成,哪些需求不确定,哪些需求有变化,哪些需求不做了,都清楚吗
1. 是否用源代码系统进行管理
2. 是否进行每日构建
3. 是否是完整的源代码管理,每个人看到的是全部,而不是部分,有的公司并没有正确应用源代码管理,各做各的。
4. 从源代码管理下载的一定是最完整最正确能顺利运行的系统吗?
5. 源代码进行了权限控制码
6. 源代码管理有分支的备份吗
7. 从我们的源代码到上线发布能一步完成吗
8. 有规范统一的开发,测试,检测标准
9. 数据库是一个人主力负责维护吗
10. 统一部分的代码,核心代码是一个人在做吗
1. 对待Bug的处理原则:发现一个处理一个,绝不拖到第二天。
2. 需求管理和Bug管理应该是连在一起的,对应到需求管理的模块部分。
3. 在开始新程序之前,旧有的Bug是否已经清除,应该尽量避免返工。
4. 有清楚的Bug列表,有人进行跟踪,监督,检查吗
5. 对于暂无法修改的Bug,后期有进行研究和更新改进吗。
6. 有没有在线的Bug管理系统,不仅仅是测试人员,开发人员,需求人员,客户都可以添加,只是看到的权限可能不同。
1. 项目需求内容,开发日程安排,开发进度,跟踪监督能反映在一个明确的地方吗,让管理员,程序员,客户等都能一目了然的看到,而不是让项目管理计划与进度形同虚设吗?
2. 项目的需求点,模块,功能,具体的功能点,变更记录,计划时间,完成时间,负责人,整个项目的情况应该是一目了然的。
3. 项目流程的制定和执行清楚吗
4. 代码和功能的走查在做吗,有在进行跟踪和监督吗
5. 项目人员的绩效就是来自于任务的完成情况,工作态度,以及跟踪的报表中
6. 项目质量,样式规范,代码和开发规范,测试要求和规范清楚吗,没有标准参考,怎么进行质量跟踪呢?数据库设计一个人,样式设计一个人,共用部分最好是一个人去做,核心类库一个人
1. 模块,功能点责任具体到人,谁负责谁承担责任
2. 成员间交叉开发,以防成员变动带来的烦恼
3. 优先解决成员的问题
4. 有对成员进行技术讲解和知识培训吗
5. 有进行项目成员每日工作日志的记录吗,这个工作日志记录应该与工作计划安排是差不多的,不过即使这样,也是要项目组成员去填写的,每天至少写个两条以上。
6. 工作周报和月报有时候还是很需要的。
7. 指标管理未必不适合我们,什么人什么时间,完成什么功能,记录数量和时间,就可以得出单位时间开发的效率。同时也可以算出Bug率,这样都是衡量工作的指标
8. 项目成员之间沟通方便吗?
9. 工作计划的安排和变动,有成员的参与吗?
10. 目前某个人在做什么,前面在做什么,后面要做什么,完成的怎么样,清楚吗?
1. 团队的每日或每周沟通,应该定期沟通,随时沟通用,让小组成员放心,安心。
2. 客户用户的沟通,客户沟通人必须唯一,关注反馈意见,但不完全接受,引导用户,汇报进度,让客户放心,安心。
3. 上级的主动汇报沟通,看进度,提问题最好提出自己的解决方案,争取资源,让老板放心,安心。
4. 项目组外的统一沟通,设定一个跟其他组的统一沟通人,提前沟通,同样需要跟踪和检查,确保无误,让合作伙伴放心,安心。
5. 列出所有需要沟通的问题点,沟通人,沟通时间,沟通结果
总结
一般大家都用MS Project,个人感觉并不是很好用,很多时候形同虚设,也可能是我自己不会用。
我的想法是:
最最重要的是出一张图表,做到胸有成竹,这张图标的内容就是:
需求【模块,功能点,变更记录】-->责任人【变更记录】-->执行时间【计划,完成,变更记录】-->完成进度-->是否审核-->Bug列表-->是否解决,做到这个,项目管理全盘子都清楚了,那就可以轻松一些了。
当然补充一下:还可以根据人出对应的图表:
查看这个人的工作情况和时间进度。
还可以根据时间出人和事情的报表。
这样人,事,时间,三者进行一个组合,应该有六种类型的图标,这是个人的想法。如果有一个类似的项目管理软件,那就很不错了。
=============================更新于2013-9-16
今天我终于发现一款项目管理软件,这个软件的名字叫做禅道项目管理,用的是免费版的,感觉比较好用,已经基本完成了我的大部分功能。
等价测试输入三个数进行三边判断三角形
说如三个数x、y、z进行比较用c/c++语言编写
Osi模型tcp怎么建立和断开连接;