柳暗花明又一村-前端开发牛翰社区-编程开发-牛翰网

柳暗花明又一村

柳暗花明又一村

这个作业属于哪个课程 https://edu.cnblogs.com/campus/fzu/SE2024
这个作业要求在哪里 https://edu.cnblogs.com/campus/fzu/SE2024/homework/13315
这个作业的目标 回顾这一学期所完成的软工任务,总结这一学期的收获
学号 102202116 李迦勒
引言:

山重水复疑无路,柳暗花明又一村。大三上学期也随之悄然落幕。回首这几个月的软工实践课程,真是五味杂陈,既有欢笑与成就,也有无数次想要摔键盘的瞬间。这篇总结,带你走进一个普通学生的软工实践,看看那些令人又爱又恨的日子吧!

一、学期回顾

1.1 回顾课程想象

在没上这门课之前,我单纯的以为这就是一门从属计算机专业的基础课程,上了以后我才发现跟我所想完全不同。看到过一句话,“软件工程是计算机专业里考研的‘政治’。”直到临近课程的尾声,我才发现这句话也不是完全正确。因为我怎么都想不到这门课的实践课–仅1学分的课程,它的任务量会这么大。以前像这种1学分的实践课,说实话都是不管怎样水水就过去了,然而这次的课程确实给了我难忘的经历。

本来以为只是写一些小程序,直到第一次实战编程瓦了个瓦我还是这样认为的,再到后面的结对作业我才
慢慢明白绝对不是想象中的那么简单。本来的目标只是想着去了解一个小程序或者网页的实体结构,并没
想着能够完整写出来,但随着现在AI技术如ChatGPT的发展,确实给我提供了很多便利,让我能够按时完成任务,当然写出的小程序在有些地方还是不够完善,有的是页面美化老是做不好参考各大厂的app还是觉得没他们做的
好看,然后就是实际应用还是有的地方会时常卡顿或者有的地方莫名其妙的出现一些bug,让我无从下手,
没法去解决。

*达到期待和目标:*

1.技术的了解与掌握:通过这门课程,我不仅学习了软件工程的理论知识,还通过实践课深入理解了软件开发的流程和工具。我掌握了需求分析、设计模式、版本控制等关键技术,这些都是软件开发中不可或缺的技能。(之前从未接触过软件开发的我,学会了用html、css和JavaScript前端三件套制作一个前端页面,后端如何去搭建数据库等)
2.团队合作的机会:在团队项目中,我有机会与同学们合作,共同完成一个软件项目。这让我学会了如何在团队中发挥自己的作用,如何与他人沟通和协调,以及如何在团队中解决冲突。
3.合理的沟通及解决问题的能力: 在课程中,我学会了如何有效地沟通我的想法和解决方案。面对项目中遇到的问题,我能够运用所学的知识,合理地分析问题并提出解决方案。

*存在不足的方面及原因:*

时间管理: 在课程项目中,我发现自己在时间管理上有所欠缺。(前期自己一个人的工作还好,到了结对和团队合作时就体现出来了)由于对项目的时间估计不足,导致在项目后期感到压力巨大,影响了项目的质量和我的学习效率。
深入理解: 虽然掌握了软件工程的基础知识,但在某些高级主题上,如软件架构和性能优化,我感觉自己的理解还不够深入。这可能是因为课程内容广泛,而我个人在这些领域的实践经验不足。(毕竟之前完完全全没有任何经验,就是一个纯粹的小白)
创新思维: 在团队项目中,我发现自己在创新和提出新想法方面有所不足。这可能是因为我过于依赖现有的解决方案,而没有充分地发挥创造性思维。(对于AI的依赖很高)
技术应用: 尽管我学习了多种技术,但在实际应用中,我发现自己在将理论知识转化为实践技能方面还有待提高。这可能是因为缺乏足够的实践机会,以及在应用新技术时的自信心不足。

1.2 回顾投入与产出

自己在整个编程中写的代码应该有一万行左右,每次看到一个比如wxss文件有100行要一点点修改总觉得心里
一直有点堵塞,这样的css不知道改了多少,js,wxml更是来回修改。
在团队项目中主要是负责前端的代码书写并且对前后端的对接做了一定的贡献

作业类型 花费时间(小时)
第一次个人作业 6
第二次个人作业 20
第一次结对作业 30
第二次结对作业 40
第一次团队作业 10
第二次团队作业 40
现场编程作业 5
团队作业beta冲刺 32
累计时间 174
实际周均时间 约20
预计周均时间 10

1.3 印象深刻的作业或答辩

印象最深的作业肯定是结对作业的代码具体实践,当时赶着假期但由于各种原因并未合理利用假期时间,在后面才
慢慢完善,也没想到这次作业对刚开始这门课的我们这么难,不管是与数据库的实时联动,账号密码的存储,发布
帖子的存储,抑或是好友聊天记录的存储,都给当时的我们带来了很多的困难,我也觉得正是这个作业让我们收获
了很多的东西,这也是第一次做小程序,让我明白了如何编写页面逻辑,如果进一步美化,如何与数据库联系到一起(虽然是在微信开发者平台上)。也是第一次切切实实的感受到了结对的好处,俩人可以相互监督错误,可以相互督促,相互鼓励,共同成长。

