laiy / Exchange

Course project from SYSU.
0 stars 3 forks source link

REPORT

曾艳红

软件过程改进心得 13331330_曾艳红

本学期选修了这门课程,现在课程结束了,过程中有付出有收获,此处写下心得。

当初是看见课程名字选修了这门课,觉得作为一个程序员应该具有工业的眼光,从上层建筑去看自己的代码,而不是为了打代码而打代码。然而,这门课主要是通过对web技术的学习和实践来体现软件过程改进的理念的,虽然选修过web2.0课程,但对于我这个渣渣来说,还是学的很吃力很吃力。

在这个过程中,每周的作业我几乎会花上整整一天加上熬夜,才可以写出个大概,尤其在后半程的每周作业,其难度要求几乎就是我选修web2.0的期末project。通过课程我学习了一些web开发时候用到的工具,如express和一些预处理语言,大大加速了web开发的速度,发现其实在软件过程改进中,是要学会用工具来加快软件开发的过程的。

在这个过程中,我了解到了web技术的一些底层的原理,如浏览器的处理请求的这个过程,如果说web2.0我学习了是什么,那么这门课就让我学习到了怎么样,为什么。

在这个过程中,我学会了快速学习,这是让我最最受益匪浅的。在每周的作业中,常常要求用一个之前从来没有用过的工具或者语言来完成作业。我从一开始对英文资料的抗拒,到能够在两三个小时内看完官方的英文文档,并能用这个新语言或工具写点东西,克服了接触新事物的恐惧心理,这是我在其他课程都能够受益的技能。在开发过程中常常遇到各种各样的问题,样式的处理更是方法千千万万,学会搜索很重要。搜索不仅仅是用百度或者谷歌搜索你想要的东西,其实有时候同一个问题变换个搜索的关键词就能找到很不一样的答案,而现在搜索时相比之前,我除了能更精准地找到搜索的关键词之外,养成了一个小的习惯,当点击搜索结果时,往往会出现很长的博客或者文档又不一定是你想要的,这时候就可以通过ctrl+f快速锁定搜查当前页面是否存在你想要的搜索结果。

在这个过程中,我学会了团队协作和不断改进。我记得一次作业实现了s1~s5的五个版本,让我在学习相关的技术知识点外,还体会了一个软件在不断改进的过程。作业以github为媒介来进行提交和批改,让我感受到了git在版本管理和协程开发过程中提供的便利。在最后小组的project中,老师更是以工业的方式去引导我们开发自己的项目。在这个过程中,我们小组每次的展示都比较顺利,我认为这是因为,相比起其他组我们小组的成员有一定的积极性和团队协作意识,每个人都自觉承担自己任务,而我们的组长作为团队的核心人物,具有一定的开发经历,使我们在这个过程中很放心很自信。 最后,感谢老师开设的这门课程,十分的有价值。感谢TA,每周都要辛苦地批改作业。感谢我的队友,在小组合作的过程中互相学习,互相感染了很多,也互相帮助了很多!

陈泽宇

个人贡献 完成wish/create前段页面的设计,参与需求分析、产品设计。

实验心得

  1. 明确分工能够提升工作效率,使每一位成员专注于完成某一模块的工作任务。
  2. 开始开发工作前需要明确产品需求,根据需求设计好底层的数据库结构以及相应的接口。这样在后续过程中才不至于因为前后端对接的冲突导致某一方乃至双方作出大量的改动。
  3. 作为一个产品,首要是满足用户的需求,而非一味地追求自身功能的复杂性。要善于做减法,把无关的部分去掉。
  4. 开发初期,不可拘泥于过于细节的问题。过度设计将影响当前问题的推进进度。
  5. 当所有成员初步完成各自的任务时,彼此间需要互相交流,取长补短。对于前端而言,还需要利用这种交流统一设计风格,规范项目的开发。后端也能够在这种交流中适时地作出调整,使整个程序的架构更为合理。

程键生

一、学期心得体会

1.学习的某些步骤和过程是不可省略的,快速学习是重要的能力,但这并不等于偷工减料,学习需要一些重复的过程。回顾之前提交的作业,不得不承认有一部分是“照猫画虎”地做出来的。虽然最后提交了作业但是并没有真正学到家,到了大项目的时候还要回头去补回一些内容,解决问题,漏洞的时候付出更加高昂的代价,可谓经验教训。

2.关于Thinking-oriented programming编程思想。个人将其理解为 清醒的认识。知道所写代码的全貌,定位以及在整个项目中所起的功能。由面到点,所以即使隔了一段时间再看自己的代码,也知道某个部分应该怎样实现,不至于说顾此失彼,写后忘前。

