自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(32)
  • 收藏
  • 关注

原创 mysql innodb 锁

InnoDB锁的使用模式。InnoDB行锁实现方式。

2023-09-20 10:40:42 65

原创 关于Repository的使用

DDD

2023-09-19 16:14:54 76

原创 MYSQL事务隔离级别分析

mysql不可重复度和幻读区别

2023-09-15 12:19:42 105

原创 模型是什么

模型里面包含了数据库的一切,但是,你很快就会知道,你的应用程序需要的不仅仅是一个简单的数据库访问类,它需要更多的逻辑,如数据验证,调用外部服务,发送电子邮件等。模型这个词的含义太模糊了,以至于没有任何意义。更具体来讲,模型是用来将我们的应用划分成更小、更清晰的类,使得各代码部分有着明确的权责。...

2019-10-25 17:41:41 387

转载 centos的yum源的安装和详解

三、yum 配置yum 的配置文件分为两部分:main 和repositorymain 部分定义了全局配置选项,整个yum 配置文件应该只有一个main。常位于/etc/yum.conf 中。repository 部分定义了每个源/服务器的具体配置,可以有一到多个。常位于/etc/yum.repo.d 目录下的各文件中。yum.conf 文件一般位于/etc目录下,一般其中只包含main部...

2019-10-22 10:24:03 349

原创 go相对路径

Golang中存在各种运行方式,如何正确的引用文件路径成为一个值得商议的问题!1、Golang的相对路径是相对于执行命令时的目录

2019-10-11 17:20:51 1715

原创 评论系统设计实践