二、总结收获

2.1 软工实践故事

2.1.1 对AIGC熟悉和博客园以及GitHub使用

这是第一次的作业,刚开始对博客园以及github是有了解的,关于AI之前也只是用来帮我完成一些小的任务,通过AIGC技术的使用让我更多认识了AI的众多可能,这次作业也使我意识到了AI技术是真的可以改变生活的,不管是后来用chatgpt来辅助我写代码,还是后面的复习,都或多或少用到了AI,也是由此明白了在AI的帮助下我才可以在相同的时间去做更多的事情,他大多数能给我一件事情的大概的框架,至于框架细节就可以靠我自己来去完成,无疑为我节省了很多的时间,也给我的生活带来了很多的不同。

自己的logo:

2.1.2 个人编程“瓦了个瓦”——梦的开始

个人编程是我真正第一次去做一个小程序或者网页版的app,当时是要做一个类似于羊了个羊的小游戏,当时沉迷于瓦罗兰特valorant所以就起名为瓦了个瓦,并且呢用了瓦里面的角色大头像做了消除元素,游戏地图作为背景。
经验总结:刚开始做真的什么都不知道,通过利用AIGC让我慢慢摸索到了在课堂上学不到的东西,也是真真正正的第一次好好的利用chatgpt,感受了这些AI的强大之处,让我受益匪浅,也让我明白了在代码编程中利用AI是一件多么美妙的事情,它可以瞬间帮我扭转局势,当然了也不排除有的时候是人工智障,越改越错,但总的来说真的给我提供了很大的帮助。
实例分析:
做一个看似很简单的消消乐游戏,却让我刚开始在逻辑层面找不到正确的方向,从图片叠到一起,到图片分开叠放但点击范围出现问题到后面完全解决这个问题花费了好多的时间,让我真正体会到了做程序的困难,已经最后成功debug后的快乐。

2.1.3 结对作业——初见端倪

就是在本次作业中,我首次接触到了墨刀这个原型工具。纠结于页面的布局和美感花费了我不少时间,一直都是改了又删和删了又改的状态,也因此总让队友—-我亲爱的“儿子”觉得我没有做出任何优化。但好在我和队友配合默契,合力之下还是把原型搞了出来。
从第一次写一个游戏恰好在中秋,就发现老师似乎喜欢把大的任务留在假期完成。如果第一次是巧合,那么国庆的结对作业就是直接在课上坦白了,“假期怕你们太闲,给你们找点事做”。这句话铸就了大学生涯有史以来最痛苦的一次国庆。在美好的假期生活中,要把第一次结对中设计好的原型实现,如同晴天霹雳般把我们雷得外焦里嫩。我们慌不择路地讨论着要怎么实现,要用什么工具,最后决定用“微信开发者工具”,又是第一次接触到的工具。在我们拼命地赶赶赶的努力下,勉强实现了原型。(这是第一次如噩梦般的经历)

“有效沟通”

图片[1]-柳暗花明又一村-前端开发牛翰社区-编程开发-牛翰网
图片[2]-柳暗花明又一村-前端开发牛翰社区-编程开发-牛翰网

《最后做出来的》
1.登陆注册功能

2.项目查找与项目信息

3.创建项目

4.好友与聊天功能

5.个人主页设置

2.1.4 团队作业——开始的最终章

10个人的团队,从未有过的经历。当时就在想10个小白的团队,全是从头开始,这是什么难度。人数越多,意味着任务量就越大,但是效率和人力就越高吗?显然不是的。在大家都是第一次的情况下,困难前所未有的重大。团队之间有意见不合,有冲突,有沟通不起来,这都是需要慢慢磨合的。人确实是有经历后才会有成长。当然成长中的大头还得是AI。第一次的10人团队经历确实让我受益匪浅。在团队作业我负责前端模块以及前后端的连接,制作了我们网页中的一部分页面。
图片[3]-柳暗花明又一村-前端开发牛翰社区-编程开发-牛翰网

2.1.5 现场编程——意外的修罗场

意外的现场编程,我们小组大家一开始都慌乱了阵脚,好在我们组长林伟宏快速统筹大家选定方案和方法,大家迅速分好工开启了现场编程。一开始我因为对安排理解不到位与大家有些脱节,以至于在实现主要功能时我还停留在前面的功能设计上,好在后来有组员及时提醒,跟上节奏顺利完成相应工作。

图片[4]-柳暗花明又一村-前端开发牛翰社区-编程开发-牛翰网

2.2 介绍学习到的新技术或生产力工具以及它们给你带来了哪方面的帮助?

