前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Flutter 解耦

Flutter 解耦

原创
作者头像
花落花相惜
发布2021-12-15 14:30:48
5890
发布2021-12-15 14:30:48
举报
文章被收录于专栏:花落的技术专栏

应用场景

  • 当想写死部分测试代码供开发或测试临时使用,又要避免上线时把这些代码带到包里去的时候,可以使用这种方式;
  • 当想打出来的包想临时或永久分离掉其它业务线的干扰代码时,每次人工分离太烦琐也容易出错,可以使用这种方式;
  • 任何时间不同业务团队的开发、测试人员共用同一分支代码时可以通过配置编译出不同内容的包;
  • 总之,根据配置项自动动态改变工程代码,避免人为出错,编译出不同的包。

原理

uncoupling使用了标记的方式,直接操作文件代码以实现代码物理方式的灵活插入与抽取,对工程没有任何侵入性,简单易用。

使用方式

将uncoupling目录拖入工程根目录(原则上适用于任何目录)。

步骤1:在需要分离的地方添加标记节点,不同内容的节点名node不能相同。

///@@plugin.node@beginundefined your codeundefined ///@@plugin.node@end

步骤2:在uncoupling/run.dart中配置标记节点及内容

var _pluginNodeContent = {undefined "plugin" : {"node" : '''content'''}undefined };

如上所示步骤1和2,参数描述如下:

undefined

node : 节点,用于标记代码块,每个代码块代表一个节点,如防非下某个任务跳转代码块 xxtask;

undefined

步骤3:在uncoupling/run.dart中配置需要分离的dart代码目录及配置文件

const _dartRootDirectory = "./lib";undefined const _configPaths = undefined "./pubspec.yaml",undefined "./config_plugin.sh"undefined ;undefined String _exportBizDirectory = "./uncoupling/biz";

变量描述如下:

_dartRootDirectory : dart代码根目录,默认./lib

_configPaths : 配置文件,如pubspec.yaml

_exportBizDirectory :进行分离操作时临时存取抽取的代码,方便步骤2批量操作,如步骤2已配置完整可以不用

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 应用场景
  • 原理
  • 使用方式
    • 步骤1:在需要分离的地方添加标记节点,不同内容的节点名node不能相同。
      • 步骤2:在uncoupling/run.dart中配置标记节点及内容
        • 步骤3:在uncoupling/run.dart中配置需要分离的dart代码目录及配置文件
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档