这个作业属于哪个课程 | 2020春|S班 (福州大学) |
---|---|
这个作业要求在哪里 | 个人作业 |
这个作业的目标 | 软件工程实践总结&个人技术博客 |
作业正文 | 个人作业 |
其他参考文献 | 博客园博客 |
一、回望
(1)对比开篇博客你对课程目标和期待,“希望通过实践锻炼,增强软件工程专业的能力和就业竞争力”,对比目前的所学所练所得,在哪些方面达到了你的期待和目标,哪些方面还存在哪些不足,为什么?
增强了软件工程专业的能力,达成了自己的目标。但是在更加了解软件工程之后,才发现当初定的目标并不是那么的具体合理,很多东西当时并不了解不知道什么样的程度才算得上‘有能力和有竞争力’。所以我感觉也算不算达成目标,从现在的角度看离这个目标看还是很遥远。
(2)你在第一次作业的个人简历中描述了这门课程结束后,你预期你将增长的能力、技术、技能,并绘制了学习路线图。对比当前你的所学所得,你达到了当时的预期值吗?
差不多,算是达到了吧。因为一些原因,学习的方向有一些改变,但是做出来的东西差不多,所以,我自我感觉某种程度上达成了预期值。
(3)哪一次作业让你印象最深刻?为什么?
第一次团队作业。让我们一天之类和几乎是陌生人的同学做出一个能用的东西,一开始是很懵的。不过还好,运气好,要做的东西之前做过类似的,不然在一天内再学习再熟悉再开始做,肯定做不好。
(4)在课程问卷中,我们统计了你在课程上花费的精力和提升;现在请你再次将这些数据罗列出来,作为个人的记录。包括以下内容:
统计一下,你在这门软件工程实践中,一共完成了多少行的代码;
4000左右。但是多余的有点多,我感觉写好来有用的只有2000左右。
软工实践的各次作业分别花了多少时间?(做一个列表)
作业 | 时间/min |
---|---|
软工实践寒假作业(1/2) | 120 |
软工实践寒假作业(2/2) | 300 |
结对第一次—疫情统计可视化(原型设计) | 180 |
团队作业第一次—团队展示和项目展示 | 120 |
结对第二次作业——某次疫情统计可视化的实现 | 300 |
团队作业第二次——团队Github实战训练 | 420 |
团队作业第三次—项目需求分析 | 300 |
团队作业第四次—项目系统设计与数据库设计 | 240 |
个人作业——软件评测 | 300 |
团队作业第五次——站立式会议+alpha冲刺 | 600 |
团队作业第六次——beta冲刺+事后诸葛亮 | 300 |
个人作业——软件工程实践总结&个人技术博客 | 120 |
累计花了多少个小时在软工实践上?平均每周花多少个小时?
累计55个小时,平均每周约2小时。
学习和使用的新软件;
Xmind,Cmd Markdown,磨刀,腾讯通讯工具
学习和使用的新工具;
Client接口工具,Apache
学习和掌握的新语言、新平台;
yii2,nodejs,vue
学习和掌握的新方法;
掌握了如何适当的劝队友干活的方法
工程能力的提升;
从一个啥都不会的five提升成能做一点东西的five
团队合作上的提升;
能够和有基础的队友尽快做出能用的软件
其他方面的提升;
培养了一些抗压能力,来自队友来自老师的压力。
二、团队总结
你是组员还是组长?你觉得你自己在哪些地方做得好?你觉得自己还有什么可以改进的地方,具体可以怎么改进?
我是组员。我在配合组长工作方面做得较好。可以改进的地方有多学点东西,提高自己的水平,在合作时候带带队友。
你觉得你的组长(组员们)在哪些地方做得好?你觉得ta(ta们)还有什么可以进一步提升的地方,有什么具体的建议吗?
组长在负责任方面做得很好,很多事请都亲力亲为,但是在分配工作引导队员方面做得不够好,简单点就是太好说话了,啥事都自己做,就没合作内味了。
《构建之法》上说团队的发展有几个阶段,你的团队都经历过么,最后到达了“创造”阶段了么?(参考《构建执法》第17章 人、绩效和职业道德)
萌芽阶段 有
磨合阶段 有,但可能比较少。因为开始认识没多久就开始一起做事了,之后的都算工作上的磨合了。
规范阶段 可能,没有。个人感觉合作起来比较乱,没有规范。
创造阶段 按书上的说法,应该也没有。因为没有继续合作下去,而且之前的合作并不是那么顺利。
从开发的角度,你在团队中担任了什么角色?你是否完成了该角色的任务?现在你觉得你适合该角色吗?
三、人月神话
1、怎样证明你学会了软件工程?以下要求你们的团队达到了哪几个?请在随笔中用数据证明上述内容或侧重选择之一。
虽然不想承认,但是好像一个都没达到。
(1)研发出符合用户需求的软件
这个,我感觉真没人用我们的东西,一个社交网站没有人群基础就不会有人用吧。数据库的读取记录也就几百条,还就全是我们自己人测试用的。
(2)通过一系列工具,流程,团队合作,能够在预计的时间内发布 “足够好” 的软件
说实话我们的流程和团队合作方面做得很差。有按要求的进行定时的进度检查,但是因为队友和组长的配合并不是很好,没啥用。
(3)并且通过数据展现软件是可以维护和继续发展的。
至少后端方面没有继续维护的打算,代码写的很乱,完全没有注释,只是赶着做完然后去做别的事情。文档只有接口文档,task/bug是前端做的我这边不大懂,但我猜他们必不可能有记录。
2、写下属于你自己的人月神话——个人或结对或团队项目实践中的经验总结+实例/例证结合的分析,字数不限,开放命题,可以使用你自己喜欢的方式表达
感觉自己不配写类似人月神话这种东西,我感觉我所处的环境有点微妙,不大适合总结些经历啥的。可以说的应该只有合作方面的。在这种特殊的时期,这种特殊的合作方式,带来很多交流上的困难,我觉得更有影响的是--没有一个很好的互相督促的方式。大家都在家里,我想大部分人的情况应该和我差不多--不想干活!'我要考研''我家里有很多事情''我生活不如意了没心情',有无数的借口替我们的偷懒找理由。导致的情况就是,想干活的人被不想干活的人逼的没法好好干活。举个例子,我们一起做一个web应用,我是做后端的,我需要前端的兄弟总结下需求告诉我我好去细细的写方法,我第一天发了通知让大家开始工作,没人理我,我又不是组长不好做些什么动员的说辞,我就当大家忙了。第二天,我又提醒量一次,有一两个人理我了,这事离deadline还有个5天。第三天,大家该交需求给我了,我又提醒了一次,这时我才发现,大多数人这时候才开始干活。这种情况,除了我替他把他的活都干了还有什么办法?通过网线到他家逼他开始干活?我急了,已经是急了,我开始放狠话,开始暴躁,开始折磨队友,队友有了反应,我很开心,我开始觉得队友开始干活了。但是我错了,他们不到deadline根本不会开始。我很难受,但又莫得什么办法。项目结束,我自己又开始和其他人做另一个项目,我又遇到的同样的问题。我意识到之前出现的情况又要出现了,我开始提前想办法解决。我咨询了一个做管理方面的长辈,想问问他如何‘调动队友的积极性’--简单点就是‘如何让我的傻逼队友干活’。他告诉了我一东西,我觉得很有用。首先,我们的情况是,我们队友和我们不是上下级关系,我们之间没有利益关系,我没办法‘多给点钱’这种方法让他们干活,就只能另辟蹊径。然后,我们的傻逼队友可能已经抱着让其他人做就好了的心态了,当然我以前也有过这种心态,就是队里有大佬可以一个人做完,我啥都不干就能白嫖分数爽的一。那我总结到的办法是:
一、自己多干点,以此带动别人
这个办法是最蠢的办法了,因为你不知道那的队友他是不是个正常人,会被这种行为打动,不过总比啥都不做好。然后把你的所作所为展示给队友,一般有羞耻心的队友看到那这么多,多少会有点羞愧,这种方法可以刺激一些良心未泯的人。
二、团建
就是增加沟通,熟悉彼此。对你的队友来说,你就是个被老师强行分配来的人,人和你不熟,为啥听你的话?诶,那我们熟了就不一样了,我可以像朋友一样在聊天的时候督促那干活,至少这个督促的量提升了。我在你吃饭的时候叫你干活,在你洗澡的时候叫你干活,在你睡前再叫你干活,就折磨你,你不干活那就一直折磨。这种方法可以刺激一些受不住折磨的人。
三、人格魅力
这种啊,就比较高级了,应该大家都有点概念,就是队友被你的魅力蛰伏了,心甘情愿为你卖命。但是这种方法,没体验过,不做评价,只是给大家个方向。
四、坏方法
说是坏方法但可能是最好的方法,我了解到的有‘画饼’‘洗脑’,恩,字面意思。简单解释下就是‘诳’你的队友,你想想你都软硬兼施了,到这个地步了用上‘诳’好像也没什么不妥,而且我们的初衷是好的,很合理。这个方法需要的要求比较高,一般至少需要你的智商情商比你队友高。但是,都被用上这种方法了,那智商,可见一斑,是吧。反正是很有效的方法,不多说了,再说不合适了。
以上是我学到的方法,但是并没有全部都实践过,我个人认为还是很有用的。
四、建议
对于下一届同学,或者大一的同学,你想说:
还是,有时间尽力多学点东西吧,不然到用的时候才发现自己啥都不会,不仅影响自己还影响和你合作的人,就很尴尬。
对于自己今后,你有哪些建言?
自己给自己今后建议好像有点离谱。而且‘建议’还打错了。自己对自己的建议不如说成是期望,自己‘期望’自己能这么做。期望自己能少偷懒点吧,虽然这种‘建议’感觉没啥用。
对于助教工作,你有哪些建议?
对于软工实践课程,你有哪些建议?对于软工实践课程的上课形式和内容,你有什么具体的意见和建议?在哪儿需要强化或者剔除?
建议把‘提建议’环节放到出成绩以后,这样同学们才真的敢‘提建议’。不然因为种种影响我们哪敢提啊,这不找死吗。虽然知道老师和助教们都非常理性的,但是,还是不敢真提那种特别刻薄严肃的建议的。因为这次疫情带来的影响,我们都没法体验‘正常’状态下的软工实践课,所以我感觉我们的建议并不是特别有用。
首先我感觉组队要有针对性一些,比如有给一定特长的人分分类什么的。
然后是选题,让我们自己选题会限制我们自己的手脚,我们总不可能去选自己完全不了解的东西去做吧。
然后是评分,我个人认为,让我们自己客观的去给其他组的评分,实在不太现实。我们自己都不清楚自己做得好不好,如何去评判别人做得好不好。而且肯定是会抱着一定的保守的心态去评分的,不太有可能把某一个组评的分特别低或者特别高即使他们做出来的东西特别差或者好,我们都是学生,如果没仇的话总不希望自己的同学挂科吧。建议找几个愿意的同学专门负责评分。
五、个人技术总结
在第一次作业“准备篇”中你为自己制定了学习路线,现在学习了怎么样了?你在团队开发中是否担任了开发角色,你在开发中解决了哪些技术问题?获得了哪些技术进展?
第五个部分中要求你从个人技术学习角度和团队开发技术角度中选择你最擅长的一个相关技术,进行分析描述并总结。
相关技术的粒度不宜太大,比如不应该选择诸如Java语言/Html/JS这样的大类,而是一个较细的分类,如Axios的使用总结、Spring Boot上传和下载文件、在团队开发中我采用的推荐算法等。
要求为这个相关技术撰写一篇博客(单独,在第五部分仅需要提供链接和技术概述),
博客的内容应该至少包括以下部分:
1、技术概述
php的yii2框架的应用。用来做web的。学习他因为之前了解过一点,图方便就继续学了。难点,主要是配置到实际应用上,因为没学过apache具体是咋实现的,配置什么的只能看网上怎么说我就怎么写,出了错也不好发现,就会浪费很多时间。
2、技术详述
3、技术使用中遇到的问题和解决过程
安装Yii:在选择开发模式的时候可能cmd会闪退,更改你的php版本
php7,2后不支持object类yii2 2.0.13前的版本不可使用 暂时改为php5.5.12 之后尝试update yii
跨域问题:后端处理
尝试设置控制器的behaviors
尝试配置apache
尝试vue中使用jquery的type:jsonp
尝试header里面加入: 'Access-Control-Allow-Origin':*,
Apache配置vitualhost不生效 最可能的原因是你写的不规范写错了或者一些php拓展没有开 多百度百度就行了
虚拟主机多接口实现 记得开服务器的接口 就是在控制台上面开 我做了两次忘了两次人都傻了
php $_POST获取不到数据:更改php.ini enable_post_data_reading = On 或者直接在$_POST前加个@忽略提醒 或者用yii里的加载模型方法
yii的控制器名字不能写大写 这是里面的配置写死的 如果要写大写要改里面的配置 自行百度
4、总结
php是个很容易学习的语言,很容易上手,相对java结构较简单,但是速度比java慢很多,适合工程量小的快速开发。