01组-2023软工K班现场编程任务

郑心玥102101509 2023-11-05 20:37:55

一、b站链接

b站链接在这里!走过路过求点赞~

二、整体架构思维导图

这张图是我们组基础、中等、进阶三个题目完成的内容,并附带主要的实现代码,具体如下:

img

三、任务分工与得分比例

成员姓名任务分配得分比例
郑心玥现场编程基础题目部分、各模块思维导图整合、博客撰写100%
郑龙辉现场编程中等题目部分、直播展示100%
郭子浩现场编程进阶题目部分、视频讲解录制100%
陈欣莹现场编程基础题目部分、直播展示100%
方蔚杭现场编程进阶题目部分、最后所有代码整合、进阶题目模块思维导图100%
吴鑫雄现场编程中等题目部分、中等题目模块思维导图100%
张佳雯现场编程基础题目部分、基础题目模块思维导图100%
刘炜祺现场编程中等题目部分、视频讲解录制100%
肖嘉鑫现场编程进阶题目部分、b站视频后期剪辑美化100%
林俊杰现场编程进阶题目部分、直播展示100%

四、心得体会

  • 郑心玥

    今天感受到了人生第一次这么大强度的实践课,发现原来一节实践课可以过的跟打战一样(考试都没有这么刺激,炸裂)。我负责的是基础题目部分,刚读题目感觉真不难,跳转一下点击“直播”按钮,进去即可。但是!从最开始autox.js一直握手失败,到识别“直播”字样无法点击到直播界面,再到收到消息点不开对话窗口,感觉每个环节我们都遇到了一定的困难。好在有队友的讨论帮助、不断查找解决方法,最终解决了这些困难。但是通过对比队友写的别的部分的代码,他们用的是针对组件进行点击,而我们是通过Axure确定坐标进行点击,针对不同手机适用性相对没那么高,也是需要改进的地方。也导致了最后出现三个小组负责三个题目,无法直接集成到一个一个手机上展示的问题(每个手机坐标、组件id等不同,代码都需要相应修改),好在有队友一起思考一起解决。
    总的来说,通过这次实验又一次发现了自己的不足,代码能力还是偏弱、在时间限制情况下容易紧张导致bug频出等等。也发现我滴队友们的都很好,“别慌别慌”、“没事没事”、“我来我来”等等的话我都记住啦,所有人齐心协力,还是能做成的!感谢所有队友对我的包容,是我没有事先考虑到不同手机各方面差异,组织分配还是存在问题,这波分数万一没达到预期排名我全责!最后自我批评一下:来之前就得连好autox.js,以为改一下ip很快的,不能想当然啊,还是要做足准备

    img

  • 郑龙辉

    在这次的现场编程中,我遇到了一些挑战,其中最大的问题是我的手机是iPhone,无法使用auto.js。这导致我只能与队友一起编程,这对我们的效率造成了一些影响。尽管如此,我还是成功地完成了我主要负责的模块,包括直播间自动点赞和静态动态评论的功能。
    在开始时,我对手机脚本编程感到有点无措,因为我之前没有太多经验。但在实现这些功能的过程中,我们遇到了一些奇怪的bug。幸运的是,我们通过使用ChatGPT以及进行百度搜索,成功解决了这些问题,这让我感到非常满足。这次经历让我学到了很多关于手机脚本编程的知识,也锻炼了我的问题解决能力。
    总的来说,尽管面临了一些困难,但我和我的队友一起克服了这些挑战,最终成功完成了任务。这次经历让我更加熟练地掌握了手机脚本编程的技能,也让我明白了团队合作的重要性。我对这次的学习和成长感到非常满意

  • 肖嘉鑫

    在本次实验过程中,我负责与队友实现该项目的进阶题目,尽管是第一次接触auto.js,但在队友的帮助带领和互助下,结合一定的JavaScript开发能力,我还是很快上手了这款开发软件,体验到了利用其实现抖音一些自动化功能的乐趣,这节课进一步增强了我对于软件开发的兴趣,同时也给我留下了深刻的印象。以下是我的心得体会:
    在程序编写之初,我通过和队友交流、网站自学初步了解了auto.js的使用方法,然后在CSDN上学习到了一些开发技巧,并借助ChatGPT尝试了一些功能的实现,针对具体的问题和应用场景,我对程序进行了修改和完善,但在这个过程中遇到了许多棘手的事情,比如由于我手机的原因,在更新后,其“纯净模式“进一步强化,导致我在手机上运行auto.js时进程经常被中断,这就导致开发的过程十分不流畅。但好在队友已经顺利地将功能框架搭好了,我便将重心转到配合队友进行功能的完善和BUG的修复。
    对于我们整组来说,搭建出功能框架并不是一件困难的事情,我们团队在较短的时间内就完成了大部分功能的框架搭建,做到了对功能的全面铺开,接下来的时间我们都利用在完善功能和修复BUG上,而我在后期主要参与的是评论功能的两项开发,分别是动态评论和静态评论。首先我们发现了评论框中发送键位置的确定存在问题,即程序找不到发送键的具体位置而导致评论发送失败,在经过摸索后,我们找到了该功能模块的相关信息,并决定利用其id作为识别判断的依据,因此,我们顺利实现了静态评论的基本功能。然后,我们进一步完善这项功能,即自动发送若干条不同内容的评论,基于前期积累的开发经验,这个功能也很快被实现了。
    接下来棘手的是动态评论功能的实现,虽然其基本开发思想并不复杂,即设置一个悬浮按钮以中断当前自动评论的进程,然后在中断后弹出一个文本输入框,输入当前想要发送的内容,再结合静态评论的功能去实现新增评论的自动发送,但我们分别在“设置悬浮按钮“、”获取文本框中的输入内容“、”点击发送按钮“这几个模块里遇到了困难,主要体现为”手机死机“、”不同机子实现情况存在差异“、”悬浮框出现时间过短或未响应“、”不能获取文本框输入内容“、”发送失败“等,在队员厘清代码逻辑,重新整理思绪并灵活结合DeBug能力,终于找到问题所在,突破瓶颈,最终解决了困难。
    由于我们采用分组开发的方式,虽然能够在广度上铺开对功能的实现,但在前期没有沟通好程序整合的接口问题,导致后期整合功能时十分窘迫,将功能移植到其他手机上时经常出现复现障碍,有些功能甚至需要重新考虑其功能架构,者在很大程度上拖延了项目的整体进程,并且施予了负责该功能的同学很大的修改压力,可见我们的开发流程和项目实现细节存在较大的改进空间,但由于团队正式合作的次数并不多,而且在一些机子使用不了、时间紧迫的情况下,在广度和深度上都完成了任务的要求,我认为我们的团队依然十分优秀,很荣幸作为其中一员参与项目的开发,我在其中收获了无尽的快乐和极佳的体验,同时也学习到了很多宝贵的开发经验。

  • 刘炜祺

    在这次团体现场编程中,我负责的是直播间静态评论模块和答辩的环节,一开始入手这个静态评论模块的时候,我还觉得这个挺简单的,因为我不用设计自动打开直播间页面的功能(这个部分由其他队友完成),直接在已经打开的直播间页面中点击评论,输入内容,点击发送就行了。当然这都是我天真的幻想,在我不断的尝试下,我逐渐完成了我预想中的功能代码,但是问题也随之而来。因为我使用的是组件id打开组件的功能,可是每个手机的组件id都可能不一样,这时候就会无法成功执行我的代码操作,于是乎我就开始研究能不能不通过组件id来实现功能。在我的不断研究和队友的指导下,我选择使用组件名字来实现功能,但是有的时候组件会没办法成功响应,这又是一个很大的问题,但是在队友的帮助下,问题也很快解决了。在随后的答辩中,我也是把我们小组所呈现的东西一一展示和介绍给大家,大家的反馈也都不错。
    经过这次现场编程,我觉得我们小组最大的收获就是凝聚力和执行力都有了很大的提高,非常感谢老师和评测组能够给我这样一个挑战自我、战胜自我的机会,非常期待下次的现场编程任务!!!

  • 郭子浩

    这次实验是我第一次用auto.js去操控手机上的应用,之后在具体操作的时候出现了许多问题,如不同手机id不一样,不同手机型号不同导致坐标不一样,有的组件没有desc等等等等一系列问题.....最终通过不断查找解决方案,终于克服了一系列困难,和队员们完成了这次实验的全部内容。最大的收获就在于和大家一起解决一个小项目的时候的分工协作,互相配合。并且经过这次实践课后,也可以用这些经验开始逐步学习写一下小脚本操控手机,从而实现一些功能。

  • 方蔚杭

    在这次团体编程中,我负责的是进阶题滑动的实现和最后代码的整合,一开始入手屏幕滑动其实没有什么太大的难度,因为文档上面已经写得很清楚了,但是在当我实操的时候发现不知道为什么就是划不动,试了好多次还是不行,最后直接上github上copy了一份,才顺利解决,后面观察他的代码和我的代码的区别,我发现应该是我坐标定的有问题,划得不够远自然就无法划到下一个视频去,还有最后代码的整合,因为我们小组不同的三道题分别又三组人去完成,代码的可复用性是相当差的,很难去整合到一块,后面我把每一组的代码都封装到各自的函数中,还有最后一步,就是应当用什么样的形式去展示我们的功能,后面我思考了一下,在最开始的时候设置两个选项:1.进入直播间 2.自动刷视频 两种模式,在进入直播间后又可以进行四种选项的选择:1.静态发送评论 2.动态发送评论 3.点赞 4.退出。在这个部分中,我用线程去分别执行这三个功能模块,我以为这样就结束了,但是结果并没有如我所料,经过漫长的debug,我发现我的代码中存在一个异步方法,就是不等待我输入程序就会自动向下运行,发现这个超级大坑之后一切终于变得简单起来,又经过一系列的操作之后程序终于跑了起来!(太难了....)

  • 吴鑫雄

    这次现场编程难度说大又不大,大部分时间浪费在了手机上...因为Autox.js.v6在每个手机上所识别出来的控件都不一样,导致一些语句在这个手机上能执行成功,但在另一个手机上就不能成功,所以最开始去找这个问题的原因花了很多时间,这也就导致后面非常的慌忙...
    我们小组分配到的任务是去实现直播间内的点赞和评论功能,在刚开始拿到这个任务的时候,我还觉得,诶,这不是很简单嘛?点赞功能不就循环click屏幕中央就好了;评论功能不就点击desc为“说点什么”的组件,然后setText一下设置评论内容,最后再点击desc为“发送”的组件,这不就完成了?但是啊但是,做起来完全和我想的不一样。
    点赞功能:刚开始我不知道有device.height和device.width这两个语句,我就手动查找我手机的屏幕大小然后按比例去得到屏幕中央位置,这就导致了这个代码不具备通用性,之后发现了那两个语句就将代码进行了优化。
    评论功能:这部分真的是和我想的有很大区别,因为评测组要求实现静态和动态,静态评论倒还好办,搜集大量积极阳光的语句存到comment数组里,然后将评论内容换成comment[parseInt(random()*n,10)]就ok了,but这个时候最开始说的控件问题就出现了,我的手机没办法识别出desc为“说点什么”的控件,然后就一直点击不到......很无语,然后我换了几种方式(控件id,控件坐标,控件类名等等)尝试去点击,但还是不行...然后就换了一部手机,之后就成功了,emmmmm我人傻了。做完这个功能的时候时间已经没剩多少了。但此时还有一个动态评论功能还没实现(崩溃了),我们一个队员通过询问gpt,得到了一个实现这个方法的雏形:将发送评论放在进程里进行,并且设置一个按钮,点击按钮“设置评论”时,停止发送评论进程并且调用设置评论函数,设置完成后再点击“确定按钮”,开始发送评论进程。这个方法大体思路上是没问题的,但是你懂的,gpt写的代码肯定不能直接符合我们的需求,所以我就在gpt给的代码基础上慢慢理解学习修改(当然,在当时那么高压的情况下怎么可能慢慢啊!属于是头脑风暴了),最后也是成功运行起来了,然后评论内容又出问题了,不能和我们设置的评论内容一样,检查了下代码原来是设置评论函数有问题,经过修改之后终于解决了。
    最后也算是成功实现了我们小组所分配的任务。虽然遇到了很多问题,但是也在团队的努力下逐步解决了。不仅仅学到了很多知识,而且团队间的协作也有非常大的提升。(我的抗压能力也提高喽嘿嘿,不得不说这次现场编程属实有点汗流浃背~)

  • 张佳雯

    我被分配到的任务是基础题目。虽然看似简单,但是经过了超级多波折。从这次的现场实践经验来看,chatgpt有时候也真是不那么靠谱我只能说。从头开始说起。首先我们要进行的就是实现跳转抖音的功能,然后我首先是看了我们作业博客下的这个天猫双十一的链接,理解了一下发现它的大致意思就是说识别页面中的文本字眼,然后点击按钮。于是我美滋滋的开始copy,但是显然不能那么美滋滋。因为真的要运行代码的时候发现,根本就不能用,连跳转页面都做不到。(开始b溃)

    img


    于是我又去看了看我们团队找到的博客,这次终于是可以直接跳转到抖音界面了,但是原先从作业博客下看到的方案根本就无法使用(也就是识别页面中的文本字眼,然后点击按钮),准确的来说这个方案没什么问题但是代码起不了作用。但是时间紧迫,于是我们决定求助chatgpt和上csdn找办法。chatgpt给我们的解决方案非常长,但是仍然不行。csdn上面有一万种解决方案,但是试了也都不行。此时已经三点钟了,我是心急如焚,要是这么基础的都没做出来不就娃蛋了。然后就开始狂试chatgpt的代码,但是并没有什么用。我们又尝试了实现页面左滑进入直播间,但是也失败了。但是一切的契机就在这时候出现了,突然手机屏幕开始不受控制地乱点,于是我仔细去看了代码发现是click坐标的作用。于是我的脑袋瓜子萌生出一个大胆的想法,如果将页面截图导入进Axure是不是就可以获得确切的坐标实现跳转了?获取坐标的问题也是我们一开始查看资料时碰到的问题。于是撸起袖子直接开始干,中间的一系列操作就不说了,但是最后就是成功了,激动死我。(狂喜中)然后接下来的事情就莫名开始顺利了起来。此时开始更新基础题目的第二个人任务。识别弹窗跳转回复,我们的方案大概是这样,等待弹窗出现识别,识别的是弹窗中的“回复”字眼,然后点击按钮跳转。然后就是彻底成功,就是非常开心。虽然我们实现的功能是非常简单,但是也是一波三折,另辟蹊径了。但是邓小平同志说过“不管黑猫白猫,能抓到老鼠的就是好猫!”我想我也算是一只好猫吧。

    img

  • 陈欣莹

    软件工程课程的现场编程是一项非常有挑战性和富有启发性的任务。本周的现场编程环节要求我们实现抖音的自动化脚本,抖音App的使用我并不陌生,但是在此基础之上开发一个自动化的脚本仍然对我而言是新鲜的体验,尤其是开发语言还是js。这一门语言作为前端的基石,想必每个人都不陌生,但是本次实验采用的autojs平台并不支持完全的es6规范,部分支持的es6开发无疑对于我个人是个极大挑战,意味着我不仅要了解js语法本身,更要理解es5和es6异同,本次实验极好地帮助我熟悉了es5和es6的规范,使得我更好地对JavaScript这门语言有了更加深刻的了解。
    此外,本次现场编程是在安卓系统上开发,安卓是基于java开发的,autojs也提供了一些可以调用java的api,无疑是一次很新奇的体验。在本次编程过程中还发现了autojs里面有一些很有意思的api,能够以阻塞的方式获得返回值,但是该函数却无法阻塞本进程,我很好奇auto.js的源码是如何实现的,也正是这一点特性,使得开发过程中的难度飙升,再加上仅支持then格式的promise而不支持async修饰符的promise,真是很令人抓狂!
    总结一下本次现场编程的收获,熟悉了js的es5语法(非常不容易,在ie退出市场后es5几乎销声匿迹,真是一次难得的机会),了解了手机脚本开发免root的方式,对于多进程有了更加深刻的认识,感谢评测组为我们大家提供了一次良好的编程体验,长见识了呢!

  • 林俊杰

    这次现场编程学习使用了autox.js的部分API,过程还是相当痛苦的,感觉接触JavaScript会使人变得不幸。原本在结对编程的时候还吐槽微信的文档写的不好学来着,看了这个的文档才发现是我错怪微信了。整个现场编程基本都在de玄学bug,猜接口使用方法。最后虽然实现了相关功能,但是也脱离了大部队的节奏,摸大鱼了。团队任务还是要以跟上节奏为重。

五、来点不一样的

第一部分:

由于实践课原因,导致柯老板错过爱徒婚礼,在此用四字祝福汇聚成“新婚快乐”字样,衷心祝愿黄新恩学姐:百年好合、白头偕老、幸福美满!

img

第二部分:

我用我们团队所有人的名字,做了一个词云图,一起拼出加油的手势,展示在下面哦~

img

“一群人,一件事,一条心,一起拼!”“更好的团队在一起是乘法,不仅能展示彼此,还能相互激发。”作为队长很荣幸能和这样一群都想拼想搏的人成为队友,我有做的不好的地方也都能包容我的过失。我们是一起向前冲的人,更是彼此破风的刃。
愿团队每一个人:心有繁星,沐光而行;披荆斩棘,向阳而生!

...全文
326 1 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
herry_drj 2023-11-06
  • 打赏
  • 举报
回复

不愧是你们啊

119

社区成员

发帖
与我相关
我的任务
社区描述
2023福州大学软件工程K班
软件工程 高校 福建省·福州市
社区管理员
  • kevinkex
  • Devil angel
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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