qwb0614

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理
  187 随笔 :: 0 文章 :: 0 评论 :: 2048 阅读

经过了一个学期对于软件工程的学习,我们经历了个人编程、结对编程再到团队编程这个过程,我觉得“规范化团队合作”是整个课程给我印象最为深刻的关键词。在开始这门课程之前,我以为团队合作就是分工明确之后,各自完成任务,在自己的工作空间内完成代码的编写与调试,当各个模块的任务准确完成后,大家把工作合成一起就是整个团队合作的过程,在学习完这门课程之后,我发现先之前法是极度片面的,那并不是真正意义上的团队合作,那仅仅是工作量的平均分单。然而通过了一个学期关于软件工程的学习,我发现工程的团队合作并不是随意的工作量叠加,而是有科学性的方法和理论可循的。从课程初期开始,教授就在向我们强调设计的重要性,在作业中,我也切身的体会到了设计的意义。从最开始的个人项目,只是简单的算法设计,到后期团队项目的整体设计,虽然总是告诉自己设计很重要,其对整个工程的影响程度远大于其之后的代码实现部分,但是在代码实现的时候总是后悔自己当初为什么不能设计的更周密一些,感觉在之后真正代码实现的过程就是在一个个的填补自己之前设计不周到给自己埋下的坑。所幸自己在学习过程中感觉有所自觉,设计阶段所用的时间占整体工程所用的时间的比例逐渐增长,因为我发现,磨刀不误砍柴工,设计阶段想到的每一个可能现、可以规避的问题,最终都会十分现实的体现在代码完成的顺利程度上,想到的问题少,容易出现的突发错误就会很多,导致实现过程本应该是按照草图搭建框架再到逐步填充细化的过程,不自觉的就变成了发现问题,紧急打一个补丁,在发现新问题,紧急打一个新补丁这样的恶性循环了,最终往往容易和之前自己预计的设计相差甚远,改着改着就连原来的样子都完全没有了,完全失去了设计的意义。而如果能将设计想得尽可能完善一些,就想给未来的自己写了一份预知未来的说明书,代码完成阶段只要根据指导一步一步的完成,就会很有步骤感,而且能够更准确的预测各个部分完成所需的大致时间,这样的话对于工程进度的把握更加清晰,计划感更加明确。当然在设计阶段必定不能预知所有可能遇到的问题,这是在所难免的,当遇到没有考虑到的问题时,只要不是绝对致命的,总能想一些办法解决的。整体的进度管理是一项十分有意义但极具难度的事情。在开始团队项目前,我以为进度管理只要把每个人的任务都划分清楚了,然后到了deadline去找每个人要工作成果就ok了。其实不然,进度管理需要在一开始就遇见整个工程中几乎所有的工作量,然后根据每个队员的能力、工作时间、工作间的前置后置条件等等因素,将所有工作量有序的分配下去,预计各个模块所需的时间,还要为突发情况打出额外的时间富余。在我们的团队项目中,就会出现明明计划好的工作,突然发现由于各种原因导致的突发冲突,而要解决这些问题,可能需要额外的、不确定长的时间,可能是一个小问题,只要自己搜搜资料,私下解决一下就好,也可能是影响整体的一个问题,突然就需要做出很大的修改,而这对于整个项目的进度上的影响就很难估计了,这时候,如果之前打出了充裕的应急时间,可能解决问题的可能性就更大,对整个项目的影响程度就能尽可能缩小。项目经理是一件十分艰巨的工作,不仅需要充足的耐心还需要极强的责任感,感谢我们团队项目经理为整个项目的付出。说明文档与注释。说明文档和注释之前一直不是特别注意,觉得反正代码是自己写的,过一段时间终归是能想起来的吧,忘了的话好好想想也是能想起来个大概,说明文档也是在上学期面向对象课上,老师的要求下为了完成作业写过几次,平时很少想到要写说明文档这件事。在本学期的团队项目中,我切身的感受到了说明文档和注释的重要性,一开始拿到的项目没有说明文档,整个团队在了解上一届工作上就出现了很多困难, 首先是需要自己去探索整个工程的整体结构,除了一点一点看代码就只能猜,可是在看代码的时候也遇到了相似的问题,不明白每一段代码的功能和作用,所以就只能通过调试功能一行一行的看程序运行到哪一步,有了什么效果,再根据变量名大概猜测每一个变量的意义,这个过程是十分痛苦的,所以我们决定为了能让之后的我们和下一届学生能够更好的了解我们的工作,我们将每个模块用到的函数都写了说明规格和辅助信息,希望能在之后的理解上提供尽量多的帮助。

     git和博客。这两个之前真的是很少用,通过学习这门课,感觉稍微开始接触这两个东西了,首先是git,之前几乎所有老师都说过,git是个好东西,他能帮你版本控制,当你手残了以后就靠它来救你,以后你们终归要用它的。相似的夸了很多,但是平时很少想到要用他,大作业的团队合作也是两个人写好了各自的代码,找个时间抽空合一下,然后删删改改,把代码合在一起,就成了整个项目。但是这次在团队合作中发现,没有git真的很不方便,组员不可能每个人每天都抽出时间聚在一起,把今天完成的工作量合在一起,而且经常会有不小心改错个东西,满篇找到底自己哪里手残了这种情况,使用了git之后除了可以解决上面说的那些问题,还可以很清楚的看到整体工作是那些,自己完成了那些,还有哪些未完成,这样就很清楚的规划自己之后的工作安排,每完成一项,就去关闭一个issue,看着项目一点一点完成还是挺有成就感的。其次是博客,之前真的是没有写博客的习惯,因为平时在网上搜到的看到的几乎都是大佬们的文章,看起来高端大气,自己每天研究个啥那点小破事就往上写感觉不是特别好意思,而且基于之前的学习,感觉只要我把代码完成了,报告随便写一点就可以了,所以在文字报告上感觉自己特别薄弱。这学期上完课发现,其实每个人的博客就是记录每个人努力的过程,可能一开始写出来的东西确实没什么技术含量,而且读起来也挺枯燥的,但是可以慢慢来嘛,每次写一点自己的心得体会,一点一点学习其他人写的很好的博客,从中学习博客排版、文字叙述、语言风格的技巧,我觉得只要慢慢努力终究是能写出来好看一些的博客的。我的博客现在写的还存在很多问题,排版特别难看,这点我是有自觉的,还在学习中,其次是表现的不够丰富,有时候想说的话不知道怎么表达出来,文字和代码的穿插关系把握的还不够清楚,我继续努力。

      总之,通过一学期的软件工程课程,感觉自己学到的东西远比想象中的要多,原本以为只是大家一起码代码的课,后来发现学到的东西远比编程要实用得多,我将继续把学到的知识用在之后的学习工作中。

posted on   嘎嘎鸭1  阅读(10)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!
点击右上角即可分享
微信分享提示