注意小事项:mysql的字段unsigned属性不方便移植,所以我不使用。需要解决的问题:1.评论的总数查询2.标注官方回复3.评论时间人性化展示4.评论排序按评论时间倒序5.打开默认现实一条评论1、将评论表和回复表分开设计评论表CREATE TABLE `mt_comments` ( `id` bigint(20) NOT NULL AUTO_INCREMENT COM...

2019-10-09 18:40:05 1759 1

原创 http服务器

http是比tcp更高层的协议,它描述了网页服务器如何与客户端浏览器进行通讯。net/http包1.配置路由func HelloServer(w http.ResponseWriter, req *http.Request) { fmt.Println("Inside HelloServer handler") fmt.Fprintf(w, "Hello,"+req.URL.Path[1...

2019-09-26 14:54:59 350

原创 tcp 服务器

net包包含网络通信的功能,处理了TCP/IP以及UDP协议、以及域名解析等方法。Server端使用流程:1.创建一个net.Listener类型的变量,它实现了服务器的基本功能。var listener net.Listenerlistener, err := net.Listen("tcp", "localhost:50000")2.监听、接收来自客户端的请求var conn ...

2019-09-26 11:12:04 131

原创 新旧模式对比:共享内存和通道

假设我们需要处理多任务,一个worker处理一项任务。旧模式:使用共享内存进行同步由各个任务组成的任务池共享内存,为了同步各个worker以及避免资源竞争,我们需要对任务池进行加锁保护Sync.Mutex被用来保护临界区资源,同一时间只有一个go协程可以进入该临界区,如果同时出现多个go协程进入该临界区,会产生竞争,Pool结构就不能正常被更新,在传统模式中,worker可以被这样写,...

2019-09-23 23:02:56 354 1

原创 协程和恢复

一个用到recover的程序停掉服务器内部一个失败的协程而不影响其他协程的工作。func server(workChan <-chan *Work) { for work := range workChan { go safelyDo(work) // start the goroutine for that work }}func safelyD...

2019-09-23 17:32:53 126

原创 通道、超时和计时器

time包中存在一些有趣的功能,可以和通道组合使用计时器:指定的时间间隔重复的向通道发送时间(时间间隔是纳秒)type Ticker struct { C <- chan Time ...}上面类型的工厂方法time.NewTicker(dur) * Ticker,传入时间间隔,调用stop()使计时器停止,在defer语句中使用。特例:time.Tick()方法返回一个不用...

2019-09-23 16:56:03 316

原创 协程间的信道

协程之间发送和接收信息并且协调/同步他们的工作,不推荐:使用共享变量来通信,但是很不提倡这么做,因为这种方式给所有的共享内存的多线程都带来很多问题 推荐:通道,负责协程间的通信,从而避开所有共享内存导致的陷阱,保证了同步性,数据在通道中,在任何给定时间,一个数据被设计为只有一个协程可以对其访问,所以不会发生数据竞争。数据的所有权也被传递。通道服务于通信的两个目的,值的交换,同步的,保...

2019-09-09 22:42:18 153

原创 协程是什么

问题:公认的,使用多线程的应用难以做到准确,最主要的问题是内存中的数据共享,他们会被多线程以无法预知的方式进行操作,导致一些无法重现或者随机的结果,叫竞态不要使用全局变量或者共享内存,他们会给你的代码在并发运算时带来危险。解决:同步不同的线程,对数据加锁,这样同时就只有一个线程可以变更数据。不过过去的软件经验告诉我们这会带来更高的复杂度,更容易使代码出错以及更低的性能,所以这个经典的方法明...

2019-09-09 16:34:21 130

原创 JSON、XML、GOB操作-GO高级编程

JSON作为一个被广泛使用的轻量级,占用少量内存和带宽的数据结构传输协议,常被用于web后端与浏览器的之间的交互,当然在其他场景也适用encoding/json包// 格式化值为json,Json Formatjson.Marshal(value)// 使用一个Encoderenc := json.NewEncoder(file) //Encoder类型的指针可调用方法 Encode(v...

2019-09-08 22:38:41 328

原创 从命令行读取参数-GO高级编程

从命令行读取参数的方法:1、os包中有一个string类型的切片变量os.Args,用来处理一些基本的命令行参数,它在程序启动后读取命令行输入的参数2、flag包的一个扩展功能也能用来解析命令行选项,但是通常被用来替换基本常量,在某些情况下我们希望在命令行给常量一些不一样的值。》定义flag》解析参数》判断参数中是否解析到定义的flag,修改flag的状态,这都是在parse内部处理的...

2019-09-06 11:28:50 193

原创 GO安装与运行环境以及编辑器、集成开发环境与其它工具

Go运行时尽管GO编译器产生的时本地可执行代码,这些代码仍旧运行在GO的runtime当中。这个runtime类似Java和.NET语言所用到的虚拟机,它负责管理包括内存分配,垃圾回收、栈处理、goroutine、channel、slice、map和reflectionruntime主要由C编写,GO1.5开始自举,并且是每个Go包的最顶级包。垃圾回收器Go拥有简单却高效的标记-清除回收器,...

2019-09-05 15:47:08 320

转载 寻找Google Blaze

构建系统build system 的好用程度极大地影响团队和公司地工作效率,进而影响业务发展。解决问题有效解决好build问题的只有Google。Google有一个一揽子解决方案,叫Blaze。功能涵盖描述源码依赖(BUILD文件),分布式集群build,测试。与源码管理系统、自动化部署系统、CI系统都有很好的集成。原文:https://zhuanlan.zhihu.com/p/55...

2019-09-05 10:23:34 189

原创 GO环境变量

GO开发环境依赖于一些操作系统环境变量,最好在安装GO之前就已经设置好他们。如果是Windows的话,完全不用手动设置,Go将被默认安装在目录c:/go下$GOROOT GO被安装在的位置$GOARCH 表示目标机器的处理器架构$GOOS 表示目标机器的操作系统GOBIN表示编译器和连接器的安装位置,默认是GOBIN 表示编译器和连接器的安装位置,默认是GOBI...

2019-09-04 22:19:20 173

原创 读写数据-GO高级编程

处理缓冲的输入和输出用到的主要包:fmt、os、bufio1、fmt包读取输入fmt.Scanlnfmt.Scanln(&firstName, &lastName)扫描来自标准输入的文本,将空格分隔的值依次存放到后续的参数内,直到碰到换行。fmt.Scanffmt.Scanf("%s %s", &firstName, &lastName)除了第一个...

2019-09-04 12:26:30 129

转载 ImageMagick、GraphicsMagick、命令行使用示例

原文:https://www.iteye.com/blog/elf8848-382528ImageMagick和GraphicsMagick两款软件,是我常用来进行图片处理的工具,支持丰富的特性。

2019-09-03 12:51:07 378

原创 学习GO心得

1.包里面的方法,不像PHP那样,方法的实现逻辑都是用GO语言实现的逻辑封装,比较直接,易于理解。

2019-08-30 10:36:22 71

转载 如何获得内心的持久安宁?

偶尔踌躇满志,经常混吃等死。这是我在过去多年间的常态。按理说,混吃等死,心态和身体上都应该是极度舒适的。动脑多累啊,努力工作多累啊。其实不然。当我混吃等死时,我的心情其实是很不好的。空虚、彷徨、绝望、焦虑……纷至沓来,让我的情绪混乱而易走极端。虽然吃美食、刷网页、看小说、打游戏……都能带来愉悦的感觉,但那都是极短暂的,很快就会被一种无所事事的内疚感和空虚感淹没。以前,我虽然讨厌自己的状态...

2019-08-29 09:47:36 360 1

原创 什么事情最痛苦?

人生最大的痛苦莫过于,坚持了不该坚持的,放弃了不该放弃的!

2019-08-29 09:44:51 234

原创 什么是命运?

物理法则,自然规律,除此之外,没有什么是不可以推翻的!

2019-08-29 09:43:10 180

原创 vim 代码跳转在新标签打开方式

在.vimrc文件中设置键盘映射:nnoremap <silent><Leader><C-]> <C-w><C-]><C-w>T说明: 静默方式 前缀键,可自由设定,使用mapleader

2019-08-23 18:00:12 1119

原创 Go接口与反射

接口中不能包含变量接口定义了一组方法,但是这些方法不包含实现代码约定:只包含一个方法的接口名字,由方法名加[e]r后缀组成,像:Printer、Reader、Writer、Logger、Converter不常用的方式,当后缀er不合适的时候,比如Recoverable或IRecover加able后缀或者I前缀...

2019-08-08 20:44:57 390

原创 Go Map

定义map:一种特殊的数据结构,元素对的无序集合,也称关联数组或字典。快速寻找值的理想结构,给定key,对应的value可以快速定位,在其它语言中,也称为hash,hashTable,字典(Python)声明、初始化和 make// keytype和valuetype之间允许空格,但是gofmt移除了空格var map1 map[keytype]valuetypevar map1 map...

2019-08-06 15:11:19 169

原创 Go结构和方法

定制类型GO通过类型别名和结构体的形式支持用户自定义类型一个带属性的结构体试图表示一个现实世界中的实体结构体是符合类型,也是值类型,因此可以通过new来创建在一个结构体中,字段名字必须是唯一的GO中没有类的概念,因此在GO中结构体有着更为重要的地位...

2019-08-05 22:32:31 788

原创 Go 程序的基本结构和要素

Go 程序的基本结构和要素包(pkg):结构化代码的一种方式,类似其他语言的类库和命名空间的概念,每个GO文件仅属于一个包。文件名和包名一般不相同// 表示一个可独立执行的程序,每一个GO应用程序都包含一个名为main的包package main如果打算编译的包名不是main,如pack1,编译后产生的对象将会是pack1.a,而不是可执行程序包名不是main的包,怎么进行编译生成....

2019-08-05 22:04:47 87

原创 GO文件名、关键字、标识符

GO文件名、关键字、标识符源文件后缀:.go文件名:均由小写字母组成,多部分用下划线进行分割,不包含空格等其他特殊字符源文件大小没有限制GO语言区分大小写有效标志符:以任何UTF-8编码的字符或_开头,紧跟0个或多个字符或Unicode数字,不能以数字开头_ 是空白标志符,任何类型都可以赋值给它,都将被抛弃,不能在后续代码中使用,也不可以将其赋值给其他变量或运算匿名变量:编码过程中,...

2019-08-05 17:16:42 333 1

原创 Matchvs介绍

Matchvs1.简介Matchvs游戏云,简称“Matchvs”,一款商业化游戏服务器引擎。它将一整套联网功能集成为一个高可用的SDK,通过SDK API,允许开发者根据自身的游戏逻辑定制开发。2.特性待补充。。。3.架构说明GS架构gameServer 与 Matchvs Server之间使用基于***长连接、二进制协议的高性能RPC组件通讯***,能很好地支持Matc...

2019-08-05 16:39:01 2286

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除