跳转到主要内容

标签(标签)

资源精选(342) Go开发(108) Go语言(103) Go(99) LLM(84) angular(83) 大语言模型(67) 人工智能(56) 前端开发(50) LangChain(43) golang(43) 机器学习(39) Go工程师(38) Go程序员(38) Go开发者(36) React(34) Go基础(29) Python(24) Vue(23) Web开发(20) 深度学习(20) Web技术(19) 精选资源(19) Java(19) ChatGTP(17) Cookie(16) android(16) 前端框架(13) JavaScript(13) Next.js(12) LLMOps(11) 聊天机器人(11) 安卓(11) ChatGPT(10) typescript(10) 资料精选(10) mlops(10) NLP(10) 第三方Cookie(9) Redwoodjs(9) RAG(9) Go语言中级开发(9) 自然语言处理(9) PostgreSQL(9) 区块链(9) 安全(9) 智能体(8) 全栈开发(8) OpenAI(8) Linux(8) AI(8) GraphQL(8) iOS(8) 数据科学(8) 软件架构(7) Go语言高级开发(7) AWS(7) C++(7) whisper(6) Prisma(6) 隐私保护(6) 提示工程(6) JSON(6) DevOps(6) 数据可视化(6) wasm(6) 计算机视觉(6) 算法(6) Rust(6) 微服务(6) 隐私沙盒(5) FedCM(5) 语音识别(5) Angular开发(5) 快速应用开发(5) 生成式AI(5) Agent(5) LLaMA(5) 低代码开发(5) Go测试(5) gorm(5) REST API(5) kafka(5) 推荐系统(5) WebAssembly(5) GameDev(5) 数据分析(5) CMS(5) CSS(5) machine-learning(5) 机器人(5) 游戏开发(5) Blockchain(5) Web安全(5) nextjs(5) Kotlin(5) 低代码平台(5) 机器学习资源(5) Go资源(5) Nodejs(5) PHP(5) Swift(5) RAG架构(4) devin(4) Blitz(4) javascript框架(4) Redwood(4) GDPR(4) 生成式人工智能(4) Angular16(4) Alpaca(4) 编程语言(4) SAML(4) JWT(4) JSON处理(4) Go并发(4) 移动开发(4) 移动应用(4) security(4) 隐私(4) spring-boot(4) 物联网(4) 网络安全(4) API(4) Ruby(4) 信息安全(4) flutter(4) 专家智能体(3) Chrome(3) CHIPS(3) 3PC(3) SSE(3) 人工智能软件工程师(3) LLM Agent(3) Remix(3) Ubuntu(3) GPT4All(3) 模型评估(3) 软件开发(3) 问答系统(3) 开发工具(3) 最佳实践(3) RxJS(3) SSR(3) Node.js(3) Dolly(3) 移动应用开发(3) 低代码(3) IAM(3) Web框架(3) CORS(3) 基准测试(3) Go语言数据库开发(3) Oauth2(3) 并发(3) 主题(3) Theme(3) earth(3) nginx(3) 软件工程(3) azure(3) keycloak(3) 生产力工具(3) gpt3(3) 工作流(3) C(3) jupyter(3) 认证(3) prometheus(3) GAN(3) Spring(3) 逆向工程(3) 应用安全(3) Docker(3) Django(3) R(3) .NET(3) 大数据(3) Hacking(3) 渗透测试(3) C++资源(3) Mac(3) 微信小程序(3) Python资源(3) JHipster(3) JDK(2) SQL(2) Apache(2) Hashicorp Vault(2) Spring Cloud Vault(2) Go语言Web开发(2) Go测试工程师(2) WebSocket(2) 容器化(2) AES(2) 加密(2) 输入验证(2) ORM(2) Fiber(2) Postgres(2) Gorilla Mux(2) Go数据库开发(2) 模块(2) 泛型(2) 指针(2) HTTP(2) PostgreSQL开发(2) Vault(2) K8s(2) Spring boot(2) R语言(2) 深度学习资源(2) 半监督学习(2) semi-supervised-learning(2) architecture(2) 普罗米修斯(2) 嵌入模型(2) productivity(2) 编码(2) Qt(2) 前端(2) Rust语言(2) NeRF(2) 神经辐射场(2) 元宇宙(2) CPP(2) spark(2) 流处理(2) Ionic(2) 人体姿势估计(2) human-pose-estimation(2) 视频处理(2) deep-learning(2) kotlin语言(2) kotlin开发(2) burp(2) Chatbot(2) npm(2) quantum(2) OCR(2) 游戏(2) game(2) 内容管理系统(2) MySQL(2) python-books(2) pentest(2) opengl(2) IDE(2) 漏洞赏金(2) Web(2) 知识图谱(2) PyTorch(2) 数据库(2) reverse-engineering(2) 数据工程(2) swift开发(2) rest(2) robotics(2) ios-animation(2) 知识蒸馏(2) 安卓开发(2) nestjs(2) solidity(2) 爬虫(2) 面试(2) 容器(2) C++精选(2) 人工智能资源(2) Machine Learning(2) 备忘单(2) 编程书籍(2) angular资源(2) 速查表(2) cheatsheets(2) SecOps(2) mlops资源(2) R资源(2) DDD(2) 架构设计模式(2) 量化(2) Hacking资源(2) 强化学习(2) flask(2) 设计(2) 性能(2) Sysadmin(2) 系统管理员(2) Java资源(2) 机器学习精选(2) android资源(2) android-UI(2) Mac资源(2) iOS资源(2) Vue资源(2) flutter资源(2) JavaScript精选(2) JavaScript资源(2) Rust开发(2) deeplearning(2) RAD(2)

