![](https://img-blog.csdnimg.cn/direct/c371ca94127840dcb31316b73a54f0ea.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
Golang
文章平均质量分 95
Golang
os-lee
微信联系:lee-aigc
全栈架构:Golang,Java,Python,Vue。
业务范围:
1. llm大模型,知识中台,OCR,目标检测,游戏辅助
2. 微服务,云原生,devops技术方案
3. 毕业设计指导
展开
-
设计模式(Golang)
软件设计原则是一组指导软件开发人员进行系统设计、模块划分、类和接口定义、代码组织等方面的准则,旨在提高软件的可维护性、可扩展性、灵活性和重用性。(Open):对扩展开放,即允许在不修改现有代码的基础上扩展系统的行为或功能。这意味着应通过扩展而非修改已有类或模块来应对需求变化。(Closed):对修改封闭,即已有的代码(尤其是稳定的部分)应尽量避免改动。这通常通过抽象和依赖注入来实现,使系统能够在不改动现有代码的情况下添加新功能或适应新情况。一个类、模块或函数应有且仅有一个引起它变化的原因。原创 2024-04-13 19:25:53 · 1174 阅读 · 1 评论 -
grpc-教程(golang版)
RPC是的简称,中文叫远程过程调用,简单的说,就是调用远程方法和调用本地方法一样那么grpc就是由google开发的一个高性能、通用的开源RPC框架gRPC是一种现代开源高性能远程过程调用(RPC)框架,可在任何环境中运行。它可以高效地连接数据中心内的服务,并支持负载平衡、跟踪、健康检查和身份验证等插件功能。它适用于分布式计算的最后一英里,以连接设备、移动应用程序和浏览器到后端服务。公司已使用gRPC连接其环境中的多个服务,从连接少数服务到跨多种语言的数据中心内数百种服务。原创 2024-04-09 17:07:15 · 1947 阅读 · 0 评论 -
Golang教程六(单元测试,反射,网络编程,部署)
Go语言中自带有一个轻量级的测试框架testing和自带的go test命令来实现单元测试和性能测试,testing框架和其他语言的测试框架相似,可以基于这个框架写针对相应函数的测试用例,也可以基于该框架写相应的压力测试用例。再次注意啊,以后打包web项目的时候,配置文件和静态文件等这些非go程序,是要一起复制到目标服务器里面的。什么是交叉编译呢,就是在windows上,我开发的go程序,我也能打包为linux上的可执行程序。打当前目录下,xxx.go的包,这个包必须得是一个main包,不然没有效果。原创 2024-04-14 13:18:53 · 1219 阅读 · 0 评论 -
Golang教程五(异常处理,泛型,文件操作)
Go 语言的异常处理机制与传统的面向对象语言(如 Java、C#)所使用的 try-catch 结构有所不同,它采用了自己独特的设计理念和方法。在 Go 中,通常用来表示预期可能会发生的运行时问题,如文件未找到、网络请求失败等。这类问题不是程序本身的严重错误,而是程序运行过程中可能遇到的常态。Go 通过返回值(通常是第二个返回值)来传递错误信息,使得函数调用者能够检查并处理这些错误。常见的做法是在函数签名中添加一个error调用者需要显式检查返回的err是否为nil。原创 2024-04-13 19:06:25 · 952 阅读 · 0 评论 -
Golang教程四(协程,channel,线程安全,syncMap)
这个时候,就需要有个全局的变量来标志第一个协程数据是否接受完毕,剩下的协程,反复检查该变量的值,直到满足要求。Golang 中的线程安全是指编写并发程序时,确保即使在多个并发执行的 Goroutines(Go 语言中的轻量级线程)同时访问和修改共享数据时,也能保持程序的正确性、一致性和完整性,避免数据竞争、竞态条件等并发问题的发生。总之,Golang 中的线程安全是通过使用语言提供的同步原语和机制,确保在并发环境下对共享数据的操作是有序且一致的,从而防止数据竞争、竞态条件等并发问题,保证程序的正确运行。原创 2024-04-11 21:17:09 · 1466 阅读 · 1 评论 -
Golang教程三(结构体、自定义数据类型,接口)
结构体(struct)是一种复合数据类型,它允许您定义一组具有相关性的字段(field),每个字段都有自己的类型和名称。结构体用于表示具有多个属性的复杂数据结构,如用户信息、订单详情。ID intAge uint8使用指针接收者来操作结构体实例,这样可以避免结构体的值复制,有利于性能优化和共享资源的同步// Student 定义结构体Age int// PrintInfo 给机构体绑定一个方法Age: 21,s.Name = "lee" // 修改值。原创 2024-04-11 12:48:10 · 825 阅读 · 0 评论 -
Golang教程二(判断,循环语句,函数,指针,init,defer)
/ 参数类型一样,可以合并在一起// 多个参数。原创 2024-04-11 11:19:19 · 1042 阅读 · 0 评论 -
Golang教程一(环境搭建,变量,数据类型,数组切片map)
/ 先定义,再赋值// 定义加赋值如果一个变量定义了,但是没有赋值,那么这个变量的值就是这个类型的"零值"// 变量类型省略// 简单声明var name1, name2, name3 string // 定义多个变量var a1, a2 = "os", "lee" // 定义多个变量并赋值a3, a4 := "os", "lee" // 简短定义多个变量并赋值var (定义的时候就要赋值赋值之后就不能再修改了。原创 2024-04-10 22:23:33 · 1169 阅读 · 0 评论