首页 > 其他分享 >Go - Study Note 1

Go - Study Note 1

时间:2023-09-19 21:45:50浏览次数:36  
标签:struct would Study Note interface various error Go type

In general, for most server applications that would be built out there—most would be written with the struct approach. One of the main reasons would be thinking of how to pass vital components that are required to process the URL path, such as database connections or queue system connections, or cache system connections. We can keep it global, but that introduces various sets of issues where it makes it hard to unit testing on a specific struct.
An example of how this would look like for the definition of the struct could be something like this:

type DB interface {
    GetAllArtifacts() ([]string, error)
}

type Queue interface {
    SubmitJob() error
}

type Cache interface {
    Store(item string) error
}

type HandleViaStruct struct {
    queue Queue
    db    DB
    cache Cache
}

We can define a bunch of interfaces which we can then dump it into our HandleViaStruct struct. We would then require to initialize the various other structs that would implement said functionalities defined by the various interface before we are able to finally run the struct.

 

标签:struct,would,Study,Note,interface,various,error,Go,type
From: https://www.cnblogs.com/zhangzhihui/p/17715898.html

相关文章

  • Go项目学习(2)-viper
    前言GitHub地址Api地址详细教程可直接参考Github,已经很详细了,这里只进行简单入门知识总结。介绍用来获取配置,配置可来自flag、环境变量、配置文件、远程配置……获取配置的优先级:Set,flag,env,config,key/valuestroe,default。配置项的值可以直接通过Viper中一系列get函数获取,......
  • django创建网站核心流程
       django创建网站核心步骤有7步。只有理清这7个步骤才能正确使用django创建网站。下面结合创建实例演示一下7个步骤。   第一步:打开dos窗口,在当前目录下创建工程myweb   第二步:进入myweb文件夹,创建网页项目firstapp   第三步:进入firstapp文件夹,创建模......
  • MongoDB简单使用
    介绍MongoDB是一个免费的开源跨平台面向文档的NoSQL数据库。安装dockerpullmongo下载最新版本的镜像dockerrun-d--namemongo-eMONGO_INITDB_ROOT_USERNAME=root-eMONGO_INITDB_ROOT_PASSWORD=xxx123-p27017:27017mongo设置初始账号和密码,注意开启防火墙对......
  • Go每日一库之15:gojsonq
    简介在日常工作中,每一名开发者,不管是前端还是后端,都经常使用JSON。JSON是一个很简单的数据交换格式。相比于XML,它灵活、轻巧、使用方便。JSON也是RESTfulAPI推荐的格式。有时,我们只想读取JSON中的某一些字段。如果自己手动解析、一层一层读取,这就变得异常繁琐了。特别是在......
  • Notepad++ 不显示上次打开的文件
    不勾选下面的选项即可......
  • django返回视频流
    importreimportosimportmimetypesfromwsgiref.utilimportFileWrapperfromdjango.httpimportStreamingHttpResponsedeffile_iterator(file_name,chunk_size=8192,offset=0,length=None):withopen(file_name,"rb")asf:f.seek(o......
  • GOLANG:调用delphi7编写的dll
    0. delphi对winapi有很强的封装,使其更易用。1.delphi声明dll内函数需要尽量以此方式: proceduretest(data:pchar;count:integer);stdcall;2.golang调用方法:str:=[]byte("abcdedf")printTextDll:=syscall.NewLazyDLL("demo.dll")printBytes:=p......
  • elementplus django drf 如何做到确认单据禁止删除
    elementplusdjangodrf如何做到确认单据禁止删除  要在Django和DjangoRestFramework(DRF)中实现禁止删除确认单据的功能,你可以通过以下步骤来完成:创建模型:首先,你需要在Django中创建一个模型来表示确认单据。这个模型应该包含与确认单据相关的所有信......
  • GO 中的时间操作(time & dateparse)【GO 基础】
    〇、前言日常开发过程中,对于时间的操作可谓是无处不在,但是想实现时间自由还是不简单的,多种时间格式容易混淆,那么本文将进行梳理,一起学习下。官方提供的库是time,功能很全面,本文也会详细介绍。还有另外一个开源库dateparse,使用起来比较方便,本文也会将加入示例测试出结果,以展示......
  • 在 Linux 上配置 mongodb
    1.下载Linux安装包如下图,放到本地的某个角落,要记得位置哦~2.连接你的服务器sshroot@你的IP//回车输入密码3.安装包上传另开ssh窗口(command+n),如果是windows就打开新的cmd窗口,因为我们要操作本地文件,之前的窗口我们已经登了服务器了。传的方法很多,我只演示其中一种。cd"......