[BUAA2021软工助教]结对项目-第二阶段小结
一、作业链接
二、优秀作业推荐
本次博客作业虽然是简单总结,但是以下作业中都不乏有思考、有亮点的精彩内容,推荐给同学们阅读学习。
zzx 和 zzy 同学实现的文件系统的借鉴了 linux 文件系统的核心思想——一切皆文件,文件/目录都拥有一个索引节点(iNode),其中文件 iNode 存储文件内容,而文件夹存储的是子文件列表,硬链接文件与一个普通文件共享一个iNode,软链接文件可以理解为一个存储了用于重定向的路径的文件。感兴趣的同学可以顺带去了解一下 linux 下是如何实现软硬链接的。
本文提出了非常有深度的问题:MVP还是MBP?T 同学认为把结对编程看作是从MBP向MVP的思维上的一种转变的过程,并向课程组提出了:指导书应该在其中扮演什么样的角色?是要把每个细节卡的一板一眼,还是尽可能以简洁的语言表达最终想要做的结果?评测机又应该扮演什么样的角色?是盯着边界数据不放,还是强调功能的完备性?L 同学也提出了很多有价值的建议,比如指导书的编写能否参考既有文件接口标准(如 POSIX 等)。感谢两位同学的积极思考和建议!
该组提出了两点非常好的优化设计,首先是COPY-ON-USE策略,可以做到在数据范围内通过所有的极限数据。
可惜由于时间原因没有具体实现。其次是 lazy tag,由于 mv 指令中,要求对全部子目录和文件的 modifyTime 进行修改,而暴力递归目录进行修改的复杂度是很高的, 使用lazy tag 可以省去不少没有询问 modifyTime 的时间 。之后使用 JProfiler进行了压力测试,看出优化效果非常明显。
结对编程-stage_2
该组对于可能出现的极端数据,使用 JProfiler 进行了压力测试。并分析了测试结果,改进了相应代码以提高程序性能。
三、总结
- 从本次结对作业的成果来看,同学们都在这门课上付出了不少努力,常常看到很多同学在半夜提出 issue、与助教进行讨论。课程组对同学们认真完成作业的态度表示敬佩。在高压力下完成代码时,同学们还能继续高质量地完成博客作业,这份坚持与执着值得充分的肯定!希望大家继续加油!
- 老生常谈——关于回复评论。部分同学没有积极回复博客,以后的每一次作业依旧会要求同学们积极回复博客,助教和老师也会努力和大家更多地做一些交流。对博客进行评论的目的,一是对博客内容提出建议,希望同学们能查漏补缺、拿到更好的分数;二是针对一些值得讨论的问题和同学们进行交流,这实际上是一个双赢的过程;三是表达对同学们认真完成作业的认可和鼓励。多和老师助教们讨论,不会耽误多少时间,也不会有什么坏处,而且还是让自己通过交流获得自我提升的一种绝好手段,因此希望大家还是可以积极回复博客评论。
- 关于结对方式。有不少同学在博客中如实反映,因为存在各种空间时间条件限制,很难完全实现 “一人写一人看” 的 “理想结对”,这有些遗憾。就去年线上课程的经验来说,场地限制并不足以构成实质性障碍。今年也有不少同学动手尝试了许多在线协作工具,可在两次结对博客评分的优秀作业推荐板块查收。在未来如有机会,希望同学们再去尝试一番,结对还是有其特殊的意义存在的,最起码可以让两者都在这样的伴随式协作中学到很多。
- 关于指导书的吐槽。很多同学反映第二次结对编程中指导书阅读起来比较费力,包括 “不再赘述” 、“指导书中该类型异常首次出现的位置越靠前,则它的优先级越高”,issue 数量较大且更新频繁等等,由此给各位同学带来的不便我们深表歉意。在撰写指导书时,我们的初衷是尽量简化同类的文字,压缩指导书的篇幅,希望给同学们的阅读带来便利,不会因为指导书的 “鸿篇巨制” 打消了大家的积极性。然而事与愿违,“不再赘述” 反而让大家反复搜索上下文可能提到的相似情况,“位置决定优先级” 导致大家需要集合第一次指导书确定各种异常出现的位置,这些隐藏在背后的工作量无形中加大了大家的负担,这也是我们并不希望看到的。课程组所希望的,是通过一个可以迭代开发、扩展性高、难度适中的选题,让大家感受结对编程之于以往的个人项目有什么优势或者劣势,而不是钻进细节本身,花过多的时间纠结于链接成环等特殊情况,这一点大家从讨论区中的 “同学们无需考虑” 和最后的强测数据点也可以看出。非常感谢大家对指导书编写的建议,这也帮助我们 “从用户中来,到用户中去”,改进指导书的编排,给同学们带来更加优质,更加有针对性的结对体验。
- 最后,改革的过程是痛苦的,但改革的结果可以是光明的,在此由衷地感谢讨论区中积极提问的同学,你们是此次结对项目改革的见证者,也是亲历者,更是创造者。请大家相信,课程组从来不会站在学生的对立面,更不会绞尽脑汁地从学生的身上夺走分数,我们的愿景是与同学们站在一起,让大家亲身感受到书本上的软件工程方法论在我们的实际体验下取得了什么样的效果,对自己是否有帮助。如果效果显著,我们就可以在未来的学习、工作中就去践行;如果效果甚微,不适合自己,我们可以进行充分的反思,分析其利弊得失,为以后的工作总结经验并提供方向。在后续的软工课程中,如果大家有对课程设计、教学方式上有建议或意见,欢迎大家及时和老师或助教沟通,大家一起参与讨论,这是解决问题最快、最简单、最行之有效的方法。
- 最后的最后,“芳林新叶催陈叶,流水前波让后波”,希望大家能够直面挑战,不消极,不懈怠,如 “新叶” 一般,像 “后波” 一样,冲破一切阻力,以锐不可当的气势不断向前推进!
四、评分规则
具体评分规则如下,对于超过10分的按满分10分计算成绩:
- markdown 格式清晰,便于阅读(1分)
- 要点是否完整(4分)
- 在博客开头给出教学班级和 GitLab 项目地址,以及结对的两个同学学号的后四位。(1分)
- 简单描述对于结对编程的感受,并给出两人开展现场结对编程的照片。如果还有采用其他的方式进行结对编程,也可以用照片或者截图等形式记录下来。(1分)
- 简单描述你对本项目程序的设计和实现思路。(1分)
- 采用下述PSP表格记录下你估计在程序的各个模块的开发上所需的时间和实际花费时间。(1分)
- 言之有物(6分)
- 描述结对编程感受部分有亮点(2分),例如:
- 对结对过程的描述详细生动
- 结合实际经历、有自己独立的思考结果,等等
- 描述程序设计和实现思路部分有亮点(2分),例如:
- 对程序设计进行了清晰且较为详细的描述
- 描述了单元测试的设计思路和实现过程
- 记录实现过程中的难点及解决方案,等等
- 在其他部分有亮点(2分),例如:
- 语言表达出彩、排版精美在
- 评论中与老师和助教进行了多次言之有物的交流互动
- 进行了要求内容之外的一些思考,等等
- 回复评论老师和助教的点评,并改进(1分)
- 及时回复,积极互动,作出改进(1分)
- 助教、老师在评论中提出了一些待回答的问题或改进的意见,但没有回复(-1分)
- 模板回复,如“谢谢老师/助教,我会努力的”(0分)
- 描述结对编程感受部分有亮点(2分),例如:
注:助教和老师都尽可能地对同学们的博客进行了评论。有一些同学完成作业的情况十分优秀,助教们只在评论中提出表扬,没有提出可供回答的问题,这些同学可能会在“回复评论情况”这部分评分得到0分。针对这种情况,在评分时一定会考虑到博客的整体完成质量,力求让同学们的工作得到一个合理的分数。
五、提交情况与分数汇总
1、本次作业成绩图
请使用个人学号后四位查询自己的分数(本次博客作业成绩取两位助教打分的平均值):
2、前四次作业千帆图
[BUAA2021软工助教]结对项目-第二阶段小结的更多相关文章
- [2017BUAA软工助教]结对项目小结
2017BUAA结对项目小结 一.作业链接 http://www.cnblogs.com/jiel/p/7604111.html 二.评分细则 1.注意事项 按时间完成并提交--正常评分 晚交一周以内 ...
- [2019BUAA软工助教]结对编程 - 小结
[2019BUAA软工助教]结对编程 - 小结 一.评分规则 博客 博客共五十分 序号 要求 分值 1 在文章开头给出Github项目地址 1 2 在开始实现程序之前,在下述PSP表格记录下你估计将在 ...
- [2017BUAA软工助教]个人项目小结
2017BUAA个人项目小结 一.作业链接 http://www.cnblogs.com/jiel/p/7545780.html 二.评分细则 0.注意事项 按时间完成并提交--正常评分 晚交一周以内 ...
- [BUAA2021软工助教]个人阅读作业#2小结
作业链接 见个人阅读作业#2 优秀作业推荐 Shaun_Yao ✍️ 道法之间--软工第2次博客作业 Potassium ✍️ 构之有道,建之有法--软工个人阅读作业#2 MarkDay ✍️ < ...
- [2017BUAA软工助教]个人项目准备工作
BUAA软工个人项目准备工作 零.注册Github个人账号(你不会没有吧..) 这是Git的使用教程: http://www.cnblogs.com/schaepher/p/5561193.html ...
- [BUAA2021软工助教]案例分析作业总结
目录 一.作业链接 二.优秀作业推荐 A+作业推荐 A作业推荐 三.总结 所有案例分析总结 特色与优点 问题与建议 不同类产品案例分析Bug汇总 CSDN问答社区.Stack Overflow.Seg ...
- [2017BUAA软工助教]个人项目测试结果
个人项目测试结果 标签(空格分隔): 未分类 9.29第一次测试结果 注:点击表头内相应项目可针对该项目进行排序 -c测试结果 INDEX NumberID -c 1 -c 5 -c 100 -c 5 ...
- [2017BUAA软工助教]结对组队
请同学们把第一次结对编程双方的学号评论在本博客下,只要一位同学评论即可.例如: 14061195 + 14061183
- [2019BUAA软工助教]第一次阅读 - 小结
[2019BUAA软工助教]第一次阅读 - 小结 一.评分规则 总分 16 分,附加 2 分,共 18 分 markdown格式统一且正确 - 2分 不统一:扣 1 分 不正确:扣 1 分(例如使用代 ...
随机推荐
- Java入门环境的搭建
入门环境搭建 Java帝国的诞生 C & C++ 1972年C诞生 贴近硬件,运行极快,效率极高 操作系统,编译器,数据库,网络系统等 指针和内存管理 1982年C++诞生 面向对象 兼容C ...
- 什么是一致性hash?
一致性hash 前言 说出来大家可能不相信,我昨天做梦梦到自己在面试,然后面试官问了我这个问题哈哈~然后我就打算按照自己的理解写一写.如果有写的不对的欢迎大家指正! 直接开始 普通hash算法 普通h ...
- ffmpeg第五篇:让水印图片旋转起来
这篇把上次挖的坑填上 ffmpeg正式篇的上一篇(传送门)说了,这一篇要让水印旋转起来,但是后面有事情一直没有时间搞,今天,它来了............ 如果想实现旋转的功能,需要使用ffmpeg过 ...
- 创建第一个HTML文件
首先右键新建文本文档,然后打开新建的文档,文本内容写上: <html> <head> <title>我的HTML标题</title> </head ...
- VS2019 自定义项目模板
前言: 使用"宇宙最强IDE"开发项目时,都需要根据不同情况选择一个项目模板,来满足开发需求:如下 VS为我们提供了基础的项目模板,但现有项目模板未包含基础功能如:日志输出.审计日 ...
- zk都有哪些使用场景?
(1)分布式协调:这个其实是zk很经典的一个用法,简单来说,就好比,你A系统发送个请求到mq,然后B消息消费之后处理了.那A系统如何知道B系统的处理结果?用zk就可以实现分布式系统之间的协调工作.A系 ...
- Centos6无法使用yum解决办法
12月后Centos 6 系统无法使用yum出现错误(文章底部看) 相信已经有一部分朋友今天连接到CentOS 6的服务器后执行yum后发现报错,那么发生了什么? CentOS 6已经随着2020年1 ...
- 解决Echarts+<el-tab-pane>的警告:Can't get DOM width or height
1 问题描述 环境: Chrome 87 Element-Plus Vue3.0.5 <el-tab>+<el-tab-pane>中使用Echarts 警告如下: 2 代码 & ...
- 《Python编程:从入门到实践》基础知识部分学习笔记整理
简介 此笔记为<Python编程:从入门到实践>中前 11 章的基础知识部分的学习笔记,不包含后面的项目部分. 书籍评价 从系统学习 Python 的角度,不推荐此书,个人更推荐使用< ...
- 西门子PLC开发笔记(一):PLC介绍,西门子S1200系列接线、编程、下载和仿真
前言 西门西PLC.台达触摸屏.法兰克机床等等多年以前玩得比较多,改造机床.维修机床.给机床编程等等,没事还能扯个零件啥的,之前也没总结过,有时间就重新整理下. 本章后面以西门1200实物为例, ...