TypechoJoeTheme

Dcr163的博客

统计

最新文章

2021-11-29

Thinkphp框架中的钩子与行为

Thinkphp框架中的钩子与行为
Thinkphp框架中的钩子与行为笔记官方说明ThinkPHP中的行为是一个比较抽象的概念,你可以把行为想象成在应用执行过程中的一个动作。在框架的执行流程中,例如路由检测是一个行为,静态缓存是一个行为,用户权限检测也是行为,大到业务逻辑,小到浏览器检测、多语言检测等等都可以当做是一个行为,甚至说你希望给你的网站用户的第一次访问弹出Hello,world!这些都可以看成是一种行为,把这些行为抽离出来的目的是为了让你无需改动框架和应用,而在外围通过扩展或者配置来改变或者增加一些功能。而不同的行为之间也具有位置共同性,比如,有些行为的作用位置都是在应用执行前,有些行为都是在模板输出之后,我们把这些行为发生作用的位置称之为钩子,当应用程序运行到这个钩子的时候,就会被拦截下来,统一执行相关的行为,类似于AOP编程中的“切面”的概念,给某一个钩子绑定相关行为就成了一种类AOP编程的思想。一个钩子可以注册多个行为,执行到某个钩子位置后,会按照注册的顺序依次执行相关的行为。但在某些特殊的情况下,你可以设置某个钩子只能执行一次行为,又或者你可以在一个钩子的某个行为中返回false来强制终止后续的行...
2021-11-29

日志

10 阅读
0 评论
2021年11月29日
10 阅读
0 评论
2021-11-29

go module说明

go module说明
go module是什么?go module是Go语言的包管理工具,使用Go module,项目代码就不需要放在gopath下的src文件夹。go1.11出现go module,go.1.13推荐使用,go1.14版本默认使用只需要在指定的文件夹下运行,例如 demo :go mod init demo这样就可以在dome这个目录进行开发了,初始化之后会生成一个go.mod,里面记录了一些项目的环境和第三方包等安装第三方包,例如安装 gin微框架:go get -u github.com/gin-gonic/gin安装第三方包之前先修改GOPROXY这个配置,否则可能会很慢或者下载失败~,怎么修改 https://www.dcr163.cn/605.html
2021-11-29

GO相关

13 阅读
0 评论
2021年11月29日
13 阅读
0 评论
2021-11-29

golang环境修改GOPROXY为七牛云镜像,加速下载第3方包

golang环境修改GOPROXY为七牛云镜像,加速下载第3方包
golang环境修改GOPROXY为七牛云镜像,加速下载第3方包大家都知道,在我们的网络环境下都是有防火墙的,想要访问github.com是比较慢的,为了防止go开发过程中下载第3方包失败的情况,我们需要修改一下配置直接在用go运行下面的命令即可go env -w GOPROXY=https://goproxy.cn,direct
2021-11-29

GO相关

11 阅读
0 评论
2021年11月29日
11 阅读
0 评论
2021-11-29

go语言介绍

go语言介绍
Go语言为并发而生o语言(或 Golang)是Google开发的开源编程语言,诞生于2006年1月2日下午15点4分5秒,于2009年11月开源,2012年发布go稳定版。Go语言在多核并发上拥有原生的设计优势,Go语言从底层原生支持并发,无须第三方库、开发者的编程技巧和开发经验。go是非常年轻的一门语言,它的主要目标是“兼具Python 等动态语言的开发速度和C/C++等编译型语言的性能与安全性”很多公司,特别是中国的互联网公司,即将或者已经完成了使用 Go 语言改造旧系统的过程。经过 Go 语言重构的系统能使用更少的硬件资源获得更高的并发和I/O吞吐表现。充分挖掘硬件设备的潜力也满足当前精细化运营的市场大环境。Go语言的并发是基于 goroutine 的,goroutine 类似于线程,但并非线程。可以将 goroutine 理解为一种虚拟线程。Go 语言运行时会参与调度 goroutine,并将 goroutine 合理地分配到每个 CPU 中,最大限度地使用CPU性能。开启一个goroutine的消耗非常小(大约2KB的内存),你可以轻松创建数百万个goroutine。g...
2021-11-29

GO相关

11 阅读
0 评论
2021年11月29日
11 阅读
0 评论
2021-11-29

2020新版Go开发工程师完结视频教程

2020新版Go开发工程师完结视频教程
2020新版Go开发工程师完结阶段一:Go语言基础入门和编程思维阶段二:租辆酷车小程序与TypeScript阶段三:“租辆酷车”共享出行产品设计与研发阶段四:“租辆酷车”架构演进之高性能位置更新与服务部署阶段五:电商项目- 微服务基础阶段六:从0到1实现完整的微服务框架阶段八:分布式系统核心、微服务的部署直接上链接:链接:https://www.aliyundrive.com/s/DC3dyEFswd7
2021-11-29

