结对第二次作业——编程实现

助教郑至博 助教 2024-03-21 12:08:13

结对第二次作业——编程实现

目录

  • 结对第二次作业——编程实现
  • 截止时间
  • 一、作业内容
  • 1、基础功能
  • 2、附加功能
  • 3、其他说明
  • 二、编码要求
  • 1、Gitcode使用
  • 2、代码规范制定
  • 3、技术和框架
  • 三、博客撰写要求
  • 四、作业评分项和评分规则
  • 五、规则&格式
  • 1、为了方便阅读以及助教评分,请大家在博客开头给出博文目录,作为内容的索引
  • 2、 为了方便其他学校的老师或者助教了解课程实况,请大家在作业开头添加格式描述:
  • 3、提交规则
  • 4、注意事项
  • 5、疑惑解疑


为了不遗漏作业内容,这里有一份checklist方便同学们快速检阅。

  • fork仓库,和伙伴商讨如何通过git协作/代码规范等
  • 编程实现
  • 基础功能实现
  • 附加功能实现
  • 部署
  • 发布release版本,发起pull request
  • 撰写博客,在截止之前提交一份博客
  • 包含作业描述和目录
  • 核对评分标准

上一次结对作业中,大家都和小伙伴完成了原型的设计,那么现在再联合小伙伴动手实现原型中的部分功能吧。因为了解到大家基本都有一定的web基础,本次作业便要求大家采用web技术来实现原型中的功能。

截止时间

本次作业截止时间为:2024年3月26日 23:59
注:博客发布后需要审核,请同学们记得提前发布博客,避免影响作业提交

一、作业内容

1、基础功能

  • 功能1:选手排名
    • 只需完成“66th International Divers’ Day Rostock”的排名,需要展示Overall Rank,Country,Athlete,Age,Points。
  • 功能2:每日赛况
    • 展示每一天的赛事,显示比赛类型(男子1m跳板,女子10m跳台等),参与选手和比赛时间(对于决赛需要突出显示)。
    • 支持点击查看详细情况。
  • 功能3:详细赛况
    • 展示比赛的成绩,包含本场比赛参赛选手,选手排名,比赛积分,落后积分等。
  • 功能4:奖牌榜
    • 直观友好地展示各个参赛国的获奖情况。
  • 注:此次作业就是编码实现原型设计的内容,具体需求可以参考原型设计要求博客

2、附加功能

  • 附加功能:了解更多
    • 介绍世界游泳锦标赛的举办背景,通过丰富的图文使平台更具吸引力,引起人们对世界游泳锦标赛的兴趣。
  • 更多功能
    • 你们可以充分发挥自己的想象力,为网页设计具有特色的功能。

3、其他说明

  • 数据来源
    • 可参考个人实战作业,自主爬取【该爬取行为仅用于课程教学,请同学们在帖子中注明!】
  • 关于扩展功能
    • 可以扩展你想扩展的功能,扩展功能会被记入作为附加分,对于扩展的功能请在博客中详细描述
  • 本次项目需要部署到云服务器上,并且在博客中给出链接
  • 国内云服务商域名没备案的话,链接请给出IP地址的,否则过几天链接会因为未备案被封禁
  • 若未实现部署到云服务器,则项目部署部分的分数为0分,并且需与助教协商时间, 现场演示
  • 关于开发
    • 推荐基于Web来开发,使用Web框架,如常见的JSP、Servlet、spring系列、flask、php、express等。
    • 如果技术存在难度也可以直接使用纯前端来进行开发,数据写在代码中,持久化在storage。Web使用的持久化建议持久化在嵌入式数据库中,如sqllite或derby。
    • 采用的技术应该具有平台兼容性,不依托于具体的环境。
    • 本次作业以实现功能为主要目标,技术考量仅仅占一定的分数。切勿用原型工具生成代码,一经发现直接0分

二、编码要求

1、Gitcode使用

