713211106朱文超实践总结.docx
- 文档编号:27403571
- 上传时间:2023-06-30
- 格式:DOCX
- 页数:13
- 大小:319.30KB
713211106朱文超实践总结.docx
《713211106朱文超实践总结.docx》由会员分享,可在线阅读,更多相关《713211106朱文超实践总结.docx(13页珍藏版)》请在冰豆网上搜索。
713211106朱文超实践总结
实践总结
第7组13211106朱文超
一、开发过程概述
1.需求分析
团队分析原生需求,划分用户需求,编写用户故事,估算需求点数,设定需求优先级。
2.规划部署
团队初步对任务进行分工,并确定实现的技术和框架,随设计实现的进程调整分工。
3.设计实现
设计实现分为前端(html&Javascript),服务端(node.js),数据库(MySQL)三部分,对于每一部分工作以每个人负责的需求进行划分。
4.追踪返工
整个开发过程中,团队进一步改进已实现的需求和功能。
5.测试维护
测试全部功能并保证设计实现的预期效果,发现问题并解决。
6.项目进度展示
项目看板,燃尽图和情绪图展示需求完成情况,剩余工作量和团队情绪变化。
7.团队交流
早晨的每日立会交流工作计划和问题;
迭代结束的回顾会议回顾开发过程的问题,不足,成果和经验;
设计实现过程中团队成员交流开发难题和解决方案,协作开发。
8.结对编程
团队分组,根据前端后端的划分,完成数据库操作和客户端交互的对接。
二、具体事件记录
1.需求分析阶段
分析教师需求,确定优先级和估算点数。
2.规划部署阶段
负责私信界面的前端和分配上传下载功能。
3.设计实现阶段
设计实现私信界面的前端界面和逻辑功能,深入学习js,jquery。
设计实现基于websocket的多房间聊天室,深入理解node.js。
模块和前端的嵌入:
(1)由前端和服务端的总负责人分别嵌入聊天室模块,但融合后将原本的多房间聊天室功能只显示了单房间,实现效果为单房间(现实体现:
全校在同一聊天室下聊天),并没有实现多房间功能,但后端依然保留了多房间的功能。
(2)在第二次迭代审核前的最后半小时,找到了前端实现多房间聊天的修改方法,通过和前端负责人的协作交流,将聊天室前端修改为多房间聊天室与对应的课程绑定,完整实现了教师和学生的交流需求。
4.追踪返工阶段
测试聊天室现有功能,并进一步增加聊天室和完善功能。
5.测试维护阶段
测试聊天室的全部功能并保证设计实现的预期效果,发现问题并解决。
增删功能,确保需求的实现并精简。
出现大量底层问题,逐一修改完善。
6.项目进度展示
记录情绪变化和燃尽图剩余工作量。
7.团队交流
聊天室设计实现过程中与团队成员交流开发难题和解决方案,协作开发。
8.结对编程
团队分组,根据前端后端的划分,完成私信聊天的服务端数据和客户端交互的对接。
三、收获
3.1团队开发
1.实际开发要对工作量,难度和成员专长有相当的了解,以便合理分配任务和时间
2.设计实现的效果和预期的理想效果有相当的误差,需要不断测试和完善
3.需求和实现,设计和实现,都有一定的差距,需要根据进度,优先级进行取舍和调整
4.团队合作要非常明确的界定工作范围和职责,不能推诿责任或越界。
5.需求的实现应该一以贯之,不应频繁移交负责人。
6.充足完善的交流有助于前后端交互的实现。
7.底层工作的准确和完善对于上层的开发至关重要。
3.2个人开发
3.1.1前端
聊天室模块前端(ejs&javascript实现)
熟悉ejs模板的运用。
私信界面(html&javascript实现)
学习html和javascript的功能和逻辑,并初步试手。
私信界面嵌入聊天室(iframe实现)
熟悉Html模块和框架的移植和嵌入。
前端聊天室最终实现效果(绑定课程实现多房间聊天室)
理解后端修改对于前端的影响,对前端后端有了更深入的了解。
输入及显示控制控件(javascript实现)
了解控件的设计和移植,测试维护确保实现效果。
控件jquery实现代码
$('#b').click(function(){
$('.yanwenzi').toggle('fast');
});
$('.yanwenzi').click(function(e){
varstr=$('#messageInput').val();
str+=$(e.target).html();
$('#messageInput').val(str);
});
$('#clearmes').click(function(){
$('#messageInput').val('');
});
$('#clearscreen').click(function(){
$('#historyMsg').html('');
});
$('#sendBtn').click(function(){
msg=$('#messageInput').val();
color=$('#colorStyle').val();
if(msg.trim().length!
=0){
socket.emit("message",msg,color);
$('#messageInput').val('');
}
});
document.addEventListener('keyup',function(e){
msg=$('#messageInput').val();
color=$('#colorStyle').val();
if(e.keyCode==13&&msg.trim().length!
=0){
socket.emit('message',msg,color);
messageInput.value='';
};
},false);
});
深入学习javascript,为未来深入学习node.js奠定基础。
3.1.2后端
Node.js聊天室服务端核心代码及开启(基于express及websocket框架)
vario=require('socket.io').listen(server);
varroomUser={};
io.on('connection',function(socket){
//获取用户当前的url,从而截取出房间id
varurl=socket.request.headers.referer;
varsplit_arr=url.split('/');
varroomid=split_arr[split_arr.length-1]||'index';
varuser='';
socket.on('join',function(username){
user=username;
//将用户归类到房间
if(!
roomUser[roomid]){
roomUser[roomid]=[];
}
roomUser[roomid].push(user);
socket.join(roomid);
socket.to(roomid).emit('sys','<'+user+'>加入讨论',roomid,roomUser);
socket.emit('sys','<'+user+'>加入讨论',roomid,roomUser);
});
//监听来自客户端的消息
socket.on('message',function(msg,color){
//验证如果用户不在房间内则不给发送
if(roomUser[roomid].indexOf(user)<0){
returnfalse;
}
socket.to(roomid).emit('newmessage',msg,color,user);
socket.emit('newmessage',msg,color,user);
});
socket.on('img',function(imgData,color){
socket.to(roomid).emit('newImg',imgData,color,user);
socket.emit('newImg',imgData,color,user);
});
//关闭
socket.on('disconnect',function(){
//从房间名单中移除
socket.leave(roomid,function(err){
if(err){
log.error(err);
}else{
varindex=roomUser[roomid].indexOf(user);
if(index!
==-1){
roomUser[roomid].splice(index,1);
socket.to(roomid).emit('sys','<'+user+'>退出讨论',roomid,roomUser);
}
}
});
});
});
初步学习node.js,熟悉express和websocket框架,并初步试手。
理解node服务端的运行模式并尝试设计服务端。
3.1.3聊天室UI设计
初始风格(ejs模块)
学习掌握css,初步尝试UI的设计,尝试多种风格。
修改风格(与前端统一)
综合前端考虑,统一界面风格。
最终效果(考虑显示高对比度)
考虑实际应用的效果,借鉴优秀UI的设计风格和理念。
四、认识和感悟
4.1设计
在应用的开发过程中,所有创造性追求的核心,最重要的奋斗是同时做艺术家和编辑。
作为艺术家,感性的你想要发挥无限的想象创造完美和精彩的作品,但是作为编辑,理性使你从全局考虑,删繁就简,成就精品。
从一个想法出发。
艺术家需要尝试新事物。
需要试验,不要在意新事物是否合理。
要发现新领地,要从缺陷和意外中获益。
做一个无情的编辑,开始简化。
直到核心。
“简洁不是做出没有装饰的东西,而是做出非常复杂的东西,然后消减元素,直到揭示其本质。
”
在消减之后,你清楚地看到了自己的想法。
这时候,你可能意识到它其实并不好。
最难的部分就是放弃一个想法。
因为你为它经过了许多不眠之夜,或者你已经爱上了它。
你很自然要依赖它,但那样做的后果是无聊和可预期。
因此,你要“以孩子气和开放心态来创造,但是当评判自己的创造物时,要不留恋,要残酷。
”
4.2开发
要成为一个团队的精兵,必须是专业知识过硬,经验丰富,指哪打哪,能够非常让人放心的完成领导安排的任务的人。
要做到这些,学习和实践是最直接的路径。
通常所学的知识并不能100%胜任岗位的需要,这个时候,快速地学习补充自己的知识缺陷就显得非常重要。
1.借助导师、团队资源。
这样可以让自己快速解决遇到的问题,少走很多弯路。
2.系统化的学习工作所需要的是基础知识,而不是到XX或谷歌查资料解决。
这样有助于遇到问题后通过相关知识关联分析,也有助于搭建更合理的技术架构,或改进现有技术架构的不足,让知识形成协同效应。
为了让没有做过研发的运维同事对研发不觉得神秘,能够去分析异常故障深层次原因。
3.除了工作中需要的新知识外,建议在工作一段时间后再回头系统性学习相关专业基础知识。
因为在学校的学习多数都缺乏实践,很多知识的掌握比较粗浅,在工作一段时间后重新再学,会有完全不同的收获,很多实际业务在异常时表现的现象都和书上讲的对应起来了。
一些只在书上看过但无法在试验环境模拟的现象都在实际工作中找到了场景。
4.借助各种平台和资料学习成长。
实际工作中,爆发式增长的业务或大平台是一个人快速成长和进步非常好的资源。
因为爆发式增长的业务会让你在很短的时间内遇到在其他地方好多年可能都不会遇到的问题,而大的平台一定是从小而来,趟过很多的坑,在这样的环境中,保持一个好奇好学的心态,可以快速提高自己。
5.如果可以对自己进行细分定位会更好。
IT技术不断地出现新的技术分支,要想每一样都做到精通是非常困难的。
所以结合自身情况以及工作需要,对自己有一个更加细分的定位,这样做精力才能聚焦,更有可能快速在你所做的领域不断深入,进而成为专家。
而如果你想要成为一个综合性的人才,也可以考虑通过阶段性专注于某一细分领域,重点学习积累,具有一定深度后再切换重点关注领域。
6.保持开放的心态。
需要在沟通合作中更多的换位思考,多创造一些双赢的机会。
平时先帮助团队或同事完成目标,等到自己团队需要帮助的时候,也会有团队或同事出来帮助你。
7.注重成果总结和展现。
不少人或团队所做的工作成绩非常突出,但在答辩的时候讲得很一般,平时很辛苦,最后呈现很糟糕。
对于不善表达的人来说,可以更多地注重利用日常工作中通过各类文本的形式表达场景,这样可以在长期的工作中,让周围的同事和领导了解自己及团队的工作成果。
8.注重平时的资料积累。
总结展现不好,很多情况也是由于内容不够丰富有价值。
为了解决这个问题可以养成将一些日常工作中坚持将成果邮件、PPT、数据图表等案例分类汇总保留。
这样在需要总结的时候数据会很丰富,有内容就不怕讲不出。
9.团队目标和心态
团队部分成员甚至一些团队整体都会困惑应该做什么,除了不断重复一些任务和工作外,团队成员长远的发展是什么等关键问题不明晰。
如果这个问题得不到很好的解决,那么团队就可能出现不稳定、士气不高、战斗力差等情况。
8.职责细分
按专业分工的思路将团队分工不断细化,并尝试清晰地定义每个团队的核心工作职责,让大家在自己团队核心工作职责的方向上不断沉淀,通过积累建立起和别的团队差异化的经验,形成自己独有的经验和平台优势。
五、建议
1.希望项目需求提高深度而非广度,将重点放在研发上而非开发。
2.熟悉多种语言,适应复杂开发,但精通某种语言或框架,能够发挥个人专长。
3.PM和SM应该有相当的专业掌握和精准的分配细化,否则项目开发和管理会陷入混乱或者拖延。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 713211106 朱文 实践 总结
![提示](https://static.bdocx.com/images/bang_tan.gif)