[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 分(例如使用代 ...
随机推荐
- RabbitMQ 入门 (Go) - 1. 简介和安装
Message Broker(消息代理) 维基百科对 Message Broker 的定义是:Message broker 是一种中介程序模块,它把消息从发送方的正式消息传递协议转化为接收方的正式消息 ...
- 图解 | 原来这就是 IO 多路复用
为了讲多路复用,当然还是要跟风,采用鞭尸的思路,先讲讲传统的网络 IO 的弊端,用拉踩的方式捧起多路复用 IO 的优势. 为了方便理解,以下所有代码都是伪代码,知道其表达的意思即可. Let's go ...
- Python代码简化
让代码更Pythonic 当然不要过分追求简洁,不然阅读的人就遭殃了, 部分逻辑复杂的情况还应按照清晰的逻辑脉络去写方便阅读, 毕竟我们是用代码实现功能然后维护,而不是单单的炫技. ######### ...
- Elasticsearch索引模板-转载
转载地址:https://dongbo0737.github.io/2017/06/13/elasticsearch-template/#similar_posts Elasticsearch索引模板 ...
- [Fundamental of Power Electronics]-PART I-2.稳态变换器原理分析-2.1 引言
2.1 引言 在上一章中,介绍了降压变换器作为降低直流电压的一种方法,其仅使用非耗散开关,电感器和电容器.开关状态变换产生一个矩形波形\(v_{s}(t)\),如图2.1所示.当开关位于位置1时,该电 ...
- 从wav到Ogg Opus 以及使用java解码OPUS
PCM 自然界中的声音非常复杂,波形极其复杂,通常我们采用的是脉冲代码调制编码,即PCM编码.PCM通过抽样.量化.编码三个步骤将连续变化的模拟信号转换为数字编码. 采样率 采样频率,也称为采样速度或 ...
- OO第二章总结
OO第二章总结 电梯作业终于结束了!!! 这三周作业用多线程模拟搭建电梯的运行,我从开始对多线程的一无所知到结束时的能够完成一些多线程任务的水平,进步还是蛮大的,尽管过程有点艰难. 一.复杂度与UML ...
- Linux实战技能,教你轻松应对85%的使用场景
在Linux实操的过程中,你在网上也能搜到一堆参考资料,但是看完之后还是会觉得似懂非懂,无法举一反三,从网上复制粘贴了事,则极有可能不起作用. 如果侥幸解决了特定的问题,也意识到自己需要系统学习一下 ...
- Julia语言程序基础
Julia-lang 新兴的Julia语言,Julia 一开始就是为高性能而设计的. Julia 程序通过 LLVM 编译成高效的多平台机器码. Julia中文社区: https://cn.julia ...
- spark未授权RCE漏洞
Spark简介 spark是一个实现快速通用的集群计算平台.它是由加州大学伯克利分校AMP实验室 开发的通用内存并行计算框架,用来构建大型的.低延迟的数据分析应用程序.它扩展了广泛使用的MapRedu ...