本次作业继续沿用Gitcode,相比第一次个人实战考察基础Git使用,这一次主要考察Git的合作

  • Fork下面仓库,然后在根目录中新建一个以学号1_学号2(两位结对成员的学号)命名的文件夹,并至少进行20次以上的commit修改,两人至少分别提交10次以上,commit记录应该符合项目实情,如果虚构会被扣去所有分数。仓库目录结构没有硬性要求,但要保证可以依靠此仓库提供的代码来构建项目。

    https://gitcode.net/mikupi/pair-project
    

    注:请至少在ddl前2天Fork仓库,最后两天助教会统一处理同学们的pr签入,为避免Fork到其他同学的项目,请同学们提早Fork。第一次个人作业有很多同学没有正确Fork仓库,导致助教无法合并请求,再出现这种情况一律按补交处理。

  • 对于非仓库要求的代码,如编译器生成的项目文件、输出文件、class、jar包、exe等,应该使用.gitignore进行忽略,并确保不会提交到Gitcode上。

  • 为自己的仓库编写 README.md,内容包括,作业链接、结对学号、项目介绍。

  • 在这次编程合作中学习使用Git分支、Release发布及其他高级功能。建立一条dev分支,让你的队友和你在dev分支上开发,开发结束后再合并到main分支。在基本功能开发完成后发布release包,标注版本为1.0.0,后边完成更多功能可以继续发布新的release包。

  • 在完成项目后,deadline之前,请正确发起一个Pull Requet ,并确保自己的代码最终成功签入。(如果成功签入会在原始项目主页看到自己学号为名的文件夹)

2、代码规范制定

这一次作业仍然需要编写一份codestyle.md作为代码规范,但是要求该代码规范来自于主流的官方规范或者大公司推荐的规范,并在代码规范顶部标注来源。

3、技术和框架

本次作业不限制语言,不限制库和框架的使用。


三、博客撰写要求

  1. 给出作业描述和目录。
  2. 在文章开头给出Gitcode仓库地址
  3. 在开始实现程序之前,在PSP表格中记录下你估计将在程序的各个模块的开发上耗费的时间和实际花费的时间,实现程序后在PSP表格记录实际花费的时间,可以两个人共用一份PSP表格,也可以两个人分开使用两个PSP表格。
  4. 给出项目部署到云服务器后的访问链接
  5. 展示你的成品,要求提供10张以上的图片,或者采用GIF或者视频嵌入的方式来展示作业要求的功能,要求对每张展示的图辅以一定文字说明
  6. 结对讨论过程描述,即刚开始拿到题目后,和队友怎么讨论,解决问题和查找资料的过程,并提供两人结对讨论的截图
  7. 描述设计实现过程,给出功能结构图
  8. 代码说明。展示出项目关键代码,300行左右,并解释思路
  9. 阅读《构建之法》第四章的内容,结合在构建之法中学习到的相关内容,结对伙伴分别撰写结对开发项目的心路历程与收获,并评价结对队友。

四、作业评分项和评分规则

本次作业总分100分

  • (20’)基本要求【覆盖课程目标2】

    • (5‘) 博客排版,采用markdown排版;正确给出Gitcode仓库链接、代码规范链接
    • (15‘) 功能分析,实现过程的设计(如系统设计、功能架构图、系统创新性、合理性等)
  • (30‘)编码实现【覆盖课程目标4】

    • (30‘) 基础功能

      • (5‘) 功能1:选手排名
      • (7‘) 功能2:每日赛况
      • (8‘) 功能3:详细赛况
      • (5‘) 功能4:奖牌榜
      • (5‘) 将项目部署到云服务器上
    • (附加分:0’~15’) 附加功能

      • 附加功能:了解更多 【附加分:5分】
      • 更多功能:扩展基础功能以外的功能 【附加分:0~10分】
  • (30‘)结果汇报【覆盖课程目标5】

    • (10‘) 代码说明:展示出项目关键代码,并解释思路
    • (5’) 代码规范的制定和遵守:符合所使用语言的官方规范或者行业规范,且指定的代码规范需要严格在编码中执行
    • (8‘) 成品展示:提供10张以上的图片介绍,或者采用GIF或者视频嵌入的方式展示,展示的效果好,能够通过展示清晰了解主要的功能。
    • (7‘) 分析过程和设计过程表述规范,详细说明实现过程的设计思路、遇到的问题以及解决的方式。
  • (20‘)结对协作【覆盖课程目标6】

    • (4‘) 体现结对协作的PSP表格
    • (4‘) Gitcode commit满足多于20次,要求两人均多于10次,且commit时间合理,使用分支、release、issues、pr等其它功能。commit要能够体现结对协作
    • 4‘)心路历程和收获&评价结对队友:不笼统,有意义,图文兼备;两个人要写各自的感想和给对方的评价。
    • 8‘)结对讨论过程描述和设计实现过程:讨论过程描述不笼统,提供结对讨论截图,未提供结对讨论截图该项扣2分。设计合理,实现过程描述不笼统;提供功能结构图,未提供功能结构图该项扣2分。

