20191128-1 总结
此作业的要求参见:https://edu.cnblogs.com/campus/nenu/2019fall/homework/10111
回顾0
团队名称:胜利点,https://www.cnblogs.com/shenglidian/
团队项目:萌猿填词
项目链接:https://mengyuantianci.coding.net/p/mengyuan/git
在本课程(不包括本学期其他课程)中学习和使用的新软件新工具(全称、版本)及链接
1.微信开发者工具1.02.1910120_x64
https://dldir1.qq.com/WechatWebDev/nightly/p-ae42ee2cde4d42ee80ac60b35f183a99/wechat_devtools_1.02.1910120_x64.exe
2.git 2.24.0-64-bit.exe
https://git-scm.com/download
3.tortoisgit 2.9.0.0-64bit.msi
https://tortoisegit.org/download/
在本课程(不包括本学期其他课程)中学习、提高的语言、开发平台(全称、版本)及平台链接
语言:JavaScript
平台:coding.net
https://coding.net/
回顾1
(1)回想一下你曾经对计算机专业的畅想
A.当初你是如何做出选择计算机专业的决定的?经过一个学期,你的看法改变了么,为什么?
当初选择计算机专业是因为:稍有兴趣;计算机专业应用广,工资高,找工作相对容易。
经过一个学期,对之前的看法有所改变。首先是当初我对计算机专业的理解完全只是表象,并没有深入的去了解计算机这个行业。计算机应用广是事实,但是工资高不高还要具体看自己的能力与水平;找工作也相对好找,要找好工作还是比较困难的。
B.认为过去接触到的课程是否符合你对计算机专业的期待,为什么?经过一个学期,你的看法改变了么,为什么?
我认为我过去接触到的课程不符合我对计算机专业的期待,因为:
1.学习的课程缺乏实践应用,多数是理论的知识点。
2.授课方法以老师为中心。
3.上课时间多,课程种类多,学的太粗糙。
经过一个学期,我的看法改变了,原因如下:
1.理论性的课程是为我们打下一个计算机实践的坚实基础,基础打牢固了,才能继续往上堆积知识而不会倒塌。也可以通过实践来证实理论知识,并加以应用。但是我却因为懒惰并没有这么做,最后的结果是理论知识不牢固,实践动手能力也不强。
2.当初提到这个问题时,是因为我没有考虑到自己的身份,如今自己已经是硕士生,不可能再向高中那样让老师去督促学习,老师是引路人,其他的就需要自己去学习去理解,这样才能适合当今社会的工作形势。
3.上课时间多,课程种类多是学校提供给了我们更多的选择的方向,我们只需要对一个具体的方向深入研究,而不需要把全部知识都掌握的很熟练,并且计算机语言的特点也是一通百通的,学通一个再学其他的语言也很容易。其余的任务是我们对每一门课程都有大致的了解后自己选择感兴趣的方向,最后还是需要自己主动地学习。
C.你觉得计算机是你喜欢的领域吗,它是你擅长的领域吗?经过一个学期,你的看法改变了么,为什么?
我觉得计算机是自己喜欢的领域但不是自己擅长的领域。
经过一个学期,我仍然认为计算机是自己喜欢的领域,我觉得计算机并不是我擅长的领域。因为在学习的过程中我遇到很多难以解决的问题,可能这些问题对其他同学来说很困难。兴趣是最好的老师,既然我能有兴趣,就不怕以后不擅长,只是这个过程是漫长的,需要投入大量精力去学习的。
(2)考取研究生,对照前人们走过的路和描述未来发展,现在的你自我感觉你已经具备的专业知识、技能、能力有哪些?离成为一个合格的计算机学生,在专业知识、技能、能力上还差距哪些?经过一个学期,你的看法改变了么,为什么?
在经过一个学期的学习以后,看法依然没有改变,越是学越发现自己的差距越大,需要学的东西越来越多了。
(3)每天都是一个人生选择的十字路口,学术研究、工程项目、社会实践 (?) ,不同的选择有不同的努力方向。
A.对照以上你阅读的前人们的经历,你的选择是什么?经过一个学期,你的看法改变了么,为什么?
我的选择是工程项目。经过一个学期的学习以后,我的看法仍然没有改变,因为自己在动手做工程项目才能更好的应用所学的知识。
B.在这种选择下,你认为你相比其他同学来说有何优势,有何劣势?经过一个学期,你的看法改变了么,为什么?
我的看法仍然没有改变,我还是觉得自己基础知识不够扎实:面向对象程序设计、机器学习等这些知识掌握的很不好,以后还需要不间断的学习。
C.针对你的选择,你给自己的本学期的规划是什么?经过一个学期,你的看法改变了么,为什么?
我的看法有所改变,当初制定计划时是在理想状态下制定的,过程中不可控因素有很多,最后导致不能完成当初的计划目标。
(4)你对这门课的期待是什么?你打算平均每周拿出多少个小时用在这门课上?经过一个学期,你的看法改变了么,为什么?
实测结果,每周平均用在本课程上多少小时?
经过一个学期,我的看法没有改变,但是我没有达到自己打算每周在这门课上花费的时间。实测每周平均用了12个小时。
回顾2
5个问题
1.作业要求 [https://edu.cnblogs.com/campus/nenu/2019fall/homework/5522 ] 题目 中提到:
通读《构建之法》,发布随笔1篇,要求列出5个问题,可以是读后不理解的,或者读后反对的。要求有观点、有证据或分析。字数不是直接的考核标准,但是要求长到能把观点表述清楚。
请回顾这5个问题,自己回答一下。当初的困惑是否还在,你现在如何认为,是更深的困惑么?
1.在第四章代码复审部分,新加入的成员是否需要先完全掌握之前的代码才能继续编写,做实践中学习是不是会降低编码效率?如果新加入的成员对之前的代码有了创信性的想法,那么效率和创新谁更重要一些?
答:我认为新介入的成员不需要掌握之前完整的代码,只需要把自己需要做的工作和自己代码与之前程序的衔接部分掌握到就可以了。首先考虑创新的可行性,若可行可稍微牺牲一点效率去尝试创新性的想法,效率可以为创新让步。
2.在第四章中,书中提到“只有水平上的差异,没有级别上的差异。”若团队中的两个人编程能力不同,是否会影响整体编程进度?团队合作时,由于每个人的性格特点不同,做事风格也不一样。有的人容易拖到最后在工作,有的人尽早的就完成工作,这就会导致团队效率降低。对于这种进度上的不协调应该怎么处理?
答:两个人的编程能力不同,会影响到整体进度。若因为性格、做事风格等问题降低团队效率的话,可以让团队组长规划好每个人的最终完成时间。我们没权利使其改变做事风格,只能严格把控时间来实现进度统一。
3.第十二章书中提到用户体验和质量,“如果用户体验和产品冲突。怎么办?牺牲质量去追求用户体验吗,用户能接受吗?”然后下面给出了一个故事,大致意思就是说要使其情况权衡用户质量和产品的比重,故事中的案例说明彼此的冲突并不算很大,但现实中有些问题是在是无法权衡该怎么办呢?
答:我认为用户质量是很重要的,在无法满足用户体验时可以说明情况,不能只因为体验而使软件丧失其利用价值。若无法权衡就以产品为重。
4.在第十三章中提到了各种测试方法,一款软件在发布前,应该进行测试,软件总是有缺陷的,那么测试又应该做到什么样的程度呢?如果只测试部分代码,又担心其他方面有缺陷;如果我们要对软件的全部功能测试,就需要消耗大量的人力物力,那么测试人员应该占开发人员的比例是多少?
答:测试应该占到开发人员的70%,应该对程序做出全部功能测试。
5.第十六章IT行业创新中,迷思之二提到“不但大众不喜欢创新,甚至连创新者自己都不例外,有些创新者甚至恨创新。”我认为,既然身为创新者就不应该在乎名和利,自己所做的每一个创新体现的是对科学的这份热爱;西方有很多科学家为了自己所研究的工作,放弃了自己的家庭,这种精神是非常可贵的。
答:现在我仍然赞同当初对创新这个问题的理解,科技的进步时时刻刻需要创新。假如你所做的创新推动了当今社会的发展,那么名和利也会自动找到你。倘若仅仅为了利益保护自己的老旧的产品而拒绝创新的话,他也担不起称为IT行业创新者。
2.请根据本学期的学习、收获、困惑,再提出5个问题,可以是读后不理解的,或者读后反对的。有求有观点、有证据或分析。体验一下,这5个问题,是不是更有深度了 。
1、在第四章的代码复审部分,需要在什么时候进行代码复审?应该用那种复审的方法?
经常进行代码复审在开发时间相对较紧张的时候会不会影响开发进度,或者说如果要在软件开发的每个阶段都要进行复审,是不是违背了敏捷开发的原则?复审方法中首先提出了自我复审的好处,这与团队互审是不是矛盾呢?
2.第七章中提到的“团队中的矛盾”,如果发生了这种矛盾,要以谁所提出的观点作为实现原则?,一旦产生了这种矛盾,我们应该使用什么样的观点作为实现原则?
在开发过程中,每个人提出的观点可能都是有一定道理的,因为是每个人站在自己岗位的角度上思考后所提出的问题,现在的矛盾是:如果全部考虑进去,可能会延长开发时间,若是不完全考虑又会影响到软件的完整性。
3.在第十六章IT行业的创新中,上面问题已经回答我们应该支持创新,现在的问题是我们应该怎么去创新,对于个人创新方面,我们应该注重哪些问题?
个人创新无法与大的公司和团队抗衡,哪怕你有了一点创新的想法,在实现的过程中遇到层层困难,我们在寻求公司或团队帮助的时候,可能你的创新想法慢慢被他们所占有。因此我们应该怎么样努力,所做出的创新才能被别人认可?
4.第四章两人合作,在结对编程方面,优点是降低程序出现的错误,代码的质量会提高。但这是在两个人配合默契而且能力相差不大的情况下所得出的结果。若两人能力相差很大,能力高的人还需要停下来帮助能力低的人,而且两人编程习惯不同,在某个问题上产生分歧时,也需要停下来讨论合适的对策,这样是不是会耽误更多时间?这样的结对编程是否还有意义?
5.最后提出一个实际遇到的问题,在团队开发过程中。应该如何分配任务才更加合理,工作效率才会更高?这是我们在团队开发中所遇到的问题,是按照人员的能力高低分配任务还是平均分配任务?
3.回忆整个学期,你有什么话想对后来的学弟学妹们说。
老师花费了大量的时间和精力为我们准备了这门课,如果你能紧跟着老师的节奏走下去,最后肯定会有所收获,尤其是技术的提高,也或许使你之前对计算机一些不成熟的看法变的成熟。需要提醒一下,这门课也需要你投入很多时间,也是很累的。
4.如果重新来过一次,你打算做哪些(技术上,而不是态度上的)改变--基于希望得到什么样的更好结果,你才希望这样改变的;更重要的是,你根据什么估计这些改变会有预期的结果。
如果重新来过,我计划使用python来完成每一次作业,这学期接触到python这门语言才了解到它的强大,其他语言好多行代码解决的问题,python可能三四行就能解决。
5.终于我们即将不再是师生。当你结束本课程,你和我就站在同样的位置上,我将不再基于学校授权和知识、经验 (年龄?)上的优势而对你的自由有任何干扰。除发布及成绩以外,我最后一次行使教师特权: 请问你有什么要对教师 (我)说的,建议、抱怨、希望……多谢。
我想对老师说:这门课是这学期收获知识最多的一门课,这一切都是老师为课程精心策划和助教辛苦批改作业的成果得来的。虽然学习的过程用了很多时间,但对我来说也是体会到相对完整一次软件工程整体流程。希望这门课的风格继续延续下去,使更多的学生受益。再次感谢老师为我们的付出。
总结
1.代码总量,平均每周代码量:本节课代码共916行,平均每周83行代码。
2.博客字数总量,平均每周字数:本节课博客字数总量共17681个字,平均每周字数1607个字。
3.根据PSP,平均每周在本课程中所用时间(是的,请再回答一次)多少小时:每周平均用了9.13个小时。
4.进度条总结: 遍历每周知识点,以周为单位做如下表格。
起止时间 | 提交PSP例行报告时总结的知识点 | 现在回顾该周收获的知识点 |
2019.9.5-2019.9.9 | PSP,数据流图 | 了解到了软件工程的实施过程 |
2019.9.13-2019.9.18 | PSP | 重定向的含义,控制台输入输出的方法 |
2019.9.21-2019.9.24 | PSP,功能测试,结对编程,单元测试 | 代码规范,逆波兰,功能测试方法,结对编程 |
2019.10.10-2019.10.16 | PSP,需求分析,燃尽图,软件设计方法 | 需求分析描述,燃尽图的使用 |
2019.10.17-2019.10.23 | PSP,燃尽图,团队合作,软件设计方法 | 微信开发工具的下载使用 |
2019.10.24-2019.10.30 | PSP,燃尽图,团队合作,事后诸葛亮会议,nabcd分析 | 事后诸葛亮会议意义,代码规范 |
2019.10.31-2019.11.06 | PSP,燃尽图,团队合作 | 后台数据文件的编写 |
2019.11.7-2019.11.13 | PSP,燃尽图,团队合作 | git版本控制 |
2019.11.14-2019.11.20 | PSP,燃尽图,团队合作、事后诸葛亮会议 | 分析总结上阶段的问题 |
2019.11.21-2019.11.27 | PSP,燃尽图,团队合作,nabcd分析 | 小程序最后收尾工作 |
5.时间分配堆积柱状图