我的做业——软件工程实践总结

做业正文

1、请回望暑假时的第一次做业,你对于软件工程课程的想象

1)对比开篇博客你对课程目标和期待,“但愿经过实践锻炼,加强计算机专业的能力和就业竞争力”,对比目前的所学所练所得,在哪些方面达到了你的期待和目标,哪些方面还存在哪些不足,为何?

"课程实现目标: 但愿能从业界的工程师助教那里学到实际项目的开发模式,尝试一些以前没学过的新技术。"css

  • 这是我在准备篇博客写下的对软工实践课程的目标与期待。而我确实在这门课的过程当中查阅学习了不少业界流行的开发规范和开发工具注入整个团队项目之中,提升了团队的配合开发效率。而且我深刻学习了以前只是浅尝辄止的Vue框架,最终带领团队开发了组件化开发的单网页富应用web。
  • 不足的是其实我更想写后端,由于我有点完美主义写前端会一直调样式,样式优化是很费时间的。而且我以后并不许备从事前端开发,后端开发其实更有助于从此的发展。可是团队里缺少擅长前端的队员,UI对官网又尤其重要,所以身为队长只能担下这个责任从新去看Vue文档学习。

2)总结这门课程的实践总结和给你带来的提高,包括如下内容:

一、统计一下,你在这门软件工程实践中,完成了多少行的代码;

  • 咱们的团队项目前端总共包含了133个.vue文件(不算外部css和js文件),由于客户端还作了对900-1440px与900px如下宽度的两版css适配,因此客户端展现部分的.vue文件的css代码都是1500行起步。保守估计就团队项目部分我应该至少完成3.5w行的代码。html

    二、软工实践的各次做业分别花了多少时间?(作一个列表)

    做业名称 时间
    第一次做业-准备篇 2
    结对做业第一次—原型设计(文献摘要热词统计) 8
    结对做业第二次—文献摘要热词统计及进阶需求 6
    团队做业第一次—团队展现 2
    团队做业第二次—项目选题报告 6
    团队做业第三次-项目原型设计 20
    团队做业第四次-项目需求分析 6
    团队做业第五次—项目系统设计与数据库设计 8
    团队做业第六次—团队Github实战训练 8
    项目Alpha冲刺(团队) 40
    过后诸葛亮(团队) 2
    项目Beta冲刺(团队) 70
    Beta阶段团队项目互评 1
    我的做业——软件工程实践总结做业 2

    三、哪一次做业让你印象最深入?为何?

  • Beta冲刺做业。由于短期内工做量巨大,尽管面临了期末复习、比赛、srtp结题、论文撰写等多重压力,仍是将其它暂时搁置专心beta冲刺。前端

    四、累计花了多少个小时在软工实践上?平均每周花多少个小时?

  • 根据第2个问题的表格统计花费总时间为181小时。按13周计算每周花14小时。vue

    五、学习和使用的新软件和新工具;

  • 原型设计: 墨刀
  • 单元测试:easy-mockSwaggerUI
  • 版本管理: Gitlab搭建
  • 代码规范: ESlintgit

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

  • 前端框架: Vueweb

    七、学习和掌握的新方法;

  • 快速搭建单网页富应用web app
  • 自动化测试
  • 团队配合的git规范面试

    八、其余方面的提高。

  • 团队领导能力,协做沟通能力。
  • 对软件项目开发的把控能力。
  • 多任务并行处理能力及抗压能力。
  • 写博客总结学习知识数据库

    2、写下属于本身的人月神话——我的或结对或团队项目实践中的经验总结+实例/例证结合的分析

  • 一我的或两我的开发的时候可能不会注意太多,可是多人一块儿参与开发的时候就要注重不少以前没有注意到的问题。例如代码规范、版本管理、变动管理等项目管理控制的问题。若是在项目前期没有预防,制定好计划,等项目中期可能会消耗大量的时间去调整已写好的代码。
  • 例如尽管项目开始前做业含有一项制定代码规范,但到实际开发中很难记得清都有哪些约束。而若是你们都为所欲为,最后整合起来的代码必定是风格迥异,阅读性差。所以我在前端使用ESlint写好代码规范的脚本,若不遵循规范则会报错并指引错误位置,作到了代码规范的统一。
  • 最后很开心带领团队中有四人得到了小黄衫。后端

