软工实践总结

一、个人成长

1.学习和使用新软件

1)Axure

开始软工实践除了写博客外我做的第一件事就是设计原型然后画原型图,所以我学会使用的第一款软件就是Axure。Axure是一个快速原型设计工具,功能很强大,但由于是可视化界面,不用进行编程,上手很快,在学习使用软件的时候没遇到什么问题,后来又找到中文版的Axure,所以用起软件来比较得心应手。

2)海马玩模拟器

由于我们开发的是Android软件,所以所用的工具是Android studio,然后其自带的Android sdk 模拟器运行起来非常慢,每次开机都要花十来分钟(电脑内存是6g),有时还打不开,所以在同学的推荐下我安装了海马玩模拟器来代替Android sdk 模拟器。虽然运行起来快,但是不知道是什么原因,当用Android studio跑代码的时候会检测不到海马玩模拟器,需要从新启动一次海马玩才行,所以我建议还是找过一个更好的模拟器来代替。

3)navicat

Navicat 是一套快速、可靠并价格相宜的数据库管理工具。Navicat 也是图形化界面的工具,所以上手也不难,它可以让你以安全并且简单的方式创建、组织、访问并共用信息。专为简化数据库的管理及降低系统管理成本而设。学习使用这个软件是因为在初期开发alpha版本的时候我负责本地数据库一块,然而我是初学者,先要学习如何建立Android  数据库及对数据库的操作,所以需要经常查看本地数据库的情况,但是Android studio不能直接看本地数据库,所以只好将本地数据库导出,然后再用Navicat查看。

4)赛风

因为在编程的过程中经常会遇到一些问题,用百度和必应找不到办法的时候只好FQ用Google。但是最近替换host来FQ的方法不管用了,于是队员发给我赛风这款软件,可直接FQ,但是有时会不稳定。

5)XAMPP

XAMPP(包含 MySQL、PHP 和 Perl 的 Apache 发行版)是一个功能强大的建 XAMPP 软件站集成软件包。在开发Beta 版本的时候我是负责服务器这一大块的,而且决定用PHP来实现,所以xammp是必不可少的工具。它虽然是一个非常实用的工具软件,但是开始不知如何使用,也没学过php,所以也无从下手,但是后来通过极客学院学习,最终还是掌握了如何使用。

6)notepad++

notepad可以用来制作一般的纯文字说明文件,也十分适合编写计算机程序代码。Notepad++ 不仅有语法高亮度显示,也有语法折叠功能,并且支持宏以及扩充基本功能的外挂模组。但是我只用它来转化php文件的格式,其它功能会在以后的学习当中掌握。

7)花生壳

在还没买服务器之前,服务器搭建好之后,要进行测试,所以这个时候在合作小组大神的指导下使用这款软件将自己的电脑作为服务器以供软件测试。

 

2、学习和使用的新工具

1)CuteMarkEd编辑器

 因为老师建议写博客用markdown,但是一开始不会用,所以下载了cutemarked编辑器边学边写,但是现在依然比较不习惯用markdown写博客,不过听说markdown有很多优点,因此以后会尽量用markdown来写博客。

2)Github

GitHub 使用 git 分布式版本控制系统,它是一个很好的项目管理工具。但是要是没有先把github先学精的话它将会是一个灾难,你可能会碰上各种无法解决的麻烦。刚开始,我是自己看着别人的博客一点点摸索如果使用github的,我以为github只要用到git clone、git add、git commit、git pull几个指令就能轻松使用,但发现github的博大精深远不止这点,只会用这几个指令是远远不够的,因为它们没办法解决大部分的冲突,经常当和并队友的代码和上传代码的时候会使项目奔溃。后来,经过队友进一步的学习和探讨,总结了一个我们队管理代码的方法,首先把除队长以外的队员push的权限关掉,这样先让队长审核代码后再将代码push上去,可以防止队友误操作。之后队员再将项目fork到自己的个人仓库中,再用git clone指令将项目考到本地仓库当中。然后根据远程,创建了一个dev分支用来开发,再用git remote add upstream ‘团队项目地址’来同步项目,这样,以后每次操作就只需要先git add、git commit、git fetch、git merge、git push最后再网页上pull request就好了。但是git merge的时候经常需要处理冲突,不过这样有序的做下来会比以前那种方式好很多,不会像以前一样时常奔溃(有几次差点把项目给毁了,还有碰到很多奇葩的情况,这里就不说了),没办法就只好版本回退。总之github是一个非常好用的管理工具,前提是要学会如何使用,虽然现在已经学会了,但感觉还是有必要做进一步的深入了解才行。

