文章分类 -  Go学习之旅

摘要:一.设计模式概述 1.设计模式分类 1.创建型(Creational)模式 如何创建对象 2.结构性(Structural)模式 如何实现类或对象的组合 3.行为型(Beahvioral)模式 类或对象怎样交互以及怎样分配职责 2.设计模式的作用 1.有助于更加深入地理解面向对象思想 如何将代码分散 阅读全文
posted @ 2022-10-20 11:56 fatpuffer 阅读(376) 评论(0) 推荐(0) 编辑
摘要:1.表结构 1.文章表(低版本数据库在create_time和update_time这块可能报错,不支持一张表中插入两个timestamp默认值) CREATE TABLE `article` ( `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '文章 阅读全文
posted @ 2022-10-17 22:27 fatpuffer 阅读(488) 评论(0) 推荐(0) 编辑
摘要:1.简介 基于httprouter开发的web框架,http://github.com/julienschmidt/httprouter 提供Martini风格的API,但比Martini要快40倍 非产妇轻量级,使用起来非常简洁 2.安装与使用 1.安装 go get -u github.com/ 阅读全文
posted @ 2022-10-17 18:29 fatpuffer 阅读(801) 评论(0) 推荐(0) 编辑
摘要:1.简介 1.NSQ是Go语言编写的,开源的内存分布式消息队列中间件 2.可以大规模的处理每天数十亿计级别的消息 3.分布式和去中心化拓扑结构,无单点故障 4.GitHub地址:https://github.com/nsqio/nsq 2.应用场景 1.异步处理,把非关键流程异步化,提高系统的响应时 阅读全文
posted @ 2022-10-14 19:32 fatpuffer 阅读(965) 评论(0) 推荐(1) 编辑
摘要:1.安装 go get github.com/garyburd/redigo/redis 2.示例 package main import ( "fmt" "github.com/garyburd/redigo/redis" ) func main() { c, err := redis.Dial( 阅读全文
posted @ 2022-10-13 20:53 fatpuffer 阅读(22) 评论(0) 推荐(0) 编辑
摘要:1.MySql常用引擎介绍 1.MyIasm引擎 1.不支持事物 2.不支持行锁 3.读写性能较好 2.Innodb引擎 1.支持事物 2.支持行锁 3.整体性能比较好 2.Golang中MYSQL驱动 1.依赖安装 go get github.com/go-sql-driver/mysql 2.导 阅读全文
posted @ 2022-09-30 17:25 fatpuffer 阅读(53) 评论(0) 推荐(0) 编辑
摘要:1.简介 1.所有的第三方包都放在&GOPATH的src目录下 2.如果不同程序依赖的版本不一样,怎么管理 3.每个程序依赖的包,没有版本号的概念 2.godep安装 1.安装命令 go get github.com/tools/godep 2.验证:输入godep命令,出现帮助信息 3.godep 阅读全文
posted @ 2022-09-30 13:24 fatpuffer 阅读(34) 评论(0) 推荐(0) 编辑
摘要:1.数据交换格式简介 1.简介 1.分布式系统 2.打包和解包操做 3.传输模式: 1.网络传输 2.API接口 3.文件传输 2.JSON数据格式 1.对象{key-value}形式 2.数组[{key-value}] 3.实例代码 1.Marshal:序列化 package main impor 阅读全文
posted @ 2022-09-29 18:06 fatpuffer 阅读(94) 评论(0) 推荐(0) 编辑
摘要:1.web程序 1.介绍 标准包net\http封装web服务相关功能 使用简单、性能媲美nginx 2.Form表单 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>登录</title> </head> < 阅读全文
posted @ 2022-09-29 14:53 fatpuffer 阅读(91) 评论(0) 推荐(0) 编辑
摘要:1.TCP服务端编程模型 1.图示 2.服务端处理流程 1.监听端口 2.接收客户端的连接 3.创建goroutine,处理该连接 package main import ( "fmt" "net" ) func handle(conn net.Conn) { defer conn.Close() 阅读全文
posted @ 2022-09-28 15:55 fatpuffer 阅读(348) 评论(0) 推荐(1) 编辑
摘要:1.多channel场景 1.多个channel同时需要读取或写入,怎么办? 多管道读写时是一个串行过程,前面的管道会阻塞后面代码的运行 package main import ( "fmt" "time" ) func server1(ch chan string) { time.Sleep(6 阅读全文
posted @ 2022-09-28 11:52 fatpuffer 阅读(116) 评论(0) 推荐(0) 编辑
摘要:1.多线程 1.线程是由操作系统进行管理,也就是处于内核态 2.线程之间进行切换,需要发生用户态到内核态的切换 3.当系统中运行大量线程,系统就会变得非常慢 4.用户态的线程,支持大量线程创建,也叫协程或goroutine 2.创建goroutine 1.使用go这个关键字创建一个新的轻量级线程(也 阅读全文
posted @ 2022-09-27 14:26 fatpuffer 阅读(90) 评论(0) 推荐(0) 编辑
摘要:1.testing模块 testing包提供了自动化测试相关的框架 支持单元测试和压力测试 2.Go中的测试约定 用来测试的代码必须以_test.go结尾 单元测试的函数名必须以Test开头,并且只有一个参数,类型是*testing.T 单元测试函数名Test后必须紧跟着大写,比如:TestAdd 阅读全文
posted @ 2022-09-26 23:17 fatpuffer 阅读(746) 评论(0) 推荐(0) 编辑
摘要:1,变量的介绍 1.变量的内在机制 1.类型信息:这部分是源信息,是预先定义好的 2.值信息:这部分是程序运行过程中,动态改变的 2.反射介绍 1.反射与空接口 1.空接口可以存储任何类型的变量 2.给你一个空接口,怎么知道里面存储的是什么东西 3.在运行时,动态获取一个变量的类型信息和值信息,就叫 阅读全文
posted @ 2022-09-26 20:20 fatpuffer 阅读(29) 评论(0) 推荐(0) 编辑
摘要:1.接口的介绍与定义 1.定义 接口定义了一个对象的行为规范 A:只定义规范,不实现 B:具体的对象需要实现规范的细节 2.表现形式 1.type 接口名字 interface 2.接口里面是一组方法签名的集合 type Animal interface { Talk() Eat() Run() } 阅读全文
posted @ 2022-09-23 17:30 fatpuffer 阅读(36) 评论(0) 推荐(0) 编辑
摘要:1.文件打开和读取 1.文件定义 文件是存储在外部介质上的数据集合 文件分类:文本文件和二进制文件 文件存取方式:随机存取和顺序存取 2.打开文件 package main import ( "fmt" "os" ) func main() { // 只读方式打开文件 file, err := os 阅读全文
posted @ 2022-09-23 09:35 fatpuffer 阅读(282) 评论(0) 推荐(0) 编辑
摘要:1.格式化输入 1.从终端获取用户输入 1.fmt.Scanf(format string, a ...interface{}):格式化输入,空格作为分隔符,占位符(%s %d %f)和格式化输出一致 1.单行读入 package main import "fmt" func main() { va 阅读全文
posted @ 2022-09-22 15:32 fatpuffer 阅读(249) 评论(0) 推荐(0) 编辑
摘要:1.struct的定义 1.Go中面向对象是通过struct来实现的,struct是用户自定义类型 type User struct{ Username string Sex string Age int AvatarUrl string } 2.struct的初始化 // 方式一: var use 阅读全文
posted @ 2022-09-21 18:38 fatpuffer 阅读(65) 评论(0) 推荐(0) 编辑
摘要:1.go版本限制 go版本必须>=1.11 2.配置go mod和go proxy windows go env -w GOBIN="go语言安装的位置下的bin目录" go env -w GO111MODULE=on go env -w GOPROXY=https://goproxy.cn,dir 阅读全文
posted @ 2022-09-20 17:45 fatpuffer 阅读(1524) 评论(0) 推荐(0) 编辑
摘要:1.map定义 map类型是一个key-value的数据结构 // var m map[key的类型]value的类型 var a map[string]int var b map[int]strig var c map[float]string 2.map声明 package main impor 阅读全文
posted @ 2022-09-20 13:33 fatpuffer 阅读(162) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示