Scrum 冲刺-day2
Scrum冲刺-day2
这个作业属于哪个课程 | 班级链接 |
---|---|
这个作业要求在哪里 | 作业链接 |
这个作业的目标 | Scrum冲刺 |
1 站立会议
1.1 会议照片
1.2 会议内容
成员 | 昨日完成 | 今日计划 | 遇到的困难 |
---|---|---|---|
张孟聪 | 学习了WebSocket服务器的搭建 | 继续学习WebSocket | 对WebSocket的了解不多 资料也不多 |
郭炜彬 | 做准备工作,撰写博客 | 分配任务,撰写博客 | 燃尽图的使用 |
杨析睿 | 和同样负责后端的组长商谈分工,规范合作开发流程 | 完成包括登录过滤,验证码的模块开发 | 1.基于二人共同开发的代码规范问题;2.函数设计 |
黎梓洋 | 学习了解测试的工作 | 做好测试准备 | 单元测试导包出问题 |
刘霖笙 | 做好冲刺阶段的准备工作 | 确定前端框架 | 需要实现的功能太多 |
叶臻强 | 学习axios+登陆注册界面 | 继续学习axios+ | 都是船新的知识 |
2 项目燃尽图
3 签入记录
3.1 代码/文档签入记录
3.2 Code Review 记录
3.3 issue内容和链接
成员 | issue内容和链接 |
---|---|
张孟聪 | 系统后端模块框架搭建 |
杨析睿 | 完善登录过滤,验证码的模块开发 |
叶臻强 | 前端静态界面搭建 |
四、最新模块
package com.wechat.dao.impl;
import com.wechat.dao.PhotoDao;
import com.wechat.po.Photo;
import com.wechat.util.DbUtil;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
public class PhotoDaoImpl implements PhotoDao {
@Override
public List<Photo> getPhoto(int pages, int sizes) throws SQLException {
List<Photo> photos = new ArrayList<>();
String sql = "select bg_name from db_background order by bg_id limit ?, ?";
Object[] params = {(pages - 1) * sizes, sizes};
ResultSet resultSet = DbUtil.executeQuery(sql, params);
while (resultSet.next()) {
Photo photo = new Photo();
photo.setPhotoName(resultSet.getString("bg_name"));
photos.add(photo);
}
DbUtil.closeAll(resultSet, DbUtil.pstmt, DbUtil.connection);
return photos;
}
@Override
public int getPhotoNumber() throws SQLException {
String sql = "SELECT COUNT(*)FROM db_background";
ResultSet resultSet = DbUtil.executeQuery(sql, null);
int result = -1;
while (resultSet.next()) {
result = resultSet.getInt("count(*)");
}
DbUtil.closeAll(resultSet, DbUtil.pstmt, DbUtil.connection);
return result;
}
@Override
public boolean changeBg(String loginId, String photoUrl) {
String sql = "update db_user set background = ? where login_id = ?";
Object[] params = {photoUrl, loginId};
return DbUtil.executeUpdate(sql, params);
}
}
package com.wechat.po;
public class Comment {
/**
* 评论内容
*/
private String commentText;
/**
* 发送者
*/
private int sendUser;
private String sendUserName;
private String sendTime;
private int circleId;
public String getCommentText() {
return commentText;
}
public void setCommentText(String commentText) {
this.commentText = commentText;
}
public int getSendUser() {
return sendUser;
}
public void setSendUser(int sendUser) {
this.sendUser = sendUser;
}
public String getSendTime() {
return sendTime;
}
public void setSendTime(String sendTime) {
this.sendTime = sendTime;
}
public int getCircleId() {
return circleId;
}
public void setCircleId(int circleId) {
this.circleId = circleId;
}
public String getSendUserName() {
return sendUserName;
}
public void setSendUserName(String sendUserName) {
this.sendUserName = sendUserName;
}
}
public static String getCurrentTime() {
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date date = new Date();
String currentTime = dateFormat.format(date);
return currentTime;
}
public String getPhotoUrl() {
return photoUrl;
}
public void setPhotoUrl(String photoUrl) {
this.photoUrl = photoUrl;
}
public List<Comment> getComments() {
return comments;
}
public void setComments(List<Comment> comments) {
this.comments = comments;
}
public String getSendUserName() {
return sendUserName;
}
public void setSendUserName(String sendUserName) {
this.sendUserName = sendUserName;
}
}
验证码(VerifyCode.java)
private Color randomColor() {
int red = random.nextInt(256);
int green = random.nextInt(256);
int blue = random.nextInt(256);
return new Color(red, green, blue);
}
/**
* 在验证码图片中增加干扰线条
*
* @param image
*/
private void drawLine(BufferedImage image) {
int num = 5;
Graphics2D graphics = (Graphics2D) image.getGraphics();
for (int i = 0; i < num; i++) {
int x1 = random.nextInt(width);
int y1 = random.nextInt(height);
int x2 = random.nextInt(width);
int y2 = random.nextInt(height);
graphics.setStroke(new BasicStroke(1.5F));
graphics.setColor(Color.BLUE);
graphics.drawLine(x1, y1, x2, y2);
}
}
private BufferedImage createImage() {
BufferedImage image = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);
Graphics2D g2 = (Graphics2D) image.getGraphics();
g2.setColor(this.backgroundColor);
g2.fillRect(0, 0, width, height);
return image;
}
public BufferedImage getImage() {
BufferedImage image = createImage();
Graphics2D graphics = (Graphics2D) image.getGraphics();
StringBuilder stringBuilder = new StringBuilder();
// 向图片中画4个字符
for (int i = 0; i < Constant.CODESIZE; i++) {
String rand = String.valueOf(random.nextInt(10));
stringBuilder.append(rand);
float x = i * 1.0F * width / 4;
graphics.setFont(new Font("Times New Roman", Font.PLAIN, 20));
graphics.setColor(randomColor());
graphics.drawString(rand, x, height / 2);
}
this.code = stringBuilder.toString();
drawLine(image);
return image;
}
public String getText() {
return code;
}
public static void output(BufferedImage image, OutputStream out)
throws IOException {
ImageIO.write(image, "JPEG", out);
}
登录过滤(LoginFilter.java)
@Override
public void init(FilterConfig filterConfig) throws ServletException {
}
@Override
public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
HttpServletRequest request = (HttpServletRequest) servletRequest;
HttpServletResponse response = (HttpServletResponse) servletResponse;
if (request.getSession().getAttribute("user") == null) {
response.sendRedirect("../login.jsp");
} else {
filterChain.doFilter(request, response);
}
}
五、总结
成员 | 感想 |
---|---|
张孟聪 | 救命! |
郭炜彬 | 要跟成员交流清楚需求,并且设置好截止日期 |
杨析睿 | 这是团队敏捷开发的第二天,个人正式冲刺的第一天,可以说任务量安排还是很满当的,接下来一周应该会特别充实。今天主要是熟悉了Github合作开发的流程,例如fork, pull requests。对于自己开发的模块,打代码前一定要和组友规范代码。如果一开始没沟通好,后面对接和互相使用可能会产生不少误解。 |
黎梓洋 | 在学了 |
刘霖笙 | 要学会切割,将大模块切割成小模块 |
叶臻强 | 裂开 |
注:18号我们开始准备,20号才开始,因为19号我们的团队成员都是事,没办法凑齐开会。