【Go语言开发】如何在 Go 中为错误添加额外信息

介绍


当 Go 中的函数失败时,该函数将使用错误接口返回一个值,以允许调用者处理该失败。在很多情况下,开发者会使用 fmt 包中的 fmt.Errorf 函数来返回这些值。但是,在 Go 1.13 之前,使用此函数的一个缺点是您会丢失有关可能导致返回错误的任何错误的信息。为了解决这个问题,开发人员要么使用包来提供一种将错误“包装”在其他错误中的方法,要么通过在他们的一种结构错误类型上实现 Error() 字符串方法来创建自定义错误。但是,如果您有许多不需要由调用者显式处理的错误,有时创建这些结构类型可能会很乏味,因此在 Go 1.13 中,该语言添加了一些功能以更容易处理这些情况。

一项功能是能够使用 fmt.Errorf 函数包装错误,该函数具有一个错误值,该错误值可以在以后解包以访问已包装的错误。这将错误包装功能构建到 Go 标准库中,因此不再需要使用第三方库。

此外,函数 errors.Is 和 errors.As 可以更容易地确定特定错误是否包含在给定错误中的任何位置,并且还可以让您直接访问该特定错误,而无需自己解开所有错误。

在本教程中,您将创建一个程序,该程序使用这些函数在从函数返回的错误中包含附加信息,然后创建您自己的支持包装和展开功能的自定义错误结构。

【Go语言开发】如何在 Go 中使用上下文

介绍


在开发大型应用程序时,尤其是在服务器软件中,有时除了函数独立运行所需的信息之外,了解更多关于它正在执行的环境的信息是有帮助的。例如,如果 Web 服务器函数正在处理特定客户端的 HTTP 请求,则该函数可能只需要知道客户端请求哪个 URL 来提供响应。该函数可能只将该 URL 作为参数。但是,在提供响应时总是会发生一些事情,例如客户端在收到响应之前断开连接。如果提供响应的函数不知道客户端已断开连接,则服务器软件最终可能会花费比计算永远不会使用的响应所需的更多计算时间。

在这种情况下,了解请求的上下文,例如客户端的连接状态,允许服务器在客户端断开连接后停止处理请求。这可以在繁忙的服务器上节省宝贵的计算资源,并释放它们来处理另一个客户端的请求。这种类型的信息在函数执行需要时间的其他上下文中也很有帮助,例如进行数据库调用。为了使对此类信息的普遍访问成为可能,Go 在其标准库中包含了一个上下文包。

在本教程中,您将首先创建一个在函数中使用上下文的 Go 程序。然后,您将更新该程序以在上下文中存储附加数据并从另一个函数中检索它。最后,您将使用上下文的能力来表示它已完成以停止处理其他数据。

先决条件

 

【Go语言基础】如何在Golang中使用JSON

介绍


在现代程序中,一个程序和另一个程序之间的通信很重要。无论是检查用户是否可以访问另一个程序的 Go 程序、获取显示在网站上的过去订单列表的 JavaScript 程序,还是从文件中读取测试结果的 Rust 程序,程序都需要一种方法来为其他程序提供数据。然而,许多编程语言都有自己的内部存储数据的方式,这是其他语言无法理解的。为了允许这些语言进行交互,需要将数据转换为他们都能理解的通用格式。其中一种格式 JSON 是一种通过 Internet 以及在同一系统中的程序之间传输数据的流行方式。

许多现代编程语言在其标准库中包含一种将数据与 JSON 相互转换的方法,Go 也是如此。通过使用 Go 提供的 encoding/json 包,您的 Go 程序还可以与任何其他可以使用 JSON 进行通信的系统进行交互。

在本教程中,您将首先创建一个程序,该程序使用 encoding/json 包将地图中的数据编码为 JSON 数据,然后更新您的程序以使用结构类型对数据进行编码。之后,您将更新您的程序以将 JSON 数据解码为映射,然后最终将 JSON 数据解码为结构类型。

先决条件


要遵循本教程,您将需要:

【Go语言Web开发】如何在Go中创建HTTP服务器

介绍

许多开发人员至少花了一些时间来创建服务器,以便在互联网上分发内容。超文本传输协议(HTTP)提供了大部分内容,无论是对猫图像的请求还是加载您正在阅读的教程的请求。Go标准库提供了内置支持,用于创建一个HTTP服务器来服务您的web内容或向这些服务器发出HTTP请求。