3)PowerDesigner

Power Designer 可以方便地对管理信息系统进行分析设计,它包括了数据库模型设计的全过程。Power Designer可以制作数据、概念数据模型、物理数据模型,还可以为数据仓库制作结构模型,也能对团队设计模型进行控制。一开始,我用它来设计我们的数据库,神奇的是设计完物理数据模型后它可以直接生成数据库的代码,不需要自己一点点的敲,感觉非常方便。

4)PHPUnit 

PHPUnit是一个轻量级的php测试框架,我就是用它来测试我们php文件的。这里还是要先感谢一下队员,因为PHPUNit的使用是他先去学习如何使用再教我用的。用PHPunit测试php文件有一点比较麻烦的是php必须写成class才能进行测试,而我之前写的php文件都不是class,这给测试造成不小的麻烦,所以当我开始测试的时候把php文件都重构了一遍,工作量还挺大的。不过这还不是重点,重点是如何写测试类,目前为止我对PHPunit了解还是非常有限,所以会写的测试类也不多,有些php文件还想不到要怎么测试,所以我还会继续学习测试,争取在学期结束前测试完所有的php文件(虽然之前老师说要在编码的同时进行测试,但由于时间有限,需要在规定时间内完成项目,就没办法做到这一点了)

 

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

新语言:php

因为我负责本地和服务器进行连接这一块,需要写我们项目的API,所以在队长的要求下我在项目之处先学习php。PHP 是一种HTML 内嵌式的语言,是一种在服务器端执行的嵌入HTML文档的脚本语言。php并不难学,我先到图书馆借了几本书来看看,但是觉得学期来太枯燥,所以又上了极客学院,边看视频边翻书和边敲代码相结合进行学习的,但除了时间花了较多外,学习php也没遇到多大困难,就像很久以前老师说的,语言都是相同的,只要学会了一种程序设计语言,再学其它语言就比较简单了。但是可以说因为以前敲的代码比较少,现在的编码能力提升的空间还是相当的大。

 

新平台:PHPstorm、Android

因为要编写php,又是在极客学院学习的php,所以我下载了PHPstorm进行编码。PHPstorm非常方便,其旨在提供用户效率,可深刻理解用户的编码,提供智能代码补全,快速导航以及即时错误检查,功能也是蛮强大的。

项目之初,由于我负责本地Android数据库的创建和初始化,所以也就学习了一下如何使用Android studio。Android studio可以说是一个比PHPstorm功能更强大的开发平台,但是其安装和配置环境变量确实挺复杂的。

 

4、学习和掌握的新方法

1)调试

因为做项目以来,我一直都在跟数据库打交道,要熟悉数据库的各种操作和SQL语言,也因此要各种调试。写php遇到对数据库操作不成功时,最直接最好用的方法是打印出每个变量,每个SQL语句,哪里出了问题就可以一目了然,然而都没问题时就得另找它法,因为有可能是php本身写的有问题或者是服务器有问题。

 

2)团队学习

做项目以来,由于是新手,和队员之间的沟通就显得格外重要。因为时常会遇到问题,没办法解决的情况,这个时候请教队友,和对友一起解决就非常高效迅速了。有时没思路时和队友沟通一下,问题可能就迎刃而解了,所以我觉得和队友沟通,共同学习是一个非常好的学习方法。

 

3)整体学习法