3.在一个团队项目里面,先做好自己的事情而不要光顾着别人。性格有点八卦,所以总在关心别人的进度去到了哪里,自作聪明地提意见。后面发现这个并不是一个好的合作方式,而且自己分配的工作还没有做好。先做好自己的事情,会避免制造负担给别人,大家都尽力做到最好的自己,自然会让团队变得更出色。

4.关于编程的乐趣。之前一直很疑惑各种大牛总是说“enjoy coding”,而自己并不觉得这是一件轻松愉快的事情。经过这段时间的学习,有一些新的体会:coding的快乐源于创造的自豪感,看着黑底高亮语法的代码按照自己预期的想法以缤纷的界面呈现,脚本按部就班地实现我设想的批处理功能,甚至看着整个APP可以流畅地运行,自豪感和成就感会成为极大的快乐感。

二、个人贡献

  1. 在项目的开始阶段,提出了心愿交换的构想,积极参与项目功能的讨论,并在课堂Pitch上负责展示。在代码实现阶段,根据分工负责前端user和login/signup页面的设计与实现。在执行过程中,贡献了公用部分的样式方案以统一基本布局。在项目可以基本运行后,参与整体的debug工作,例如修复某些页面的样式漏洞,路径错误,以及补全没有按预期功能实现的脚本。

赖渊

前几次作业对于我来说都是较为熟悉的东西了所以不会有别的同学常见的“要学很多新东西”的感觉,通过这些练习和老师课上的讲解巩固加深了已有知识的理解。 CP阶段,担任团队组长,之前有过开发经验,所以整体CP的流程是基于我以前的经验之上的,小组成员许多没有项目开发经验,所以对项目开发的理解不够深入。不过还是按分工去写了东西。 当我要把大家写的东西对接的时候,就发现了很多让人语塞的现象,没有严格按照接口要求写代码,代码写的奇丑无比,不理解前后交互的流程。许多写前端的同学只是把样式写在了那里,不知道要去写REST API的处理逻辑,而且很多的样式可以看得出来没有用心去做。 对于课程,我一直比较期待的是后面软件过程改进的内容,而不是前面的基础web知识。我起初的想法是我可以接触到各种各样的编程模式,编程思想,团队合作开发的方法论等。这些似乎也存在于课程的描述中,但是学期下来这部分并不是让我很满意,我认为理论上应该加入更多的东西,让大家涨涨姿势,我认为应该在软件开发的理论支撑下再去做项目开发,而不是让同学们自己摸索,从pitch也能看出,很多团队刚开始根本不知道项目开发要做什么,我认为这个应该是理论课该去理解的。

王水

一、个人贡献 参与项目的讨论,完成invite和invatation页面

二、收货与心得 1.首先是学到了不少技术,从极大方便代码书写的预编语言jade,livescript,sass到方便项目管理的grunt,bower,npm,再到实现动态加载的meteor,express。这一系列前端开发的利器大大加速了我们开发web应用的速度,也极大的规范了代码和项目的结构,让一切都井井有条,可以很快地自动构建起框架,让我们则解放出时间和精力在更有用的地方。 2.其次是了解了很多理论、模型和概念,MVVM,MVC,single web app等,让我们从更高的角度来认识前端,而从这些理论中可以看出前端的动态以及未来的发展方向,让我们不至于在日新月异的前端世界迷失道路。也方便我们在良莠不齐的前端工具中选择实用长久的工具。 3.接着是锻炼了我们协同开发的能力,从最开始的当面开会讨论,到之后的qq群讨论,再到github的issue,每一次方式的改变都更加节省了我们的时间,提高了效率。从最开始的分工不明确导致不好下手到后来专人专项,很快的搭建拼接起了项目。 4.最后,也是最重要的,就是随着课程一步步走来,从最简单的web外观设计和简单的逻辑实现,到最后完成一个完整的web应用。从最开始的杂乱无章到后面的井井有条,这一些列的转变过程或许正是软件改进的核心,我理解的改进就是让我们慢慢的学会自己来优化提升自己项目开发能力,而长久则是让我们依靠自己能够不停的往前进步,不会因为新事物的出现就一筹莫展,让我们能够在外界始终能找到立足之地的重要能力。很庆幸自己能在宝贵的大学时间里跟老师学到那么多知识方法,获益匪浅!

其余组员没交REPORT。

HOW TO RUN

coffee app.coffee

PORT:3000