软工个人总结——詹元成
在软件工程即将结束之际,我觉得很有必要对这门收获”颇丰“的课程进行总结。
这门课可以算是我本科期间至今为止最虐的一门课了。但与此同时这门课给我带来的收获和其他课程相比,也不是一个量级的。下面我就在本课程中学习到的知识与能力、课堂、大项目与团队合作
三个方面作为我个人总结的内容。
知识与能力
上课最重要的是学知识,但这门课学到的不仅仅是知识,还有代码能力的提升。
个人作业,https://www.cnblogs.com/nkzyc/p/8669089.html
我们是做词频统计,看似不难,实则要求的能力非常多:代码的简洁规范、代码的优化、目标的完成效率、与老师助教的沟通等等。
因此,我提升了以下的能力:
优化算法的能力。会用多种方法优化算法。
合理制定计划。本次PSP表格提升了编程的效率,并使时间利用更加合理。虽然没有按照计划完成,但使时间利用更加高效了。
debug查错误。本次实验发现了很多bug,基本是采用debug设置断点查出来的。通过这次作业,加深了我对查错的理解。
linux环境熟悉。这次移植加深了我的Linux操作系统的理解。
库函数使用。能用库函数尽量使用库函数,出错误概率越少,封装好后CPU利用更高
结对编程作业,https://www.cnblogs.com/nkzyc/p/8890649.html
我们是对小学数学答题设计UI,在这里,我们学到了Qt的知识、代码的能力和与小伙伴合作的团队意识。
因此,我提升了以下的能力:
掌握了Qt的很多操作、C++的基本操作,如
成员变量和局部变量:对可能会修改的对象定义为成员变量,对只用一次的对象设为局部变量;所有MainWindow 类内定义的对象全部建立在堆上,所有主函数新定义的对象全部建立在栈上,
这样使用bug率最低。
定时器 QTime类:用好这个类并不是特别简单的,但有没有快速上手的办法呢,有的。微机原理大家都学过,通过观察可以发现,这个定时器和其中的定时中断有异曲同工的地方。
等等....
习得了领航员与驾驶员的工作方法:
由于结对编程组织性强,因此可以有效地利用各种资源,进行最佳的组合。在此次结对编程中,我的小伙伴有Java的GUI开发经验,而我对C++相对较熟,
我们得到了一个人编程体会不到的“各取所长”的优势。也就是说,当我们面对一个程序问题的实现方式时,如果其中一个人对某一些语句的书写很熟练而另一者不是很熟练,
那么熟练者可以快速书写代码,另一人在旁边积极提出有益的建议。这样,就较少出现个人编程过程中常有的“阻塞”情形,从而提升了编程的效率。
也正因如此,通过结对编程,我们俩的磨合速度很快,而且也很好的促额团队中的沟通交流。
网站大项目,https://www.cnblogs.com/ustc-fb/p/9402065.html
这个学到的东西就太多了,有关团队合作的部分我主要在后面展开, 这里主要讲技术层面的学到的知识。
合适的技术选型
在开发项目前我们需要进行技术选型。比如前端用什么框架?后端用什么框架?数据库用啥?当时很多组其实并没有特别在意技术选型,都会选择自己熟悉的或者擅长的框架进行大作业的开发。
但其实技术选型很重要。
开发语言采用html+css+js。开发工具采用集成了mysql+apache+php的xampp。编译软件采用phpstorm。
因此,我学到了html+css+js网页设计语言;mysql+apache+php的数据库知识。
html语言
文档声明 <!doctype html>
html标签<html></html>
head标签<head></head>里面会包含诸如页面标题,搜索引擎信息等相关的标签
body标签<body></body>页面的主体内容包含在里面。
数据库的使用
将data文件夹中的文件夹拷贝到XAMPP安装路径下的xampp\mysql\data\文件夹中,完成MySQL数据库的导入操作。
将整个文件夹拷贝至xampp\htdocs\文件夹下,完成文件代码添加工作。
在浏览器输入127.0.0.1/ index.php 可进入登录界面。
服务器使用
阿里云服务器相当于有两层防火墙一层是阿里云服务器控制台的安全组,还有一层是服务器的防火墙,当外网访问服务器端口时候,首先要考虑在安全组里面有没有添加对应端口,否则无法访问。
可以使用xshell工具连接服务器比较方便。
课堂
第一就是写读书笔记的体会
我们的知识体系是通过课内外的自主学习而逐渐建立起来的,尤其是软工的学习。读书是搜集和汲取知识的一条重要途径。我们从课堂上掌握的知识不是很具体和容易理解的,需要再消化才会吸收。
大量的阅读,可以将自己从课内学到的知识,融汇到从课外书籍中所获取的知识中去,相得益彰,形成“立体”的,牢固的知识体系,直至形成能力。读过多本软工的书籍后,让我对程序员的养成有了
很深的认识。
第二是上课的感受
邓老师教学风格与其他老师不太一样。他不会太讲一些知识点,而是教我们如何做好程序员。甚至有堂课还请了创业家给我们分享经验。
比如教我们学会创新:
抓住痛点。如果切口不够痛,就要做到足够爽。如果既不够痛又不够爽,就要看愿景以及迭代下去的正确概率了。
怎么确定这一点?基本上把自己变成小白用户,直接感受就好了。
形势把握。准确地把握当下的外部情势,才可能与用户潜在的趋势互动。
男神李健广受欢迎,很大的程度是暗合了人们对浮躁热闹歌曲的疲倦,心灵需要安静下来。而在此前,民谣和慢歌都很难在选秀中获得加分。
等等。
从课堂中学到的更多的是编程的思想和成功的方法。
团队合作
一开始,我们团队是一个程序由一个程序员开发时,程序员总是敷衍了事,效果较差,如果由两个人来开发,他们又经常性地互相推诿,效果也不好,由三个或更多的人负责时,效果更差,永无成事之日,真是
严重影响了我们的效率。后来,我们在磨合中慢慢形成了以下的好现象。
小结