五、规则&格式

1、为了方便阅读以及助教评分,请大家在博客开头给出博文目录,作为内容的索引

请确认目录可以 正确跳转!

务必包含以下大标题,标题含义相近即可,你可以个性化你自己的标题:

  • git仓库链接和代码规范链接
  • PSP表格
  • 成品展示
  • 结对讨论过程描述
  • 设计实现过程
  • 代码说明
  • 心路历程和收获
  • 评价结对队友

2、 为了方便其他学校的老师或者助教了解课程实况,请大家在作业开头添加格式描述:

这个作业属于哪个课程<班级的链接>
这个作业要求在哪里<作业要求的链接>
结对学号<写上两个结对同学的学号>
这个作业的目标<写上具体方面>
其他参考文献...
  • markdown代码
|这个作业属于哪个课程|<班级的链接>|
|--    |--    |
|这个作业要求在哪里|<作业要求的链接>|
|结对学号|<写上两个结对同学的学号>|
|这个作业的目标|<写上具体方面>|
|其他参考文献|...    |

3、提交规则

  • 博客以班级作业页面的提交时间为准;需要提交的代码以gitcode的提交时间为准;
  • 在deadline前交,分数为实际得分 ;
    • 若帖子发布后在审核(帖子显示404),可以在deadline 之前先于作业页面提交链接,再等待审核通过
    • 不接受上传失败、网络原因等补交理由
  • 补交:在deadline 后两天内提交视为补交,分数为实际得分 * 50%;写了但是忘记提交作业和补交扣分一致
  • 缺交:在deadline 之后两天未补交视为博客缺交,分数为0分;
  • 作业抄袭:当助教发现两篇博客文字/图片/代码过于相似时,判定两篇博客都为抄袭,分数都为-100%(注意是倒扣!);
  • 伪造提交:虽然作业博客没有完成,但是先提交到作业占位置,判定为伪造提交,分数得0分;
  • 两人共用一份markdown,都需要发布博客,作为自己的记录。但是作业提交时只提交一份,这一份博客的评论需要两人共同维护,还需要在ddl之前在班级群内在线文档填写作为作业提交博客的链接
    注:提前提交的作业,如果能积极响应助教和老师的反馈并在deadline前做出相应修改,在后续评分时,这些修改完善也会被纳入考量。提早准备好处多~

4、注意事项

班级群如果发布相关通知也是作业要求一部分,请及时查看群通知; 若需要在群填写相关信息,未能在deadline之前完成填写的,扣实际得分的50% ; 如对作业存在疑问,请在deadline之前三天在班级群提出; 若助教对作业要求有修改,会在群内公告,请务必查看并按新的要求完善作业; 请及时回复老师或助教的点评并作出相应修改。即使提交了作业,也应该关注班级群中助教的公告!

5、疑惑解疑

若有对题意不清或者有不理解的地方,可在QQ群中直接提问


