当前位置: 首页 > news >正文

厦门市建设路网站旅游网站建设成都

厦门市建设路网站,旅游网站建设成都,网站建设员工分工,东莞服务36招全称并不全#xff0c;记录了一些流程和注意点。新项目建议直接用zio2#xff01; 首先#xff0c;从1.0迁移到2.0#xff0c;可以使用官方的scalefix规则完成一部分方法自动替换#xff08;迁移主要解决方法重命名#xff0c;去掉Has#xff09;。 然后#xff0c;添加依… 并不全记录了一些流程和注意点。新项目建议直接用zio2 首先从1.0迁移到2.0可以使用官方的scalefix规则完成一部分方法自动替换迁移主要解决方法重命名去掉Has。 然后添加依赖到plugins.sbtaddSbtPlugin(ch.epfl.scala % sbt-scalafix % version) 然后执行迁移sbt scalafixEnable; scalafixAll github:zio/zio/Zio2Upgrade?shaseries/2.x这会完成大部分关于方法名的重写。 比如之前含有effect的方法被重写为带有attempt带有M的被重写为带有ZIO。 不过仍有一些方法是被删除的没有修正或者遗漏的一些方法没有被重写需要自己手动改了基本不需要什么大的改动删除的方法可以在官方迁移文档中找到实在找不到可以到discord频道询问。 接着更新zio办法到2.0.0即可。这里不用直接更新到最新版这样可以保证迁移是最小改动迁移后再升级即可。所有生态库也需要升级如果有的生态库不支持就暂时不能升级。 对于业务系统当我们执行上述命令后其实我们已经完成了大部分迁移。最后我们应该尝试编译项目修复剩余的编译错误。通常这步必会报错因为由于2.0已经删除了Has、ZEnv、ZManaged迁移规则也并不是完善的。 执行迁移命令后Has被直接删掉了代码看起来更清爽。 在删除ZManaged后官方发现迁移工作可能非常庞大后来出了个过渡方案允许暂时不迁移ZManaged但是需要导入一个中间包dev.zio %% zio-managed % 2.x version zio2全部使用Scope所以ZManaged本身不在核心库了。如果打算直接迁移把ZManaged[Any, E, A]改成ZIO[Scope, E, A]即可。同时把resource.use(f)改成ZIO.scoped { resource.flatMap(f) }。 之前ZManaged的acquireRelease相关方法都已经在ZIO中toManaged_也需要删掉返回的R类型多出一个Scope返回类型从ZManaged[R, E, A]变成ZIO[R with Scope, E, A]此时需要ZIO.scoped()才能使用。 Clock、Console、Random、System这些基础Layer已经移动到顶级包下面需要改导入语句。 个人认为变动最大的是Transducer拿一个zio-redis解码器举例它在1.0中是这么写 final val decoder: Transducer[RedisError.ProtocolError, Byte, RespValue] {import internal.Stateval processLine Transducer.fold[String, State](State.Start)(_.inProgress)(_ feed _).mapM {case State.Done(value) IO.succeedNow(value)case State.Failed IO.fail(RedisError.ProtocolError(Invalid data received.))case other IO.dieMessage(sDeserialization bug, should not get $other)}Transducer.utf8Decode Transducer.splitLines processLine}到了2.0是这么写 final val decoder {import internal.State// ZSink fold will return a State.Start when contFn is falseval lineProcessor ZSink.fold[String, State](State.Start)(_.inProgress)(_ feed _).mapZIO {case State.Done(value) ZIO.succeedNow(Some(value))case State.Failed ZIO.fail(RedisError.ProtocolError(Invalid data received.))case State.Start ZIO.succeedNow(None)case other ZIO.dieMessage(sDeserialization bug, should not get $other)}(ZPipeline.utf8Decode ZPipeline.splitOn(internal.CrLfString)).mapError(e RedisError.ProtocolError(e.getLocalizedMessage)).andThen(ZPipeline.fromSink(lineProcessor))}这里ZTransducer被重写为了ZPipeline并且使用方式有些变化不是改个名字就能编译的甚至调用方还需要略微改动。 现在ZSink和ZStream都是基于ZChannel实现现在设计更合理解码器decoder是由输入流经过ZPipeline处理再到输出 ZStream ZPipeline ZSink。 相比之前的ZTransducerZPipeline更容易理解。同时ZTransducer并不够通用在流式解码中性能并不好所以被弃用了。
http://www.hkea.cn/news/14336570/

相关文章:

  • 网站怎么做外链用ps做网站页面的大小
  • 网站建设实验分析千川推广官网
  • 张家界建设企业网站工作管理app
  • 潍坊网站建设公司莱芜大集
  • 创意策划网站公众号如何做微网站
  • 陕西省建设厅管理中心网站ui设计流程培训网站
  • 企业网站 数据库设计网站备案幕布照规范
  • 门户网站建设方案内容做网站托管服务器
  • 给人做ppt的网站wordpress网站欣赏
  • 网站建设汇报稿做网站需要多少职务
  • 营销型网站模板下载网站开发常用的开发工具
  • 正规官方代运营电商公司seo系统是什么
  • 国家建设协会工程质量分会网站用vs做网站界面
  • python 做网站合适吗用ps制作网站首页
  • 免费素材下载网站有哪些跟我学seo
  • 网站域名icp备案查询主机做网站
  • 网站源码如何保存门户网站和网站的区别
  • 快乐建站网邹平网站设计
  • 郑州妇科医院前十强排名广州seo外包多少钱
  • 站酷网官方入口网页版乐陵网站优化
  • 外贸网站建设和seo电子商务网站开发步骤
  • 建行企业网站免费开网店的app
  • 东莞网站设计如何阿里云大学 网站建设
  • 下载免费网站模板wordpress采集英文
  • 建设银行网站怎么查余额行业网站建设优化案例
  • 什么网站流量高wordpress默认编辑器设置
  • 手机百度 网站提交江西岳顶建设工程有限公司网站
  • wordpress新建页面慢永州网站seo
  • 公会网站建设h5企业模板网站模板
  • 微信公众号配置 网站建设微网站如何做微信支付宝支付宝支付