@Heath
2015-06-21T14:27:44.000000Z
字数 5927
阅读 1146
小组贡献
项目的前期积极参与了创意的构想以及项目的总体设计,参与选择了架构的选择。在代码完成阶段,主要分工负责了Mr.Suit的私信功能的后台代码的实现。实现了发送私信,私信的对话,实时提醒未读私信,标记已读私信的功能。
心得体会
这学期在软件过程改进的课程的学习中,收获非常的多,不仅仅是知识方面的,在很大层面上提高了我各个方面的能力。具体而言,我的收获可以总结为一下几个方面:
1.快速学习的能力:
软件改进过程的学习中国,由于课程需要必须在短时间内掌握一门新的技术,从node.js到express.js等框架到jade, livescript,这些东西都是通过短时间内的学习掌握到的知识。但我从中学习到的不仅仅是这些语言,更重要的是意识到了学习能力的重要性。如果学习能力足够强,即使对于陌生的技术也能快速掌握应用。
2.API的设计:
与上一点相辅相成,由于很多API的设计不够明确,有一些API是一边完成一边改变功能,或是在上一层的代码完成的过程中发现需要使用到这些API才想到向下一层的代码负责人要求完成这些API的功能。这个等待过程中,花了大量时间在等待下一层的API的功能的明确和实现。
3.注释与代码风格的重要性
我负责部分的代码是由两个人合作完成的,而每个人的代码风格却不尽相同,因此在看代码和理解代码的时候需要花费一些功夫来理解一些变量名和函数,看懂一些注释。因此下次在完成同类项目的时候,我们会选择在开始阶段就统一好代码规范和要求,避免出现无法理解的情况。
4.技术的力量
在这一学期的过程之后,我学到了很多过去没有接触到的技术,通过学习express.js,meteor的等比较前沿的技术,这些是在过往的课程中难以学到的。更加难能可贵的是能够运用这些技术做出很多很酷炫的东西,让我感受到技术的力量。
5.软件的开发流程
最后是在我在这个课的过程中第一次真正参与到软件开发的所有流程,虽然并不是做的非常完美,但在这个过程中的参与感是其他的无法比拟的。
小组贡献
完成了用户注册登录登出,图片,文件上传的功能.
心得体会
这次软改项目让我体会到了前后端是如何协同工作的,一个完整项目的开发,必须由团队来分工合作,并在每个阶段中进行必要的总结与论证。
良好的文档是正规研发流程中非常重要的环节,一个好的程序是先写好设计文档再进行编程的,在设计文档的指导下,才能写出安全的代码。如果你不写文档,一开始就写程序,这样你就不会按已设计好的路线走,而是想到哪写到哪。在这次项目中就因为自己急着打代码没有去仔细阅读数据库设计文档导致后续的工作出了一点小麻烦。
同时,深深觉得自己基础很不扎实,有的时候出现的Bug觉得很莫名其妙,但是仔细去看源码和文档就能知道问题所在。这是一个很严重的问题,在以后的学习中,尽自己所能的去看一些重要的源码将对自己又很大的好处。
小组贡献
我在本项目中负责的部分是邀请设计模块,功能是当用户指向card的作者部分后弹出一个按钮,邀请card作者设计搭配方案,点击按钮后调用消息模块系统自动向card作者发送一条消息:“用户xxx邀请您帮他设计搭配方案”,其中用的是meteor应用构建平台。
心得体会
上了一学期的软件过程改进这门课程,收获良多,王青老师是我在中大遇到的为之少数的“用生命讲课”的老师。一开始的@+环形菜单就把我们吓得不行,有一部分同学因为这个原因纷纷退课,但咬咬牙,向之前做过的同学请教,过了这关,也就决定了在这门课留下来了。不过,这注定了这门课不会那么简单。接下来的几周也是非常煎熬的,因为每周都有新的技术内容,在还没完全消化完上周的技术点的时候,又来了新的知识,这对我们对新事物的接收能力要求较高,尤其是在meteor的时候,深深体会到了那种无力感,但也只能硬着头皮看文档,跟同学讨论来继续下去。在中期,技术部分就基本结束了,开始讲的是一些思想上的东西,让我们思考如何进行改进,用TOP的思想来编程,让我们从中学到的不仅仅是编程能力、代码能力,而是思想、方法和过程。在后期就开始实现小组的项目了,这时候会感受到不小的压力,因为之前的技术学习的时候并没有学得很透彻,所以用起来的时候也非常吃力,要重新看技术文档。不过这时候也感受到了队友的力量,在我不能很好地完成的情况下,队友提出了建议并帮助我一起完成了模块。在做小组项目的时候,也是我第一次真正进行这种模块化的编程,因为大一、大二的作业,基本都是靠个人完成的,因此没有太多模块化的东西。这次的项目也是让我长见识了。
最后,感谢用生命讲课的王青老师,辛勤的TA,以及给我帮助的队友们。
小组贡献
负责私信模块的前端工作
心得体会
mr.suit是我和同学们一起合作完成第一个项目。其中,立项的环节给我的印象很深刻,确立一个项目之前,要首先定位好用户群,明确自己和其他同类软件相比具有的优势和这款软件存在的意义。这是一次真实软件开发过程的模拟,分析用户需求,系统需求这些在我们平常的练习过程中基本都是忽略的,这次经历让我了解了软件开发的真实流程。
在技术方面,前端的工作让我复习了在课程中学到的js和css技术,也积累了和其他同学一起开发的经验。像ppt中秋千的例子一样,在开始写代码之前,必须保证自己和队友的想法是一样的,这样才不会冲突,在开发过程中也要多和队友交流,让前端方便后台使用。
在本次课程中,我复习了在web2.0中学到的静态网页技术,学会了使用ajax,闭包等,深入了解了js这门语言,学会了使用grunt,nodejs,meteor,livescript,jade等方便的框架和工具。在学习过程中遇到过很多困难,比如浏览了大量官方文档,但由于方向问题或者理解问题,找不到自己想要的答案,再比如,运行异常却找不到bug等等,究其原因大部分都是自己语言不熟练造成的,还有一部分原因是心烦意乱精力无法集中导致开发效率低下。老师曾经说过,开心的时候再打代码。我觉得很有道理,如果自己的内心抗拒,学习效率和工作效率都是很低的,学会调节自己的心态很重要,毕竟从事这一行业随时要准备学习很多自己未曾了解过的东西。
总体而言,上了这门课我收获还是很大的,但这门课也有一些需要完善的地方,比如每周的学习压力比较大,用到了很多种框架和工具,但对每一种的理解还来不及深入就又到了下一周要学习新的内容。最后希望这门课能越办越好~
小组贡献
在本次项目中技术方面我主要负责主页面的前端工作,card设计。同时作为组长,我还负责成员分工,进度制定与监督以及一些其他细微的工作
心得体会
一学期的课程,真的是收获了好多。
前半部分的课程,老师带领我们入门学习各种最新鲜的知识与技术,教给我们思考的方式。这些都是一种很精彩的体验。在其他课程中,我们常常是在学习一些非常经典、非常基础的内容,有时候学到的知识并不太容易直接运用起来,也少有老师给我们展示他编程时的思维过程。但是这门课程给了我前所未有的体验,我能给直接接触到各种最流行的技术,同时逼迫自己快速学习,尽量去体会老师的思维方式。老师给的任务每次对我来说都是不小的挑战,为了完成一次作业常常要现花大量的时间快速入门一种技术,模仿理解老师的例子,然后尝试自己编码实践,这时就会遇到大量的“坑”,而能力成长最快的的时候就是解决掉这些“坑”的时候,当动手实践时,那些快速的入门的知识才能逐渐的沉淀下来,逐渐明白背后的原理,知道如何运用,怎么运用更更好,使之真正变为自己的能力。
在后半部分的课程中,小组合作是重中之重。选题时我们便开始激烈的讨论、思考。在被老师指出问题后进行头脑风暴,集思广益,共同解决问题。分工时,由于我是组长,需要进可能考虑每个组员擅长的技能,不给他们太大的压力。
作为真正意义上的第一次团队合作未完成一个项目,我想过程的重要性远大于结果。在这此项目中我个人得到的更多的是经验教训。与其他小组相比,我们小组还有很大的差距。比如,在开始阶段,虽然我们较多的讨论了项目需求,但由于都是在口头上的东西,并没有明确的写成文档。这个错误直接导致了分工合作时,小组成员难以配合。各种接口、数据模型不一致,花了很多时间才勉强的统一起来,但是项目的结果还是差强人意,我作为组长应该负主要的责任,在工作流程上我们真的很欠缺这种经验,这是我们以后工作中很重要的一部分。感谢这门课程的老师、TA和同学让我尽早的发现了自身的不足,找到知识、技能、思维上的种种缺陷。这是我收货最大的地方。
小组贡献
1、完成后台的comment数据定义,和点击设计后进入的详细页面设计;
2、帮忙调试post模块等bug并重新按照组长设计定义出ImageCard后台数据;
心得体会
通过本学期的软件过程改进学习,先是更深入的学习了web的核心技术和面向思维的编程,并了解和学习到一些有用的框架;到最后的团队开发,了解了软件从设计到完成一个软件的开发过程中有许多需要注意的地方,比如我们设计软件之前,就得先想好软件设计的目的和它所在的意义,以及我们设计的软件所在的优势,并需要明白我们设计的这个软件到底有没有必要;还有在团队开发的过程中,每个人负责哪个模块,模块之间需要相互了解哪些信息等等,都需要团队之间的交流.
根据我们开发的过程,从出现的一些问题中可以学习到一些东西;比如说,原先已经设计好的后台数据模型,如果后台人员没有完全按照设计好的模型设计,前端的人设计的前端页面在取后台数据时会遇到麻烦,所以说一开始绝对要按照设计好的接口实现,不然后面就会出现接口不一致导致本来不必要的修改代码的情况;又比如说,遇到公共的接口部分,在你自己开发自己负责的模块时,你修改了那个公共的接口,但是别人开发的模块用到那个公共的接口却是你修改之前的,这样他的代码接口有可能就没办法对接上你修改后的那个公共接口,导致他的代码在合并后不能正常的运行,所以对公共接口的设计一般也不要随便就轻易地让某一组员修改,如果非要修改公共接口,必须跟所有组员说一下,并且在修改前必须确认他们负责的模块接口能否根据你修改后的来做出相应的修改;另外,我发现在开发的时候,不管是写前端还是写后台数据,最好是两边都了解,这样你自己在写完代码的时候,最起码在调试的时候你能够看懂别人写的代码,然后正确的追踪到到底是你自己的代码写错还是别人的代码有bug,而且如果前后端都会的话,写代码也会快一点,因为你对整个模块的代码运行都了解,不会出现有些地方的代码你并不知道它是怎样运行工作的,只有了解整个代码是如何执行的,你才能知道程序做了什么事情,结果应该是怎样的,否则出现bug你都不知道是怎么回事,更不用谈调试bug了.
我们的思维逻辑是借由代码来表达出来的,虽然逻辑思维是那样想的,但是我们所敲的代码也必须是那样按照逻辑思维执行,才能正确的表示出我们的逻辑思维,所以我们必须了解我们的代码是如何执行的;从这来说,简单容易的代码将会更方便我们理解我们的逻辑,我们也就更容易地敲出我们所想的东西.
感谢老师一学期的授课,谢谢.
小组贡献
在此次的软改project中,我个人感觉自己最主要的贡献是在于提供网站改进建议,还有网页页面的前端制作。因为用到了semantic-ui,所以自己去把这个ui的网站给看了一遍,基本掌握了这个ui的用法。所以前端制作起来还是挺轻松的。
心得体会
不知不觉一个学期就这样过去了,这一个学期软改课给我整体的感觉就是:挑战非常非常多。虽然自己上个学期上过web2.0的课,但是软改课却完全是另外一种感觉。在软改课上能够接触到更加深的知识和技术,可能因为是自己的学习能力不够好,所以一开始学习起来特别的吃力,一开始很多作业都不能够按时完成,总得去问同学怎么做。几乎都有了要退课的冲动,不过又想到是自己选的这个课,就应该坚持走下去。真的真的很累,也有点怀疑自己。但是后来也慢慢地熟悉了这样的节奏,所以学起来也就比较轻松了一点,不过难度还是挺大的。现在能够走到最后真的挺感动的。不仅仅是因为自己坚持下来了,更是因为在软改课上学习到了许多新知识,这才是我最大的收获。就连对CSS老师都会进行深挖,给我们说一些很有技术含量的东西,我真的挺佩服老师的敬业精神的。尤其是老师一天要上那么多节课,喉咙不舒服还要坚持给我们上课。在此需要感谢老师的无私付出!谢谢老师。Coffeescript,livescript,meteor,mongoDB等等东西在以前我真的是完全一点都不了解,王青老师给我们介绍了这些技术真的很实用。通过一学期的学习算是对这些技术也有了一点基础的认识。但是我知道这是远不够的。在以后的学习生活中我会继续去探索这方面的知识,继续开拓自己的视野。正所谓活到老,学到老。我是不会因为这个课结课了就停止学习这方面的知识的。
最后,还是要谢谢老师的付出和教导。还有TA平时的帮助和解惑。为这个课付出的时间,值得了!
小组贡献
参与了小组讨论,比如讨论小组作业要做的网页内容,网页上的一些细节处理比如我们需不需要;和另一位组员合作完成评论页面的内容,我和他进行了一些讨论,然后各自写了一个页面的布局,不过我的没有被用在最终的代码中。
心得体会
软改前期每周的作业还是有点难度的,每个周末都贡献给它了…不过每周都涉及到很多内容,比如接触新的语言新的工具等等,感觉非常的有意思,老师也会讲一些比较深的东西,比如session等,感觉光是上课确实是很不能完全理解的。后面进行大作业的时候,感觉小组内的沟通还有待改善,一般讨论也是在线讨论,有时候进度推进得有点慢,然后就是其实一个小组的人数还是比较多的,我最后分配到的任务还是蛮少的,感觉自己提升不大。
小组贡献
我主要负责的是my upload页面和内容的搜索和删除的部分。在搜索部分实现了可以按照card的title和author两个属性进行搜索的功能,而在my upload部分则实现了对card信息的过滤,让upload页面只会显示本用户上传的card。此外,我还实现了card的删除功能。点击删除的按钮就会对该数据进行删除,从数据库记录中抹除该信息的记录,使项目的基础功能更加完善。
心得体会
这一次的项目让我对软件工程化编写有了更深的体验和认识,懂得了软件过程改进中team里面的成员如何进行沟通与协作,如何提高程序编写的规范性和高效性。同时在技术方面,让我对meteor和它对应的一些package有了更广泛更深入的认识,也让我感受到了meteor框架的实时优势和方便快捷,并且这些知识能够转变为以后在web编写的好帮手,提高我的网页编程能力。