[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 分(例如使用代 ...
随机推荐
- GRU算法原理
一.GRU算法 GRU(Gate Recurrent Unit,循环门单元)是循环神经网络(Recurrent Neural Network, RNN)的一种.和LSTM(Long-Short Ter ...
- Tomcat详解系列(1) - 如何设计一个简单的web容器
Tomcat - 如何设计一个简单的web容器 在学习Tomcat前,很多人先入为主的对它的认知是巨复杂的:所以第一步,在学习它之前,要打破这种观念,我们通过学习如何设计一个最基本的web容器来看它需 ...
- IPFS矿池集群方案详解
IPFS作为一项分布式存储技术,可以说是web3.0发展的基石.关于IPFS的产业,如存储.技术.矿机.矿池等也发展得非常迅速. 什么是单机挖矿? 单机挖矿就是一台机器就是一个节点,一台机器就完成挖矿 ...
- [换根DP]luogu P3647 [APIO2014]连珠线
题面 https://www.luogu.com.cn/problem/P3647 不重复地取树中相邻的两条边,每次得分为两条边权和,问最大得分 分析 容易想到状态 f[i][0/1] 分别表示 i ...
- MySQL中explain语句的使用
一.概述 在 MySQL 中,我们可以使用慢查询日志或者 show processlist 命令等方式定位到执行耗时较长的 SQL 语句,在这之后我们可以通过 EXPLAIN或者 DESC 命令获取 ...
- java例题_47 读取 7 个数(1—50)的整数值,每读取一个值,程序打印出该值个数的*
1 /*47 [程序 47 打印星号] 2 题目:读取 7 个数(1-50)的整数值,每读取一个值,程序打印出该值个数的*. 3 */ 4 5 /*分析 6 * 1.多次读取---for循环 7 * ...
- Spring Cloud Alibaba(2)---Nacos概述
Spring Cloud Alibaba(2)---nacos概述 上一篇博客讲了有关 SpringCloudAlibaba的概述,这篇开始讲SpringCloudAlibaba组件之一---Naco ...
- C#与Python交互方式
前言: 在平时工作中,需求有多种实现方式:根据不同的需求可以采用不同的编程语言来实现.发挥各种语言的强项 如:Python的强项是:数据分析.人工智能等 .NET 开发桌面程序界面比Python更简单 ...
- Dynamics CRM实体系列之图表
本节开始讲解Dynamics CRM的图表功能.任何产品基本上都会有数据分析的工具,Dynamics CRM当然也不例外,作为一个专门做销售管理的软件数据分析自然也是对于销售管理者的决策有很大的作用的 ...
- Salesforce学习之路(一)几个简单概念
Salesforce是一款非常强大的CRM(Customer Relationship Management)系统,国外企业使用十分频繁,而国内目前仅有几家在使用(当然,国内外企使用的依旧较多),因此 ...