整个软件工程项目已经接近尾声了,回顾整个大作业,虽然迎接的有点仓促,送别的有点匆忙,但是还是给我留下了很深的印象,以前听学长说过这是本科四年最难的大作业,现在想想可能真的是这样吧。
我们选择的是一个在线客服系统的开发任务,主要包括客户,管理员和客服三个模块,具体功能和市面上的客服系统类似(要简单很多),很难简单的进行系统描述,大家意会就好。
我想从以下几个方面总结以下这次项目开发,希望能给看到这篇文章的学弟学妹,或者学习相关课程的有缘人,以及将来的自己一些帮助
- 技术选型
- 小组分工
- 对软件工程实践的认识和理解
- 对课程的体会和感受
技术选型
我们采用前后端分离的项目结构,前端采用vue框架进行开发;后端使用django,参考了上一个微信订票的实现进行开发,因为我只负责前端这部分的开发,因此只介绍前端的详细选型。
vue2.0框架
作为热门框架,vue的数据绑定体现出很大的优势,在我看来就像是把所有变量声明在全局里一样,不需要过多的考虑DOM元素,将数据和DOM绑定之后,进行数据的操作就好。除此之外,vue的组件开发也是很给力的一个特点,整个项目结构更加清晰,也使得分工开发和分功能点开发更加轻松。
vue在多页面上需要进行一些额外的配置,建议在开发时尽量将功能集中在一个页面上。比如在我们的项目中,客户端作为一个单独的页面开发,客服和管理员作为企业的两个部分放在同一个界面下,通过登录选项导向不同组件。 另外值得一提的是,vue相关的包非常多,各种功能的实现都可以去尝试不同的方式,选择最高效便捷的工具进行开发。
element-ui
我们原计划使用bootstrap完成页面元素的设计,后来一方面bootstrap不经修饰的话在表现能力和过渡上实在不尽人意,我也不是专业的设计者,总之看起来不像是现阶段的 站该有的视觉效果。另一方面vue的一个bootstrap开发包vue-strap(好像是这么叫的)只支持vue1.0,如果使用bootstrap的话需要引用css样式文件。
element-ui使用非常便捷,而且只依靠官 教程就可以解决绝大部分的问题,由于是vue组件库,和vue的特性贴合的更好,vue还有很多优秀的界面组件库,大家可以去尝试一下~
vue-resource
http请求的包,主要是用起来比较简单,但是vue-resource现在已经不在维护,推荐使用axios等进行开发,不过我们的项目中这方面功能需求比较简单,用vue-resource也是可以轻松handle的
vue-router
vue的路由规则设定,这个应该毫无争议要使用,而且需要熟练掌握它的运用,有了它单页面才能焕发光彩~
以上就是本次开发主要的一些选型,希望可以给大家一些帮助,相关的使用问题可以看一下我的其他博客。
小组分工
我们开始的分工是决定前端由我一个人来进行开发,客服机器人的训练交由一个人完成,管理员和客服后端分给两个人实现。前后端接口由后端规定。
我单独选择前端的原因主要是想要设计一个整体风格一致的界面,另一方面也想要避免不同组件和模块整合时的样式问题。但是在开发过程中发现前端技术栈学习代价比较大,再加上个人的些微拖延症导致前端开发进度远远落后于后端,后期又由后端的同学帮助我完成了设置界面和知识库界面。
建议前端的开发进度至少保持与后端一致,或者可以稍超前一些,接口的设计也交由前端进行处理,因为前端是最后呈现在用户面前的,各个模块如何设计才能符合要求也是通过前端更加直观感受到的,后端先行一步有种闭门造车的感觉,后期的对接过程还要对接口甚至是数据库做出修改。这也是我们这次开发吸取的教训,前后端的工作分配要更加合理。
虽然开发过程一直在稳步推进,但是回想起来仍有少许不尽人意的地方,首先是迭代周期稍长,我们一般是两周一迭代,迭代周期稍长的话,每次迭代的要求较大,无法细化到每一个功能点,会有明显的拖沓和赶工的现象,具体工作还需要再进行讨论,导致进度无法按时推进;另外会议模式也有较大问题,很大一部分的开会时间用在了争论功能实现的细节上,合理的站立会议应该是由小组成员汇 工作结果,由组长总结并布置下一部分迭代任务,然后具体的问题再由相关部分的负责人会后讨论自行协商。
对软件工程实践的认识和理解
一款好的软件的面世,背后一定有合适的开发方法,优秀的团队与良好的软件开发过程,通过本次软件工程项目的开发,我收获良多。
从个人角度来看,我发现盲目进行代码堆砌对项目的开发没有太大的帮助,而是要一方面即时与团队进行沟通,尤其是业务相关的模块负责人,对接口提前约定,开发进度和开发功能点的统一,及时对接以发现问题,还有就是一定要按时完成任务,不拖团队后腿。另一方面在个人的技术选型过程中要多学习了解各种热门框架,多进行尝试,合适的框架可以使得开发事半功倍。 从团队角度来看,合理的分工,合适的项目组织与流程规划都是成功项目的关键,一个项目的开发不是靠单纯的个人能力就能够驾驭的,根据不同的项目类型进行合理的开发过程规划是非常关键的,在开发的过程中,有很多小组的团队气氛就很好,进度和质量也都令人惊叹。
工程就是将技术转化为产品的过程,通过这次的开发,我了解到了除个人技术能力之外,团队合作的重要性。之前的大作业虽然也涉及到小组合作,但是项目较小,合作较为松散,也不需要过多的规划与过程管理,我们应该好好珍惜这次软件项目开发的机会。
对课程的体会和感受
软工三这门课给了我本科学习中唯一一次较为正式的项目开发实践的机会,这次大作业给我留下的印象和带来的成就感绝对是其他大作业所不能比的,另外两位老师和几位助教在我们开发的整个流程中,对我们进行悉心的指导,让我们的项目开发得以稳步进行。这门课程也是稍有的将就技术与工程结合的课程,有助于培养优秀的软件工程素养,建议学弟学妹一定要重视并享受这门课程。
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!