接手了一个项目(大约x年xx月份),前后将近半年的时间,完成了一个可以见人的样子。去除一月份的假期,二月份的新年,实际开发时间,大约x—x个月左右。经历了需求变更,框架重构,技术选型变更,前端模板切换,实施方案变更等情况。
技术栈
工具和技术的记录(最终未采用的):nodejs、vue、mongo、express、Dx。x月号左右,决定需要一个管理后台,用户、权限等基础功能,转PHP的laravel。表图用echart展示。当时预估三月份要投入使用,而laravel自带用户基础相关模块,另外还有其他功能可以直接采用,因此调整技术栈。
数据层
由csv文件作为数据导入方式。因此考虑在后台添加一个数据导入功能,方便后期维护。考虑到可能需要回退和csv文件的管理,添加了一个附件管理功能。csv文件可能比较大,采用依赖chrome浏览器的大文件上传模块,chunk后上传为附件文件。由于csv中并非所有字段都需要前端展示,因此数据模型只保留必须字段。数据导入的时候,数据量稍微有一点规模,使用任务队列(laravel的horizon)处理。有一个功能模块,需要历史数据对比计算,因此添加了一个附件版本管理功能,读取数据时依赖于最近的两次导入记录。
前端
展示采用bootstrap。考虑过套用admin—lte,由于该模板使用的是less,改用core—UI。
部署
上线考虑到成本和实施周期,以及目标客户为小众专业人员,可能会采用本地单机搭建方式。基于phpdesktop,出了个单机版。mysql改为sqlite,届时更新数据只需要更新数据文件即可。而数据导入也不需要任务队列,直接使用laravel框架自带的db:seed。移除后台功能和登陆相关的路由和权限控制。
测试
原本准备写一些基于页面的单元测试,但由于需求功能频繁变动,单兵开发模式,只写了两个页面的测试。
以上就是全部过程和经历,谢谢大家。
Copyright © 2019- baijiahaobaidu.com 版权所有 湘ICP备2023023988号-9
违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com
本站由北京市万商天勤律师事务所王兴未律师提供法律服务