日志

12 阅读
0 评论
2021年11月29日
12 阅读
0 评论
2021-11-29

Typecho安装百度主动推送插件

Typecho安装百度主动推送插件
Typecho安装百度主动推送插件Typecho-ActiveSubmit主动推送是目前百度收录效果最好的,本插件会在在文章发布时主动推送给百度。主动推送:最为快速的提交方式,建议您将站点当天新产出链接立即通过此方式推送给百度,以保证新链接可以及时被百度收录。(特别适合时效性文章)使用说明上传文件后解压并重命名为ActiveSubmit激活后在后台配置你的百度推送接口token(在百度搜索资源平台-提交链接处获取,需要有百度账号并站点所有权验证)选择是否生成错误日志(如果生成,需要插件目录下可写权限)注意:修改位置百度更改了推送地址,所以需要把源码里的:http://data.zz.baidu.com/update?site={$baseurl}&token={$token}这段代码替换成:http://data.zz.baidu.com/urls?site={$baseurl}&token={$token}项目地址Github:https://github.com/invelop/Typecho-ActiveSubmit获取token后台插件Token配置
2021-11-29

日志

13 阅读
0 评论
2021年11月29日
13 阅读
0 评论
2021-11-28

golang中内置map类型使用routing报错方案笔记

golang中内置map类型使用routing报错方案笔记
golang中内置map类型使用routing报错方案笔记//gorouting中内置map类型报错笔记 package main import ( "fmt" "strconv" "sync" ) var ( wg sync.WaitGroup map1 = make(map[string]int) map2 = sync.Map{} //不需要make初始化 ) func main(){ //fatal error: concurrent map writes 使用内置的map类型,做并发的时候会报致命错误 //for i := 0; i < 20; i++ { // wg.Add(1) // go appedMap(i) //} for i := 0; i < 200; i++ { wg.Add(1) go appedSyncMap(i) ...
2021-11-28

GO相关

13 阅读
0 评论
2021年11月28日
13 阅读
0 评论
2021-11-28

golang读写互斥锁笔记

golang读写互斥锁笔记
golang读写互斥锁笔记//读写锁笔记 package main import ( "fmt" "sync" "time" ) var ( x = 0 rwlock sync.RWMutex wg sync.WaitGroup ) func main() { //开始时间 stime := time.Now() // for i := 0; i < 5; i++ { wg.Add(1) //因为写操作需要等待,所以这里会花费 5*模拟写操作需要1s 的时间 go write() } for i := 0; i < 1000; i++ { wg.Add(1) go read() //因为读操作不需要等待,所以1000次,花费的时间也是第一次读取的时间 } wg.Wait() //结束时间 eti...
2021-11-28

GO相关

12 阅读
0 评论
2021年11月28日
12 阅读
0 评论
2021-11-28

golang里的互斥锁使用

golang里的互斥锁使用
golang里的互斥锁使用package main import ( "fmt" "sync" ) var wg sync.WaitGroup var lock sync.Mutex var run int = 0 func main() { //未加锁,造成读写混乱 //wg.Add(3) //go addNum() //go addNum() //go addNum() //wg.Wait() //fmt.Println(run) //这里不是我们预期的结果3000,随机的 //加上互斥锁,解决读写混乱;将并发变成了串行,牺牲效率,保证数据安全性。 wg.Add(3) go addRun("a1") go addRun("a2") go addRun("a3") wg.Wait() fmt.Println(run) //4500 } ...
2021-11-28

GO相关

18 阅读
0 评论
2021年11月28日
18 阅读
0 评论
2021-11-28

golang里的channel通道+select

golang里的channel通道+select
golang里的channel通道//go 里的channel并发 package main import ( "fmt" "sync" ) //channel 单通道,只能添加值 func appendChannel(ch chan<- int) { defer wg.Done() for i := 0; i <10; i++ { ch <- i } close(ch) } //channel 单通道,把另一个通道的值取到另一个通道内 func addChannel(ch chan <- int,chDsc <-chan int) { defer wg.Done() for i := range chDsc { ch <- i+1 } close(ch) } func popChannel(ch <-chan int){ defer wg.Done() fmt.Pr...
2021-11-28

GO相关

19 阅读
0 评论
2021年11月28日
19 阅读
0 评论

人生倒计时

今日已经过去小时
这周已经过去
本月已经过去
今年已经过去个月

最新回复

  1. admin
    2021-08-15

    {!{data:image/webp;base64,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}!}

标签云