在本教程中,您将使用Go的标准库创建一个HTTP服务器,然后扩展服务器以从请求的查询字符串、正文和表单数据中读取数据。您还将更新程序,以使用自己的HTTP头和状态代码响应请求。

先决条件

要遵循本教程,您需要:

【Go语言高级开发】如何在Go中并发运行多个函数

介绍

Go语言的一个流行特性是它对并发性的一流支持,或者说一个程序同时做多件事情的能力。随着计算机从更快地运行单个代码流转向同时运行更多代码流,能够并发运行代码正成为编程的一个重要部分。为了更快地运行程序,程序员需要设计并发运行的程序,以便程序的每个并发部分可以独立于其他部分运行。Go中的两个特性,goroutines和channel,在一起使用时使并发更容易。Goroutines解决了在程序中设置和运行并发代码的困难,通道解决了并发运行的代码之间安全通信的困难。

在本教程中,您将探索goroutines和频道。首先,您将创建一个使用goroutines同时运行多个函数的程序。然后,您将向该程序添加通道,以便在运行的goroutines之间进行通信。最后,您将向程序中添加更多的goroutine,以模拟使用多个辅助goroutines运行的程序。

先决条件

要遵循本教程,您需要:

【Go语言基础】如何在Go语言中使用日期和时间

介绍

软件旨在使工作更容易完成,对许多人来说,这包括与日期和时间交互。日期和时间值在现代软件中随处可见。例如,跟踪汽车何时需要维修并让车主知道,跟踪数据库中的更改以创建审核日志,或者只是将一个时间与另一个时间进行比较以确定一个过程需要多长时间。因此,检索当前时间、操纵时间值以从中提取信息,并以易于理解的格式将其显示给用户是应用程序的基本属性。

在本教程中,您将创建一个Go程序来获取计算机的当前本地时间,然后以更易于阅读的格式将其打印到屏幕上。接下来,您将解释一个字符串以提取日期和时间信息。您还将转换两个时区之间的日期和时间值,以及加减时间值以确定两个时间之间的间隔。

先决条件

要遵循本教程,您需要:

  • 安装1.16或更高版本。要设置此设置,请遵循操作系统的“如何安装Go”教程。

获取当前时间

在本节中,您将使用Go的时间包获得当前时间。Go标准库中的时间包提供了各种与日期和时间相关的函数,可以用来表示使用时间的特定时间点。时间类型。除了时间和日期,它还可以保存有关所表示的日期和时间所在的时区的信息。

【Go语言Web开发】如何在Go中发出HTTP请求

介绍

当一个程序需要与另一个程序通信时,许多开发人员会使用HTTP。Go的优势之一是其标准库的广度,HTTP也不例外。Go-net/http包不仅支持创建http服务器,还可以作为客户端发出http请求。

在本教程中,您将创建一个向HTTP服务器发出多种类型HTTP请求的程序。首先,您将使用默认的GoHTTP客户端发出GET请求。然后,您将增强您的程序,以使用body发出POST请求。最后,您将自定义POST请求以包含HTTP头,并添加一个超时,如果您的请求耗时过长,则会触发该超时。

先决条件

要遵循本教程,您需要:

【Go语言数据库开发】GoLang PostgreSQL示例

PostgreSQL与MySQL一样受欢迎,并提供类似的功能。它还提供了一些现成的最佳技术。在这篇文章中,我们将讨论GoLang中的PostgreSQL,并在Go中创建简单的CRUD操作。

使用Go连接到PostgreSQL数据库

这是检查我们是否成功连接的代码。现在,在检查了是否可以继续向表中插入数据之后。

我们需要使用go包管理器安装pq包:

go get github.com/lib/pq

【Go语言数据库开发】使用Go和PostgreSQL构建一个简单的应用程序

介绍

PostgreSQL是当今最流行的SQL数据库之一。根据官方文档,它是“一个功能强大、开源的对象关系数据库系统,经过30多年的积极开发,在可靠性、功能健壮性和性能方面赢得了良好的声誉。”

在本文中,我们将研究如何在Go应用程序中使用Postgres。

先决条件

在我们开始使用这个应用程序之前,我们需要设置以下几件事:

  • Go-由于这是我们选择的编程语言,我们需要在本地环境中安装它
  • PostgreSQL-我们将使用PostgreSQL作为我们的数据库。因此,出于开发目的,您需要在本地环境中安装它。然而,在生产中,您可能会考虑一个更健壮和安全的解决方案,如云服务。AWS Aurora就是一个例子。您可以从官方网站下载PostgreSQL
  • pgAdmin 4-这是一个用户界面,允许我们直观地管理Postgres数据库。您可以在此处下载pgAdmin

我们将构建的内容:一个简单的待办事项应用程序

我们将构建一个全栈web应用程序,允许我们在Postgres数据库上执行CRUD操作。基本上,我们将构建一个待办应用程序。以下是完成的应用程序的外观: