菜单 学习猿地 - LMONKEY

VIP

开通学习猿地VIP

尊享10项VIP特权 持续新增

知识通关挑战

打卡带练!告别无效练习

接私单赚外块

VIP优先接,累计金额超百万

学习猿地私房课免费学

大厂实战课仅对VIP开放

你的一对一导师

每月可免费咨询大牛30次

领取更多软件工程师实用特权

入驻
334
0

软工实践总结

原创
05/13 14:22
阅读数 8486

一、回顾

1、 开学期望

1) 对比一下

软工实践项目课程的自我目标
开学的期望还是比较简单的--懂得“android语言”--正确表述应该是“android开发过程”。然而事实上我好像是没有达到这个目标的,因为我临时选择了后端的开发!现实就是存在了不确定性。不过这并不意味着我什么都没有学到,只是学到的是php的编程而非预期的android编程样而已。

2) 提升

学习和使用的新软件:

  • phpstudy。算作使用,不算学习,毕竟具体操作的东西太少了。掌握指数:+
  • phpstorm。php编程的优秀助手。掌握指数:++
  • typora。markdown编辑器。表示不怎么用,都是直接在网页敲的,不过可以markdown导出其他格式,还不错。掌握指数:+

学习和使用的新工具:

  • Linux。服务器是Linux系统,那么简单的使用还是必要的。掌握指数:+
  • Xshell。链接云服务器工具,挺好用的。掌握指数:++
  • git。差点忘了这个重头戏了。教程看了很多遍,这个工具确实很强大。能够简单使用吧。掌握指数:+++
  • phpUnit。php测试工具,怎么说呢,可能连初窥门径都没达到,随缘吧。掌握指数:+
  • SourceCounter。代码统计工具,临时用的。掌握指数:+

学习和使用的新语言和新平台:

  • php。后台使用php处理数据。仅限简单的数据处理。掌握指数:++

完成的代码:1376行。(统计工具:SourceCounter)。

掌握和学习的新方法:
Learning by Doing(做中学)

其他提升:

  • 敲代码的遇到问题后解决问题的耐心应该是大大地提高了吧。
  • 关于服务器的搭建和运作也有一丁点儿的了解。
  • 对ide有进一步的认识,例如workspace和project的概念。

二、经验总结

  • “做中学”这个学习方法很适合软工实践这门课程。更开始完全不懂php编程,为了项目任务,简单地看了一些基础知识,然后在队友的指导下开始写,边写边学,不懂得的再慢慢查,或者问问队友,这样的学习效果还不错。不过这样或许对理论的掌握不够好,但是入门来说很适用。
  • 代码出错了,可以有一个小小的记录,这样下次出现类似的错误就有可能很快找到问题所在。
  • 后台人员表示接口文档好重要的说,经常改接口文档,然后很有可能导致键名对不上。改接口的话,要记得通知和同步!
  • 暂时觉得git还是好好学,学会用,貌似很不错。
  • 不要经常熬夜,熬夜伤身体,这个大家都晓得,但是却办不到。当你听到“某某猝死的时候”,你就懂得什么是恐惧了。
  • 任务赶不完?那估计是偷懒了。
  • 队友之间沟通好。
  • 遇到问题,有一些洋文的网站的也可以参考一下,例如:StackOverFlow(墙?)

三、建议

  • 下一届:软件工程课建议同时选修软工实践,软工实践强烈推荐栋哥。理由,栋哥的软工实践安排计划井井有条,可以参考栋哥博客本学期的安排情况,这样带来的好处就是由于他懂得学生的能力,所以他会合理安排作业,以便大家赶得上进度,以便大家不用因为拖延症而最后赶工去完成任务。还有栋哥说的,让大家比别人有更充足的时间去准备其他科目的复习,我觉得他办到了(当然这点可能对有的同学来说不重要)。
  • 对开学初的期许(换句话说,这其实自己的反省、悔恨。哈哈):大一的时候,更应该把追剧看小说的时间(或者说,剧可以追,小说可以看,但是无所事事的时间不应该无所事事)拿来刷慕课网或者网易云课堂,更推荐前者。

四、我的团队

我觉得我的团队还是很不错的。并不是随口说说。

  • 组长不是很厉害,但是态度超级积极啊,例如什么要完成什么文档,义不容辞地去做,有任务组织大家一起开会解决。
  • 开会经常有笑声,帮主的功劳很大。
  • 还有帮主也超级积极,经常拦文档的任务,而且当时间要赶不及的时候还会帮队友一起做。
  • 阿常是个优秀的UI设计人员,认真、好学,而且好专心。
  • 小曹比较逗比,而且比较随性,和他讨论问题会很轻松。
  • 秋鑫也是很有干劲,感觉他的工作量超大,但是也能按时完成。
  • 我就比较有耐心吧,虽然有惰性,但是在队友的催工之下还是很努力地做事的。
  • 没有出现不愉快的时候!虽然有队友犯错的时候(例如我),但是队友很宽容。

达到的阶段:构造阶段。

五、代码质量

感觉自己的代码不怎么优秀。

  1. 代码的命名问题
    从alpha到beta,有一部分的变量的命名不统一。例如:帖子id,在alpha的时候有时候叫messageId有时候叫postId,beta的时候叫做messageId;图片,picture和photo。这是由于数据库文档和接口文档的命名有出入导致的。还有大小写问题:username和userName,由于没有注意,所以两种命名在两个版本里面都有穿插。
  2. 代码缩进问题
    即使我们的代码规范是有的,但是,一些个人习惯带来的缩进问题还是没有严格执行,例如“if...else...”句式的缩进就极其混乱。
  3. 代码风格
    风格不统一。数据库语句有时候是赋值在一个变量里($sql),再通过“mysqli->querry($sql)”查询,但是有时候是直接把语句写在了参数里。
  4. 代码设计
    感觉代码设计上不是特别科学。一个文件用来获取数据,一个类用来做所有操作,这样有点头重脚轻的感觉。以获取帖子列表为例。
    用来做主要操作的类:(文件1)
<?php
/**
 * Created by PhpStorm.
 * User: linmouren
 * Date: 2016/11/10
 * Time: 21:29
 */
//写在前面
//修改于12月15日晚
//由于要传回发帖者的用户名和发帖者的头像,故另作修改,而且返回的帖子的信息有所缩减,不是返回全部帖子信息。
header("content-type:text/html; charset=utf-8");
class GetList
{
    public function getListTest($messageId = '',$postNum){
        $con = new mysqli('localhost','root','beijingkaoya','buyTogether');
        if($con->connect_error){
            die('Error : ('. $con->connect_errno .') '. $con->connect_error);
        }else{
            $con->query("SET NAMES utf8");
            if($messageId == 0){
                $con->query("SET NAMES utf8");
                $sql = "SELECT messageId,title,photo,postTime,User.userName,User.headPortait FROM User,Message WHERE Message.userName=User.userName AND state='正在进行' ORDER BY messageId DESC;";
                $result = $con->query($sql);
            }else{
                $con->query("SET NAMES utf8");
                $sql = "SELECT messageId,title,photo,postTime,User.userName,User.headPortait FROM User,Message WHERE Message.userName=User.userName AND messageId<$messageId AND state='正在进行' ORDER BY messageId DESC;";
                $result = $con->query($sql);
            }
            if($result->num_rows){
                $listNum = $postNum;//每次获取5条帖子
                while(($row = $result->fetch_assoc()) && $listNum--){
                    $data[] = $row;
                }
            }else{
                $data[] = null;
            }
            //$datajson = json_encode($data,JSON_UNESCAPED_UNICODE);
            $arr = array(
                'success' => true,
                'message' => '',
                'postsnum' => count($data),
                'data' => $data
            );
            echo json_encode($arr,JSON_UNESCAPED_SLASHES|JSON_UNESCAPED_UNICODE);
        }
        mysqli_close($con);
    }
}

用来数据传送的文件(文件2)

<?php
/**
 * Created by PhpStorm.
 * User: linmouren
 * Date: 2016/11/10
 * Time: 21:27
 */
header("content:text/html; charset=utf-8");
error_reporting(E_ALL ^ E_NOTICE);
require_once 'GetList.class.php';

$messageId = $_POST['postsid'];
$postNum = $_POST['postnum'];
$tableName = '';
$list = new GetList;
$list->getListTest($messageId,$postNum);

?>

如上,文件1几乎做了所有的事,而文件2仅仅做了获取数据,还有调用函数处理。
我觉得也许可以改为:对数据库数据查询封装在函数里,获取的数据的处理操作放在文件2里面。

六、证明你学会了软件工程

通过数据展现软件是可以维护和继续发展的。

有源码。源码链接(coding.net)
有文档。规格说明书/系统设计/源码链接(coding.net)

七、给自己写一段话

相处一学期不易,课堂和课程上,我们将就此别过。可惜学生匆匆,时光匆匆,认识和了解的同学却很少。另外我年纪渐长,记忆日衰,会遗憾有时候我连个性或名字都没有记住。写一段话,介绍下你自己吧。

每次结课似乎都是一次离别,但是我们大可不必太伤感,生活就是不断地相遇不断地离别,不必强求记住每一个笑脸,值得记住的自然不会忘掉,忘掉了的就忘了吧,做个过客也没什么不好。作为老师要遇到学生何其之多,似乎每个学生都差不多,与众不同的也是屈指可数。对学生而言,就比较容易记住一个有趣的老师。是不是所有的学生都有一种“老师的每个眼神都是在问我懂了吗”的错觉,我就感觉栋哥的每个表情都在和我交流。事实并不这样,毕竟没有什么闪光点让自己出众,但是不出众又有什么关系呢,不出众就不会被栋哥记住,那我记住栋哥就好了。——NoBug团队的小卒:-)

八、个性发挥

那就来张我们团队的合照吧

发表评论

0/200
334 点赞
0 评论
收藏