首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

一个项目的开发总结

图片来自游戏英雄无敌:一人军团大天使

接手了一个项目(大约2017年12月份),前后将近半年的时间,完成了一个可以见人的样子。

去除一月份的假期,二月份的新年,实际开发时间,大约3-4个月左右。

经历了需求变更,框架重构,技术选型变更,前端模板切换,实施方案变更等情况。

技术栈

工具和技术的记录(最终未采用的): nodejs、vue、mongo、express、D3。

1月20号左右,决定需要一个管理后台,用户、权限等基础功能,转 PHP的laravel。表图用echart展示。

当时预估三月份要投入使用,而laravel自带用户基础相关模块,另外还有其他功能可以直接采用,因此调整技术栈。

数据层

由csv文件作为数据导入方式。因此考虑在后台添加一个数据导入功能,方便后期维护。考虑到可能需要回退和csv文件的管理,添加了一个附件管理功能。

csv文件可能比较大,采用依赖chrome浏览器的大文件上传模块,chunk后上传为附件文件。

由于csv中并非所有字段都需要前端展示,因此数据模型只保留必须字段。数据导入的时候,数据量稍微有一点规模,使用任务队列(laravel的horizon)处理。

有一个功能模块,需要历史数据对比计算,因此添加了一个附件版本管理功能,读取数据时依赖于最近的两次导入记录。

前端

展示采用bootstrap。考虑过套用admin-lte,由于该模板使用的是less,改用core-UI。

部署

上线考虑到成本和实施周期,以及目标客户为小众专业人员,可能会采用本地单机搭建方式。

基于phpdesktop,出了个单机版。mysql改为sqlite,届时更新数据只需要更新数据文件即可。而数据导入也不需要任务队列,直接使用laravel框架自带的db:seed。移除后台功能和登陆相关的路由和权限控制。

测试

原本准备写一些基于页面的单元测试,但由于需求功能频繁变动,单兵开发模式,只写了两个页面的测试。

That's all

以上就是全部过程和经历。

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180511G245XO00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券