在这门课程中,我学习并使用了一些新技术和工具,特别是在 Lightly 平台的使用上,这些技术让我在开发过程中事半功倍:

  1. Lightly:

    用途:这是一个高效的开发平台,帮助我们在前端和后端快速开发应用。它提供了丰富的可视化界面,减少了手动编写复杂代码的需求。

    帮助:通过使用 Lightly,我们可以快速构建和调试应用,尤其是在没有使用传统前端框架(如Vue.js)的情况下,Lightly的拖拽式界面和集成的开发工具使得项目开发变得更加简便高效。

  2. Git/GitHub:

    用途:版本控制和团队协作工具。

    帮助:Git/GitHub的使用帮助我们管理代码的不同版本,确保每个成员的开发进度同步,并通过Pull Request进行代码审查,有效避免了代码冲突。

  3. 墨刀原型:

    用途:原型设计和任务管理工具。

    帮助墨刀原型是我们团队进行产品设计和用户体验测试的重要工具。通过它,我们能够迅速制作和分享交互式原型,让团队成员更好地理解项目需求,并提前预演产品功能和界面。它也帮助我们在设计阶段就发现潜在的用户体验问题,从而减少开发阶段的修改成本。

4.ChatGPT:

用途:∞

永远的大爹

2.3 技术之外,这门课程还给你带来了哪些方面的提升?

这门课程不仅让我在技术层面有了显著提升,还在其他几个方面带来了很大的收获:

  1. 团队协作能力:

    在团队项目中,我学到了如何与团队成员高效沟通与合作。尤其是在遇到分歧时,如何通过讨论达成一致,最终推动项目进展。

  2. 时间管理与任务规划:

    使用 墨刀原型 等工具,帮助我学会了如何进行时间管理,合理规划任务的优先级,确保在有限的时间内高效完成工作。

  3. 自我解决问题的能力:

    在开发过程中,我们经常会遇到技术上的难题。通过不断查阅资料、讨论以及尝试不同的解决方案,我的解决问题的能力得到了极大的提升。

  4. 代码质量与维护意识:

    我深刻体会到代码质量的重要性。在项目中,我们不仅关注功能的实现,还注重代码的清晰度和可维护性,这对未来的项目迭代和扩展至关重要。

2.4 如果还有什么想记录的或者想说的,就写在这儿吧!

通过这门课程的学习和实践,我对软件工程的整体流程有了更加全面的了解。从技术角度来说,学到了好多在课上没见过的(或者听过但没有实操过的)工具和网页制作方法;从团队协作角度来说,通过结对编程和团队开发,我不仅提高了自己的编码能力,还培养了如何在团队中发挥作用的能力。

最有趣的部分是我们在开发“剑来文字修仙游戏”时,遇到的一个bug导致了整个游戏数据不一致,经过几轮讨论和调试,最终我们找到了问题的根源并成功解决,这让我体会到了团队合作的力量。

给学弟学妹的鼓励:
这门课很累,但真的收获超级的大,第一次让我感到做一个程序员牛马的感觉,也让我体验到了debug的痛苦以及debug后成功的快感,对这门课可以说又爱又恨吧,恨作业真的是太多了工作量真的太大了,爱真的是这么多的工作量课程量让我学到了超级超级多的东西,也很感谢两位老师的指导哈哈哈哈真的是很好的老师,希望学弟学妹们少抱怨多干事。

未来专业道路的影响:
让我提前感受到了程序员牛马的生活,一眼看到头,只是工作的机器罢了,不过从中也是能收获些许成就的欢愉。

三、致谢

我想感谢所有在这个过程中帮助过我的老师、同学和朋友们。

首先,感谢我们的任课老师和助教。老师们不仅讲解清晰,而且特别耐心,总是在我们遇到技术难题时,提供及时的帮助。每次看到老师耐心的解答,我都觉得自己像是找到了方向盘,避免了“迷航”。如果没有老师的悉心指导,真不敢想象我们会陷入多少“bug”的泥潭。

其次,感谢子聪儿子在跟我结伴编程中做出了很多有用的监督,比如代码的黏贴错误,代码的改错以及debug方面做出的贡献,虽然我有点懒驴上磨,但在你的催促下,我还是很完整的完善了工作。

再者,特别感谢我的团队小伙伴们。我们是一个默契的团队,大家分工明确,各司其职,一起头脑风暴,一起攻克难题。从最初的想法碰撞到最后的代码调试,团队的合作让整个项目不仅顺利进行,还让过程充满了乐趣。每个人的努力和智慧都让项目变得更加完美,真的很幸运能和你们一起工作!

最后,感谢真正的大爹——ChatGPT,当然kimi老师和豆包老师的功绩也不可抹去,没有你们,我简直象一个无头苍蝇找不到北,再次致谢!

来源链接:https://www.cnblogs.com/Mr0due/p/18641076

请登录后发表评论

    没有回复内容