偷懒是一种美德
阿里巴巴技术专家 陈新新 如是说。
《基于FLutter & Dart的全栈开发》的学习笔记。
了解到了闲鱼是如何将Flutter & Dart应用到前后端一体化开发的,没想到FLutter结合Dart Server能够实现这么令人惊艳的开发模式!
闲鱼移动端框架演进
- 原生 + H5 + WEEX
- 原生 + Flutter
- 原生性能 - 渲染引擎、AOT、无锁GC
- 快速开发 - 亚秒级、有状态的热重载
- 统一的应用开发体验 - 两端一致的开发方式,Material和Cupertino
###Flutter快速开发
- Hot Reload
Flutter在闲鱼应用过程
- 2个人3个月,做出闲鱼国际版本
- 接近Native的效果
- 关键问题解决
- 混合开发:工程管理和混合栈管理
- Flutter产物引入原生项目
- 外接纹理播放视频
- 图片缓存优化
- 无反射JSON序列化
- 私有PUB库、阿里生态适配
- 混合开发:工程管理和混合栈管理
- Flutter两端统一开发,提高效率
- 协议定义
- 接口实现
- 一个人开发三端
- 不一样的开发和思维方式
- 部署运维让客户端开发人员觉得很复杂
- 增加很多工作量
- 胶水层 - Dart实现
- 胶水层多变,领域层少改
- 详情页所有流量由Dart Server服务
- 运行时长 - 长时间运行稳定
- RT
- 单机QPS
- 让Flutter同学快速上手服务端
- All in IDE - 制作了很多IDE插件
- 新建服务
- 快速部署
- 本地执行
- 隔离调试
- 日志回传
- 错误定位
- 服务集合
- 领域服务
- 代码转换 - java转Dart工具
- 服务索引 - 文档索引
- 简化运维
- 监控
- 告警
- 开关
- 降级
- 限流
- All in IDE - 制作了很多IDE插件
- 秒级部署 - Dart Isolate
- 无需代码提交
- 运行时隔离
- 远程热部署
- 本地测试
- 本地调用远程服务 - http
- 单次请求所有日志回传 - Dart Zone
- 无冲突调试 - Isolate隔离
- Isolate 加载每个人的代码
- 只调试指定Isolate
三端一体化新开发模式
- 数据模型 - 前后端一致
- 业务逻辑 - 分拆实现
- 视图 - 统计两端UI
- 协议 - 前后端协议用工具生成一套
- 全链路日志
- 一体化开发的好处
- 开发灵活,扩展性好,降低沟通成本
- 协议三端一致,提高性能和效率
- 一体化开发,全链路日志和调试
- 服务端更专注领域服务的通用性和性能
未来和研发自动化的结合
- 研发自动化
- UI2Code - UI生成代码
- Fluttter代码生成
- Data Bind - 生成协议
- 即将开源
- Dart Server Framework
- Dart Server IDE Plugins