由于做软工需要学习的东西非常多,没有太多时间细细的学习,这个时候就只好先把要学的东西先大概的整体学习下来,之后要用到什么知识在去一点点的研究。

 

4)使用框架

在创建本地数据库的时候,为了赶时间,所以学了一个快速开发工具,虽然学习框架要一点时间,但是学完之后运用框架可以使项目进展的比较快。不过有一点需要注意的是在使用框架时你要确定框架是否符合自己的需求,像这次因为欠缺考虑,我们使用的框架到后期不能满足我们的要求,所以只好临时换框架,阻碍了项目的进展

 

二、人月神话——项目实践中的经验总结

1.学习能力很重要

这次软工给我的启发就是,学习能力非常重要,不管是学习上还是今后的工作,我们遇到的问题很多会是我们用已有的知识解决不了的东西,所以这个时候只能在有限时间内马上学习,增加自己的知识储备,提升自己的能力从而来应付问题。

2.团队合作的重要性和如何进行团队合作

团队合作是一种为达到既定目标所显现出来的自愿合作和协同努力的精神。它可以调动团队成员的所有资源和才智,并且会自动地驱除所有不和谐和不公正现象,同时会给予那些诚心、大公无私的奉献者适当的回报。真正的团队合作必须以别人“心甘情愿与你合作”作为基础,而你也应该表现出你的合作动机,并对合作关系的任何变化抱着警觉的态度。团队合作是一种永无止境的过程,虽然合作的成败取决于各成员的态度,但是,维系成员之间的合作关系却是我们责无旁贷的工作。在追求个人成功的过程中,我们离不开团队合作。因为,没有一个人是万能的,即使神通广大的孙悟空,也无法独自完成取经大任。然而,我们却能通过建立人际互赖关系,通过别人的帮助,来弥补自身的不足。对于团队而言,伙伴之间的友好相处和相互协作至关重要。这样一来,我们就能够实现个人与团队的共同成功。正是团队精神让我们学会了包容、谅解;学会了在危险的时刻首先顾忌他人;学会了团结、学会了忍让。

 

3及时完成当天的任务

只要有时间,有精力,就去做自己该做的事,不要一拖再拖,越拖到后面越不想做,等到问题出现时可能会严重到无法弥补。当天的任务当天做完,不要拖到明天或其它什么时间,因为你会发现每天都会有新的任务,新的问题需要解决,要是今天不完成的话,任务会越堆越多,以至于到后面必须每天都要熬夜赶进度,都可能完成不了。

 

三、对下一届实践的建议

1.学习github很重要

在假期牺牲一些时间好好学习一下github,不然后面当你要使用github的时候你所牺牲的时间绝不止那么一些。

 

2.有时间多学习一些语言,更要学精

在大一大二比较有时间的时候,多学习一些语言,比如java、php等今后可能会用的到语言,不要到时候临时磨枪上场赶软工,会发现时间很不够用,有时不得不牺牲其它课程的时间在软工上面。

 

3.不要因为不会就放弃

有些人因为一开始什么都不会就什么事都不想做,能推掉的事就推掉,这样是学不会任何东西,也不会有任何长进的,重要的是要调整好心态,碰到不会的就学,学不会就问,没有一个人一开始就什么都会的,大家都是在问题和挫折中摸爬滚打一点点学习,使自己得到锻炼的。

 

 四、对未来的你的期许

1继续学习php

因为只是临时学习了写php的知识,很多php的精髓都还没学到,希望软工实践结束之后继续学习php。

2学习HTML5

因为以后有想朝网页制作那方面发展,所以会利用假期时间好好学习html5

3.进一步学习github的使用

觉得对github的认识和使用还不够,今后会继续研究

4.学号英语

因为不管是编程还是学习语言、看文档或是学习其它比较新的知识时,所用的语言都是英文,所以学习英语很重要。

 

五、团队展示

 

 

 

 团队博客:http://www.cnblogs.com/teamftd/p/4929007.html

 

posted @ 2015-12-20 16:56  Livingston  阅读(433)  评论(3编辑  收藏  举报