...全文
1304 回复 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
0人已提交
完成率0%
暂无数据
回复
切换为时间正序
请发表友善的回复…
发表回复
AJAX——新手快车道 前言 AJAX是什么? 首先、AJAX是一种很酷的技术,一旦采用了AJAX,就能让你的Web页面, 你的网站,甚至连同你们公司,都变得很酷。在Web2.0的时代里,不使用一点 AJAX技术的网站,就会显得很老土,很落伍。 但是,这样的理解,其实是很肤浅的。仅仅是从一个外行,从一个使用者的 角度出发,来理解AJAX,就像我在本书的第一章AJAX我也行中那样,开发 出很愚蠢,甚至都没有资格被称之为AJAX应用的纯IE、XMLHTTP应用。 AJAX更酷的一点在于,对于传统的Web开发人员来说,AJAX所运用的, 是更加先进的,更加标准化的,更加和谐高效的,完整的Web开发技术体系。 遵循这样的体系开发Web应用,能让你的开发过程变得更加轻松,也能使你们 的开发团队,显得很酷。在Web2.0 的时代里,还在采用过时的技术来开发 Web,会显得很老土,很落伍。 AJAX的相关组成技术,每一个都已经出现了N年以上了,对这些技术的 组合运用,也远远早于AJAX这个名词出现之前。所以,我真正敬佩的,并非提 出 AJAX这个缩写的Jesse James Garrett。而是那些早在N年以前,就已经在探索、 实践的先行者,他们始终在追求的:是更好的用户体验,以及更好的开发体验。 这样的精神,才是最可宝贵的,也是最值得我们学习的。许多年过去以后,当我 们再回头来看当年的这些热门技术,也许早已经变得老土,变得落伍了。在这样 的历程中,哪些人会成长为高手?会成长为大师呢?就是那些永不满足,永远 在追求更好的用户体验,永远在追求更好的开发体验的人! 新手如何上路 软件开发这个领域,永远都在飞速发展,大家都必须不断的学习新的知识、 技能、框架、IDE、甚至新的语言。传说中的骨灰级高手们,就像传说中的大侠, 任何武器、哪怕是一块木头到了他们手里,也能发挥惊人的威力,人家练了几十 年的看家本领,他们随手使来,也竟然像是打娘胎里就开始练了一样。为什么? 就算不吹那么玄的,平常我们能够碰到的那些老手,在学新东西的时候, 也比那些新手学得更快,理解得更深,运用得更熟练。而新手们呢?往往就会漫 无头绪,焦头烂额,以一副张着茫然的大眼睛的经典表情,出现在各大论坛的 新手求助区里。他们欠缺的,究竟是什么呢?为什么老手学新东西,就没遇到那 么多困难呢? 泛泛地说,自然是经验上的欠缺。仔细地说来,又可以分为三个方面: 一、本质,一种技术与另一种技术之间,往往会有本质上的相通之处,当你 对一种技术的理解与思考越来越深入时,学习一种新技术也会更加容易。触类旁 通,举一反三的能力,就是来自于对于技术本质的追寻。 二、地图,本质上或多或少的相通,也提示着我们技术之间的相互关联,当 你了解的技术越多,了解得越是深入,在你的内心,就能建立起越发清晰的技 术地图。各种知识都有一个自然、合理的位置。那么当一个老手要学习一门新技术 的时候,他其实并非在探索一个全新的、未知的领域,而是有很多脉络可寻,也 很多已知可以帮助他们快速了解未知。 三、技巧,面对同样的未知,面对同样的难题,新手们一筹莫展,而老手们 却掌握着更多的技巧和手段,帮助他们试探可能性、缩小问题的范围、迅速定位 问题、不犯明显愚蠢的错误、甚至能够列举出更具命中力的搜索关键词,而这些 技巧,都帮助老手在前进的道路上,更少跌倒,即使跌倒,也能更快的爬起来。 作为一本写给新手的入门书籍,我们希望展现给读者的,是一个老手如何 学习新技术的过程。我们相信,这样的一个学习过程,对于新手来说,是更具有 价值的。 何谓快车道 必须老老实实的承认,我吹牛了!老手虽然会比新手学习得更快一些,但 是也同样会碰到麻烦,遇到障碍,感觉头痛。如果没有真正的专家的指导,我不 可能如此迅速地将AJAX掌握到目前这样的程度,要真是让我自学三个月,然 后就写出书来的话,那真是在骗钱了。 老手能够快速学习的另一个重要的诀窍是:认识很多牛人朋友 如果没有李锟与赵泽欣的专家级指导与帮助,如果没有与李锟AJAX结对 编程的体验,如果没有三个人在MSN上无数次的长聊,我想要在短期内建立起: 对于AJAX本质的理解; 对于整个AJAX以及相关技术地图的理解; 对于AJAX编程开发所需要的很多技巧、手段的掌握; 几乎是不可能的。 如果没有(N多需要感谢的人)的(N多方面的帮助),我们这本书,也 不可能以现在这样的深度,以(N个月)内完成的速度,送到读者的面前。 希望这本书,能够对大家快速学习AJAX,有所帮助。

310

社区成员

发帖
与我相关
我的任务
社区描述
福州大学的软件工程实践-2023学年-W班
软件工程需求分析结对编程 高校 福建省·福州市
社区管理员
  • FZU_SE_teacherW
  • Pity·Monster
  • 助教张富源
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