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

深圳营销型网站建设免费wordpress分类栏目文章

深圳营销型网站建设免费,wordpress分类栏目文章,网站建设技术包括哪些方面,承包网站开发该文章为学习开源微服务框架kratos的学习笔记#xff01;官方文档见#xff1a;简介 | Kratos Kratos 一套轻量级 Go 微服务框架#xff0c;包含大量微服务相关框架及工具。 一、Kratos 项目结构简介 通过 Kratos 工具生成的 Go工程化项目模板如下#xff1a; applicati…该文章为学习开源微服务框架kratos的学习笔记官方文档见简介 | Kratos Kratos 一套轻量级 Go 微服务框架包含大量微服务相关框架及工具。 一、Kratos 项目结构简介 通过 Kratos 工具生成的 Go工程化项目模板如下 application |____api | |____helloworld | | |____v1 | | |____errors |____cmd | |____helloworld |____configs |____internal | |____conf | |____data | |____biz | |____service | |____server |____test |____pkg |____go.mod |____go.sum |____LICENSE |____README.md 二、kratos 依赖注入关系图 其中有关依赖注入的详细文档见Go工程化 - 依赖注入 | Kratos 以下是我自己总结的kratos依赖注入关系图 特别注意data层的 NewXxxRepo 返回的是 biz 层定义的实体数仓的接口类型 这样做的目的正常情况是 data 层定义好数据操作函数后被 biz 层调用但这里是 biz 层定义好操作数据层的接口然后让 data 层去实现从而实现 data 层对 biz 层的反向依赖。这样做的好处是方便 data 层重构比如数据存储由 mysql 改为 sqlServer 等而不需要修改任何 biz 层的代码。 //下面代码位于 data/article.go // 注意返回参数为 biz 层的接口ArticleRepo 需要实现 biz.ArticleRepo 接口 func NewArticleRepo(data *Data, logger log.Logger) biz.ArticleRepo {return articleRepo{data: data,log: log.NewHelper(logger),} }// 下面代码位于 biz/article.go // 在 biz 层定义好数据操作层data层的接口以便让 data 层实现不管 data 层今后如何实现或重构都不影响 biz 层的业务代码 type ArticleRepo interface {// dbListArticle(ctx context.Context) ([]*Article, error)GetArticle(ctx context.Context, id int64) (*Article, error)CreateArticle(ctx context.Context, article *Article) errorUpdateArticle(ctx context.Context, id int64, article *Article) errorDeleteArticle(ctx context.Context, id int64) error } 三、依赖注入生成的代码实例 运用 google/wire 工具将上述依赖注入生成具体的kratos项目代码示例 原始 wire.go 代码 // initApp init kratos application. func initApp(*conf.Server, *conf.Data, *conf.Auth, log.Logger) (*kratos.App, func(), error) {panic(wire.Build(server.ProviderSet, data.ProviderSet, biz.ProviderSet, service.ProviderSet, newApp)) } 工具生成的代码wire_gen.go // initApp init kratos application. func initApp(confServer *conf.Server, confData *conf.Data, auth *conf.Auth, logger log.Logger) (*kratos.App, func(), error) {dataData, cleanup, err : data.NewData(confData, logger)if err ! nil {return nil, nil, err}articleRepo : data.NewArticleRepo(dataData, logger)articleUsecase : biz.NewArticleUsecase(articleRepo, logger)blogService : service.NewBlogService(articleUsecase, logger)userRepo : data.NewUserRepo(dataData, logger)encryptService : biz.NewEncryptService(auth)accountUseCase : biz.NewAccountUseCase(logger, auth, userRepo, encryptService)accountService : service.NewAccountService(logger, accountUseCase)httpServer : server.NewHTTPServer(confServer, logger, blogService, accountService)grpcServer : server.NewGRPCServer(confServer, logger, blogService, accountService)app : newApp(logger, httpServer, grpcServer)return app, func() {cleanup()}, nil }
http://www.w-s-a.com/news/935328/

相关文章:

  • 网站的优缺点wordpress手机适配模板中文
  • 福州网站建设H5广告公司简介简短
  • 网站404页面的作用app开发郑州
  • 亚马逊中国网站建设目标网站建设的策划
  • 林州网站建设服务徐州网站建设
  • 如何检测网站死链景德镇网站建设哪家好
  • 旅游网站开发目标天津专业做网站公司
  • 名者观看网站快手小程序
  • 网络架构扁平化windows优化大师好不好
  • 安康养老院收费价格表兰州seo整站优化服务商
  • 网站开发技术方案模板无锡网站建设推荐
  • 自助建站系统注册三维家3d设计软件免费
  • 做seo网站标题重要吗郑州众诚建设监理有限公司网站
  • 建设网站南沙区百度关键词推广怎么做
  • 网站建设公司做销售前景好不好石家庄外贸网站制作
  • windows2008做网站网站首页打开速度
  • 做外贸要做什么网站服装设计图
  • 中山市路桥建设有限公司网站网站开发角色分配权限
  • 加强档案网站建设网站搭建好了不用会不会被攻击
  • 维护网站信息网络建设服务
  • 网站建设策划书模板下载用自己电脑配置服务器做网站
  • 360免费建站空间淘宝数据网站开发
  • 做分销的网站本地dede网站怎么上线
  • 中学网站模板北京管理咨询公司
  • 网站开发用哪个软件方便二级网站建设 管理思路
  • 个人怎么创建网站中国建设银行网站口
  • 跟知乎一样的网站做展示网站步骤
  • 邯郸网站建设效果好wordpress app 加载慢
  • 做app的网站有哪些功能广州自适应网站建设
  • 兰州建设网站的网站开源网站建设