• 个人作业收官——软件工程实践总结


    个人作业收官——软件工程实践总结


    一、课程回望

    1.对比现在的你和开学初博客开篇的课程目标和期待。

    目标回顾

    • 找到自己喜欢的方向(纯小白一只),学到真正适合自己的技术,与他人合作的过程中不拖后腿。
    • 合理的安排时间(重度拖延症患者),希望能够改掉这个坏毛病,能够平衡大三这么多门课之间花费的时间。
    • 学会和他人合作,只有大家一起成功才是真的成功。
    • 自己可以编写一些小小的软件

    期望回顾

    • 希望我们的项目可以有条不紊的进行,而不是一直拖到最后开始熬夜赶工,慢工才能出细活。在项目的编写过程中,自己可以为整个团队注入一股洪荒之力。
    • 学会修改bug,最头疼bug这个大恶魔了,消灭他,才能前进。
    • 开扩自己的思维,学习别人的思考方式,学会团队合作。

    我与目标的距离

    • 没有达成做app的小目标(我们组做的是服务端的web)
    • 之前就有稍微学习过html的内容,这次我还是负责的是前端的部分,不过与之前相比,懂得了更多,现在算是会了一丢丢的js,还知道如何和后台编码人员共同合作。
    • 关于时间拖延症问题,实际上还是有的,但是没有拖团队的进度,感觉自己棒棒哒。

    期望值,我做到了吗?

    • 在我们的PM的合理安排下,我们的项目一直都在前进,没有出现直到最后一刻才开始赶工,我也按照PM的安排,有条不紊的进行着编程
    • 在实践的过程中遇到了,各种各样的bug,查找原因,有很大的一部分都是对知识的不熟悉,掌握的不全面,但是在队友的帮助下,更牢固的掌握了知识,正在逐渐的能够自己修复一些bug
    • 团队合作,不得不说,我加入了一个完美的团队,大家分工明确,互相配合,没有怨言,PM更为值得表扬,为我们团队付出了很多的心血。

    2.软件工程实践带来的提升

    第一次接触php,对php完全不知的我,刚开始完全不知道应该如何入手,在掌握php工具的队友帮助下,get到了很多工具和软件

    学习和使用的新软件

    • 关于博客
      > a.博客园的了解
      > 好处: 多了一个可以查找信息的渠道,而且可以记录自己的成长历程
      > b.markdown编辑器的用法
      > 软件推荐:Typora
    • 关于php

      知道了php的作用
      php编写程序的软件
      sublime编辑器
      phpstorm

    • gif的制作软件

      gifCam.exe

    学习和使用的新工具

    • Github的使用
    • shadowsocks

      这个软件真是太便利了,打不开github,打开它,神奇的事情就出现了,秒进github

    • php的知识

      php代码,看懂一丢丢
      php代码如何测试

    • 单元测试

      Qunit
      QUnit是一个强大的JavaScript单元测试框架,该框架是由jQuery团队的成员所开发,并且是jQuery的官方测试套件。Qunit是Jquery的单元测试框架,并且被广泛使用在各个项目中。

    学习和掌握的新语言、新平台

    • javascript,ajax还是半吊子,还有很多值得学习的
    • 浏览器的控制台,可以快速的找出问题所在之处

    软件工程实践中,完成了多少行的代码
    -查看了github上面commit记录,再根据很多都是照着学长的模板进行更改的原因,大概写了3500行的代码。

    学习和掌握的新方法

    • 查看同班同学的博客,发现各种有趣的事情,看到别人的想法,对比自己的想法,感觉又进步了一点点了呢。
    • github很好用哦,在上面可以找到很多你想要的东西

    其他的提升

    • 不得不说,做软工项目,真是培养耐心的好方式,遇到各种各样的bug,都要尝试各种方式去解决。
    • 找到了兴趣,结束了软工实践之后,偶尔还是想要敲一敲代码,编程能力得到了提高
    • 和队友有了革命情谊了呢

    二、写下属于自己的人月神话——项目实践中的经验总结+实例/例证结合的分析

    关于文档

    在真正的开始编码之前,软工的很多作业都是关于文档类的,需求说明书(包含了各种流程图)等等,但是在真正的编码过程中,我完全没有再次去翻看文档,但是也编码的好好的,所以我没有体会到文档的重要性。
    

    增量式开发

    我们共有两轮开发,我们组在Alapha版本发布的时候,其实已经实现了毕设导师互选系统的实现,因此整个队伍都是很有信心的,这对我们Beta版本的冲刺带来了动力,大家一起编程,一起为我们的系统完善,都是充满干劲的。
    

    关于沟通

    前期的时候,团队作业都是大家一人负责一个内容,没有进行足够的沟通,经常出现各种牛头不对马嘴,PM对任务完成情况的不满意,但在alapah冲刺的最后一天,大家一起在活动室编程了整整一天,面对面的交流,那天的效率是整个alapha冲刺过程中最高的,因此,只有足够的沟通,才能实现创造。
    

    关于进度

    • 站立式会议第一天,我:“还在学习php,还没有开始编码”,初学前端队友:“正在学习html,还没开始编码”
    • 站立式会议第二天,我:“还在学习php,还没开始编码”,初学前端队友:“正在开始学着编码”
    • 站立式会议第三天,我:“还在学习php,还没开始编码”,初学前端队友:“一个页面快要完成了。”这个时候,我才发现我这几天完全都没有进度,再这样下去,冲刺十天的时间,都快要结束了,而我还是一点进度都没有。
    以上,我觉得团队开发项目,必不可少的就是要进行站立式会议,不仅是沟通的一个好方法,在会上可以进行的提出自己在编码过程中遇到的各种问题,寻求队友的帮助;还是督促自己抓紧进度的动力,当你发现队友都已经完成了不少东西,而你却还在原地踏步,会产生一种羞愧感,看到别人一直在前进,难道会让自己成为最后一名吗?
    

    三、对下一届实践的建议。

      无论你是喜欢编程或是讨厌,我都推荐你要选择软工实践,软工实践是一门很神奇的课程,如果你选择了张栋的软工实践,那么你会发现这真的上的是软工实践课,而不是写博客的课?
      刚开始,你应该会很讨厌写博客,毕竟我们是理科生,文采没有那么的好,你常常会发现不知该怎么入手,但是随着时间的推移,你开始觉得得心应手,每次写博客,都可以写上几千个字,当你回顾你所写过的博客,才会发现原来我做过这么多的事情,记忆是会忘却的,但是文字是留存的。当你回首博客,你会因写博客而感到欣慰。
      接下来,来说说编程吧。很多人会说,我编程能力不好,我不要选择软工实践课,那为何不提高自己的编程能力呢?这绝对不是一门纯技术的课程,上面说了,这是一门专业写博客,记录生活的课程,等到真正需要编程的时候,实际上,这门课也快要结束了。那么,你完全可以利用前半学期的时间,来学一门技术。
      也许你会听说,这是一门很坑的课,你会不得不熬夜,时常见到福大的日出,时常翘课?不,这个课并没有那么可怕,很多时候通宵达旦是因为拖延惹的锅,只要做好合理的规划,完全不用如此。
      人生因为挑战而精彩,快来体验软工实践的魅力。
      
    

    四、分析一下自己所处的团队。软件工程实践是大学里少有的认真的团队协作经验。《构建之法》上说团队的发展有几个阶段,你的团队都经历过么,最后到达了“创造”阶段了么?

    萌芽阶段

    刚开始,我们的队伍就只是互相知道对方,但在之前的过程中没有什么接触,但是大家可能都是自来熟吧,在开会的时候,气氛总是很欢乐,但是说实话,那时候都是在聊天,并没有在做什么跟软工有关系的话题,哈哈哈。
    

    磨合阶段

    在我看来,我们的磨合阶段,应该是长时间的。
    1.确定软件产品的过程,一开始的时候,男生想要做比较教务性的系统,但是组里有一个成员,觉得这种东西真是太无聊了,她想要做比较有趣味性的产品,例如:宠物养成,但是男生可能没有办法理解这种女生的小游戏,最后通过投票,还是确定了,教务性产品。但是在散会之后,由于种种原因,PM紧急又召开了会议,其中各种分歧,就不一一说明了,最后采用的是泽中的方式,就是我们的赏金猎人,既有动漫元素,又有校园气息的app,令我印象尤为深刻的就是那天的夜晚,活动室通明的灯光。
    2.确定原型,系统设计也是种种分歧和冲突不断,首先,就是粗心的队员和强迫症的PM,队员觉得差不多了,可以了,但是PM总是会挑出各种毛病,要求队员进行更改。//好像变成了吐槽
    

    规范阶段

    自从确定了我们的产品,大家就开始有条不紊的开展自己的进度,刚开始的时候,还有拖延症的我,时常被PM催促进度,后来慢慢的就变成了主动编码,虽然没有提前完成任务,但是至少没有拖延进度。遇到问题,大家也会在群里互相提问,回答,还会发各种链接分享大家一起学习。
    

    创造阶段

    应该说从Alapha版本的后半阶段开始,我们就进入了创造阶段,应该大家开始进度快了起来,尤其是得到了一起编程的乐趣,在Beta版本冲刺阶段,我们有四天一起在活动室里面编程,每天的时间都有6个小时以上,往往到后面大家沉迷编程,不愿意回去,PM就开始询问我们要什么时候回去,看到大家专心致志编程,PM也不忍心督促我们早点回去,这才是让我们能够在Beta版本后阶段轻松的原因。
    

    总结

    可能大概很多人都会觉得我们组的成员多数都是有过项目经验的人,或者是西二的成员,但是事实上我们这次做的系统都是之前没有接触过的东西,我们组里只有两个人是会php的,其他人都是比较擅长安卓的,而我更是小白一名,毕设导师系统的成功实现,其实是因为我们都有一个目标(自助餐),即使是从0开始学习,也是充满干劲,其中也寻求了各个方面的帮助,所以我觉得技术强并不是软件产品成功发布的原因,更重要的是热情,一个团队因为同一个目标走到一起,因为同一个目标,一起成长,因为同一个目标,一起奋斗。
    

    五、论文读后感

    Code quality analysis in open source software development

    代码开源

    现在很多代码都是开源的,对前端来说,当你看到一个感觉不错的网站,都可以查看它的源代码,试着自己写出类似的网站。还有很多代码可以通过Github上找到,虽然很多下载下来都是不能用的,但是可以从中找到解决自己问题的方法,我觉得代码的开源是帮助程序员进步的一大里程碑。但是在这种便利的条件下,我们要做的就是如何提高源代码的质量。
    

    代码的规范性

    通过一学期的学习,我觉得我的代码规范性有了一定的提高,从当初结对编程,写的代码都是要亲自告诉队友哪个变量是什么,到后面团队编程,队友可以看懂自己代码,我觉得代码规范性,作为一个程序员必须要注意的事情,毕竟你不可能一个人完成项目的所有工作,只有通过代码规范性,对自己进行约束,才能成为更好的程序员。
    

    六、学会软件工程?

    1.研发出符合用户需求的软件

    我们做的是毕设导师互选系统,这个系统是由真正的客户提出的,面向数计全体师生,每个学生都要选择毕设导师,那么以前的方式都是通过人工收集的过程,耗用了大量的人力,而且学生对导师的了解度不够,很多都是随便选择,另外导师没有自主选择学生的权利,都是通过系负责人通过一个神奇的算法进行分配,这是很不智能的,所以我们这个软件充分考虑了客户的需求,将所有线下的步骤,全都提到线上来进行,充分体现了客户的需求,简便了整个毕设导师选择的过程,更加的公平公正公开。
    只要学院愿意使用,整个学院的师生都将是这个系统的用户。
    

    2.通过一系列工具,流程,团队合作,能够在预计的时间内发布 “足够好” 的软件

    • 与客户面对面的交谈,充分了解客户的需求,进行多次的需求确认
    • 编写需求分析说明书,再次与客户确认需求
    • 确认无误,进行原型的设计(Axure)
    • 体系结构的设计(代码规范性,编程软件的统一)
    • 正式开始编码

    a.制定项目时间计划表
    b.人员分工明细
    c.站立式会议
    d.代码的整合(github)

    3.通过数据展现软件是可以维护和继续发展的。

    写代码的大部分时候都是想到什么写什么,也没有前后端分离很明确,接口就只是使用了一点点,接触接口是在编码快要结束的时候开始学习的,发现使用接口增加了软件的可扩展性,修改的时候就不用重构,可惜前面的大部分代码都不是使用接口,虽然对前端来说,写接口很多时候会比不写接口增加了很多的代码量,但是要修改功能的时候,可是非常好用的,只需要修改一点点地方就可以了。
    

    附上我们团队项目的github链接 毕设导师互选系统

    七、我是谁?我在做什么?我在哪儿?

     满满宇宙星空,人人都是宇宙里渺小的一颗,时间转瞬即逝,我是谁并不重要,重要的是我在哪儿,我在做什么,而我身边的人又是谁。两年半的时间,才让我找到了计算机的乐趣,大概知道了程序员为什么喜欢编程的原因。通过编程,能够做出有用的软件,看到别人在用自己的软件,心中满满的自豪感。软工实践结束了,但是我的编程之路才正要开始。
    

    八、我身边的人

    结对编程小伙伴 林锦大佬

    当一个懒癌晚期患者,碰上一个行动派,碰撞出的火花就是:懒癌治疗术。看到她那么认真的完成作业,我怎么忍心自己在一旁玩耍,跟上她的脚步,前进,前进,前进。
    

    团队伙伴 我说的都队

    ​ 这是一个集各类大腿于一队的队伍,我们有事无巨细的PM--男神(陈燊),php大腿--齐民,算法大腿--扬涛//这次终于写对了名字,全能选手--伟炜,颜值担当--婷婷,嫌弃担当--胡学霸(心颖),我就勉为其难的担任吃货一枚吧。

    那些灯火通明的晚上,那间熟悉的活动室,那些PM请客的夜宵,那些熬夜的困倦,在活动室睡觉的民大腿还有燊大腿,都是因为我们有着同一个目标,他们的热情带动了我的成长,说到成长,最要感谢的一个人就是我们队的大佬:伟炜,精通前端,php,安卓,遇到任何问题都可以问他哦,在编程的过程中,他帮助我解决了各种各样的bug。“伟炜,你过来帮我一下。” “伟炜还没帮我解决完这个bug”的情景历历在目。
    
    项目结束了,我们的情谊还在继续。。。
    

    听说要图文并茂,害怕被打死的我还是不要贴图了,想看的人私聊找我(老司机带你飞)。

  • 相关阅读:
    校门外的树
    年龄与疾病
    数组逆序重放
    计算书费
    陶陶摘苹果
    与指定数字相同的数的个数
    上学路线
    NOIP2011 普及組 統計單詞數
    [HAOI2012]音量调节
    [USACO11JAN]利润Profits
  • 原文地址:https://www.cnblogs.com/linexu/p/6238640.html
Copyright © 2020-2023  润新知