flutter score web 问题复盘:
问题归类于数据结构的传输。
首先对项目技术架构要了解:后端 + h5+ flutter web(主要是因为想用flutter 的 乐谱展示)。
后端处理完交给h5,h5 交给 flutter,而我负责的是 flutter,也就是落地的一节
在之前的方案中,后端是将所有数据给了h5,而h5 只返给我部分数据,因此就是出现了一个妥协的方案,返给flutter部分数据,再返回给flutter 一部分参数,重新去请求后端,这其中还带有着分页信息。但是从程序语义上讲,由scoreId + page 这种,是不够表达逻辑的。还有一种情况就是当pageSize 页码因为其他情况变化时,就是bug,即便我们一直规定他就是1。
最好的方案就是能够唯一确定原乐谱 和编辑后的乐谱 以及对比内容,就是现在的方案,由后端单独给flutter一个接口
总结:对数据的传输,不管是什么方案,其核心点都是逻辑表达明确,而不是去拼参数凑成某个功能,在程序语义上要符合逻辑。
对初始化方案:后端数据都是ok的,问题是h5和flutter的数据通信,目前都是采用url的方式。搜了一些资料,h5 通信给flutter可以通过js函数调用dart函数的形式,可以测一下这种 方式。因为理论上来讲,h5 和flutter web现在同属于浏览器,应该存在本地通信,而浏览器核心可以是js
现有方案: 将h5接口和flutter 接口拆分,h5同时通过url 传必要参数给 flutter,flutter去请求单独的接口,这样比之前scoreId + page更合理。