用 Go 的范型实现 MongoDB 的 CRUD 操作
MongoDB是一个非常强大的数据库,它提供了一个非常简单的接口,可以让我们在Go中使用它。 前几天用gin+gorm实现一个小功能,根据操作的方法,发现很容易实现通用的CRUD操作。 比如批量查询数据时,可以定义一个interface或具体结构体去绑定结果集: # 返回值也可以定义为interfa…
MongoDB是一个非常强大的数据库,它提供了一个非常简单的接口,可以让我们在Go中使用它。 前几天用gin+gorm实现一个小功能,根据操作的方法,发现很容易实现通用的CRUD操作。 比如批量查询数据时,可以定义一个interface或具体结构体去绑定结果集: # 返回值也可以定义为interfa…
项目介绍 使用gin + gorm实现分页,按一般的mvc架构思想去划分目录,良好的编码习惯是用Dao层去查询数据库,Server层去实现业务逻辑(此案例业务逻辑简单所以没有封装)。 第三方库 gin gorm以及对应的mysql驱动包 目录结构 ├── README.md ├── config │…
经常可以看到 每日60s读懂世界 就尝试用go实现, 另外对于Vercel的一键部署工具挺感兴趣的。 Vercel既可以用来做测试环境,也可以做生产环境,本质上是一个使用HTTP触发事件的Serverless应用, 项目在github上,想学习的可以去参考一下。 Vercel可以直接运行html文件…
一般刷算法题我都是去leetcode官网,但每次都要去网页提交代码,想练习的时候还是有点麻烦,看到vscode有刷题插件就来推荐了。为了能正常使用该插件,需要先安装node。 可以直接去vscode搜索leetcode,一般排在第一的是下载量最高的,点击直接安装。 下载完之后设置节点: 这里选择中国…
需要结合标准库url的Values结构体,比如: postData := url.Values{} postData.Add("name", "Chris") postData.Add("language", "golang") 普通post请求可以直接使用http.Post方法,第二个参数为app…
最近的工作都要操作Docker,无论是在家里还是在公司,已经不用集成环境了,而且Docker还是部署在测试服务器上,本地只写代码,然后部署运行。早期我用过PHPStudy和Laragon,但后面需要操作的项目有点多,渐渐不能满足需求了,比如本地有的项目不支持php7以上版本,有的不能支持mysql8…
一般PHP开发环境是以本地环境为主的,少数人会用测试服务器做开发环境。当项目切换到正式环境时,有时为了测试线上某功能,或者修复bug时,以前都是通过写日志或者打印调试(如:var_dump),如果项目访问量很少,测试目标数据不多时,用这种方式调试问题不大。但是如果测试的数据比较多,那调试起来很繁琐,…
CPU基本概念 要了解golang的并发编程,需要先简单了解cpu是什么? cpu是计算机的“大脑”,不仅能实现基本算术运算,还能通过总线控制和协调电子配件的输入和输出。我们编写的程序代码,比如打印语句,最终是由cpu从内存中取得指令、解码、执行。cpu执行指令速度非常快,通常执行一条指令只需要零点…
服务器安装Docker后需要开启2375端口给外网访问,但是直接开启会有安全隐患,最好使用CA证书,为了方便操作,我直接弄了个shell文件,下载后直接在服务器上运行,运行成功后可以在/usr/local/ca目录下查看证书,并把ca.pem、cert.pem和key.pem下载到本地,等下要在PH…
对于没有接触过swoole的PHP开发者,可能对于并发编程或异步编程比较陌生。并发编程就是在短时间内完成多个任务,以往我们都是一个任务完成后,再完成下一个任务。比如接下来采集的网站,我是分几个小模块进行处理,首先先采集章节的链接,然后在根据章节的链接获取内容,最后再把获取到的内容写到文件里。 安装依…