软件工程实践总结作业——个人作业
软工实践课一个学期过去了,对比之前毫无任何项目开发经验的我而言,现在对于项目开发的流程与编程有一定的了解。那我就谈谈这门课给我带来的收获吧。
回望
1. 对比现在的和开学初博客开篇的课程目标和期待
开学初,我认为只要能够完成目标,并且取得较好的成绩就不错了。现在我认为,我们可以做的更好。之前的期待与现在的期待都不敢太高,因为毕竟第一次开发项目,只要开发出用户可以满意的产品就很不错了。
2.这门课程的实践给我带来的提升
这次项目开发,我学会使用github管理项目开发流程,博客园写博客,学会cmdMarkDown这款软件的使用方法,而且变得经常逛IT技术社区,像csdn、开源中国以及segmentfault等等。经常去慕课网、网易与课堂等自学java与项目开发知识。我们使用IDEA软件和SpringMVC+Maven+Hibernate框架进行开发,为此还去图书馆借了Spring 3.0和Hibernate相关书籍。开发过程中我掌握了使用Unitis测试各个层,由于SpringMVC的架构非常清晰,我为此还学了html与css的一些知识,学会用浏览器调试html代码。
我的人月神话
项目实践中的经验总结+实例
1.善于使用开发框架
特别是对于我这种毫无开发经验的人来说,不使用框架进行开发是十分困难度的。使用一个合适的开发框架对开发者而言是件十分方便的事,因为我们只要配置好数据库事务和几个xml文件(主要是拦截器),配置好服务器,然后写好其他各个层的代码与jsp页面就可以了。怎么样?简单不?
2.善于调试代码
经过这次项目开发之后,我发现之前上C++老师要求的代码调试的重要性显示出来,以前只知道代码运行过了就可以,现在知道代码的作用是她能起到我们所要求的功能才行。我现在知道看错误日志,知道如何使用百度解决各种各样的难题。代码调试这个工作最为繁琐,有的bug隐藏的很深不易发觉,比如我之前那个文件上传,就浪费我好长时间。后来才发现Maven没有把我在main文件夹下的uploads/temp文件打包到target文件夹下。这样我只能自己在target下新建uploads/temp目录。但是我根据日志文件却找不到错误的原因竟如此简单。还有一个是html页面加载css文件的问题。因为我们再Controller类中处理请求时会返回一个jsp页面,只有我们将css文件内容放在jsp页面时,jsp页面才会加载css等静态资源。但这并不是一个好办法,为此我们去百度,去问别人找到一个办法,那就是使用css在服务器站点中的路径,路径可以是绝对路径或者相对路径。因为使用绝对路径比较麻烦,我们就通过浏览器的F12下查看network查看请求状态,不断调试相对路径。还有关于unitis测试各个层并不会很麻烦,csdn上有很多教程,并不会很麻烦。
3.学会使用github等开源项目管理平台
在还没用github之前,我们都是使用QQ互传文件的,这样一来,我们的代码同步就有了问题,有时团队中有一个人写了一些代码,另外一个人写了一些代码,这样两个人的版本就不一样了,多个人的话不及时整合项目版本
会很尴尬。有时我这边的版本都会慢队友一拍。github管理代码十分方便,只要定期将自己的代码整合到github上,然后又指定一个人管理代码冲突与分支整合就可以了。
4.团队交流十分重要
团队过程中,有一个领导力出众的人十分重要,如果这个人对项目开发有经验更好,团队中有一个禁忌是团队有时候缺工时间过长,有时候却又十分赶。这个是因为团队没有定时开会交流的原因,虽然成立QQ讨论组已经可以很好的进行交流,但我要说的是线下的交流更重要。在这方面,我舍友的队伍做的非常好,我们就稍显不足。他们组几乎每天晚上都会开会,报告进度,交流遇到的各种问题以及将要完成的任务和分配任务的工作。有时候泡出问题很重要,如果一个问题自己在1-2天内无法解决,就应当主动提出来,避免将时间浪费在重复的失败之中。团队的交流大有裨益,因为每个人都有擅长与不擅长的,每个人会遇到的问题都不一样。还有一点是,要充分调动成员的积极性,一个团队只有一个人写代码不是真正的团队,真正的团队要让其成员有事可做,让他知道他的工作对整个团队而言是重要的一部分。一句话,团队要觉得自己被需要才会努力为这个团队工作,如果成员的任何工作都被否定的话,它就会觉得自己是多余的。
对下一届的建议
学妹学弟们,不要整天玩游戏看动漫,该学的东西还是要学,早点接触java或c#语言,多去慕课网、极客学院等在线网站学习,早点接触github,多去知乎、博客园、stack Overfloat等IT社区。而且,c、c++基础要打好,否则是很吃亏的。写代码的时候不要以为能运行就过了,把代码搁在一边,要多调试。还有进行实际开发项目的时候要多多使用框架,前端的知识也要了解一些。许多工具会使用就行了。
对未来的期许
我不知道自己会不会进行软件开发,但是任何事情的原理应该是一样的。做好了这一样,那一样的事也能做。一分耕耘一分收获,只有把握现在,付出努力,才会有美好明天。
随意发挥
软件工程这门课真的很意思,我之前还不知道服务器是什么样子的,也不知道怎么远程连接数据库,直到我们租了个阿里云服务器之后,我才知道服务器就是个计算机,把项目部署到服务器跟本机完全一样。果然是纸上得来终觉浅,绝知此事要躬行。想要知道什么是真的,就大胆去试吧。