3、对下一届实践的建议,或者对于开学初的你,对于大一的你,对于开学初的我,你有什么想建议和告知的呢?对于后来人的期许。 特别地,特别地,下一届要不要中途换队员?

  • 首先是关于课程调整的建议,固然我知道这个得跟学院沟通,实现难度很大,不行的话就看成吐槽吧。第一点建议课程时间能够放在前面的学期。在当前升学率逐渐升高的背景下,大三下同窗们的状况都是保研的准备夏令营,考研准备考研复习,留学的备战雅思托福GRE等。虽然咱们都知道多学多得,对本身绝没有坏处。但在大三下这个关键节点每每还要考虑优先级的关系,短期内什么是最有必要的选择。另外一方面若是学生能较早地通过完整项目实践的洗礼,到了大三其实会更清楚地知道本身的不足和兴趣方向在哪里,进而去有针对地发展。第二点是能够提升软工实践的学分。这个工做量巨大的课程只有1.5学分,不免有些人会“战略性”划水,优先保证其它学分更高的课程。这样没法达到软工实践的目的。
  • 关于课程开展的建议,我认为助教能够在开发过程中多进行一些技术指导。若是一个团队中没有人完整接触过项目开发,本身短期摸索出来的做品是很难达到要求的。可能表面看起来能跑,但根本经不起测试,更不用谈及功能的拓展和维护。相对而言,若是在有人引导下经历一段规范的开发流程,短期内的提高会更大。而需求分析、软件设计、测试等环节在理论课都已经详细介绍,基本不会出现一筹莫展的状况。
  • 关于换队友的建议其实我以前在群里提过。换队友能够模拟企业宣讲、招聘、面试这样的流程。每一个团队上台介绍他们的开发项目和招聘岗位(可能前期组队过程当中没有考虑到须要某个位置的队员),让其它全部团队都至少出一人来投递简历面试。最后进行一个双向选择的过程。这样双方自愿,才能更好地继续接下来的工做,也更大程度地模拟了现实场景。特别是还能给某些不知足于所在团队现状的人一个跳槽的机会。随机分配就可能会出现想走的走不了,不想走的依依不舍的状况。api

    4、分析一下本身所处的团队。软件工程实践是大学里少有的认真的团队协做经验。《构建之法》上说团队的发展有几个阶段,你的团队都经历过么,最后到达了“创造”阶段了么?(参考《构建执法》第17章 人、绩效和职业道德)

  • 我认为目前团队还未到创造阶段。由于整个软工实践团队开发的时间实在很是有限,我又担负了大量的开发工做,因此主要精力是针对项目制定开发配合的规范。

    5、怎样证实你学会了软件工程?

  • 不知如何证实,就简单说一下我在团队项目中是如何进行管理的吧。
  • 在团队项目中除了我在第二个问题中举的进行代码规范的控制,我对团队配合规范也进行规定。首先为团队制定git配合规范,基于master创建development分支用来开发,基于dev分支创建了各模块的feature分支,这样分支之间几乎没有耦合,不会存在合并冲突的状况。同时基于master创建release分支做为项目发布版本的分支。
  • 为了方便前端开发的接口对接,后端将全部接口文档上传至gitlab上的api文件夹,前端开发人员只需在gitlab即可以查看全部后端接口和相应的更新时间。


  • 同时为了便捷后期网站维护人员对bug的定位,我对项目的目录框架和命名也进行规范。在views和components文件夹中分别先创建admin(管理端)、client(客户端)、common三个文件夹。common文件夹主要存放对管理员端和客户端共同复用的组件(以下拉框、导航栏等)和页面(如登录、40四、403页面等); 而在admin、client分别按照网站模块创建文件夹。客户端的views中的目录与components中目录彻底相同,管理端同理。
    views里的页面文件统一以index命名。
    综上,这样有页面出bug后,即便未参与开发的维护人员也能根据目录快速锁定出错文件。

  • 在达到代码规范和配合规范的必定要求,团队能够较有效率地进行配合开发以后,咱们对代码质量也有要求。项目先后端都是采用MVC架构,大量封装底层代码,从而保证代码的复用性、可维护性、可拓展性。之前端为例,咱们在alpha阶段主要对项目所需组件进行整理统计,接着统一开发单文件组件为项目铺好基础,以后在beta阶段只需在页面文件中直接引用组件进行使用,再根据布局修改css样式,而没必要关心组件的内部逻辑。这样减小代码冗余的同时,页面出现问题只需找到组件文件修改,而不会影响该页面的其它部分。

7、个性发挥,包括图文、照片和创意等

那周鱼加熊掌兼得。

相关文章
相关标签/搜索