Go系统可能遇到的锁问题

Posted by 夏泽民

https://github.com/gyuho/learn



docker image

Posted by 夏泽民

简介 一图看尽 docker 镜像 docker 镜像代表了容器的文件系统里的内容,是容器的基础,镜像一般是通过 Dockerfile 生成的 docker 的镜像是分层的,所有的镜像(除了基础镜像)都是在之前镜像的基础上加上自己这层的内容生成的 每一层镜像的元数据都是存在 json 文件中的,除了静态的文件系统之外,还会包含动态的数据 使用镜像:docker image 命令 docker client 提供了各种命令和 daemon 交互,来完成各种任务,其中和镜像有关的命令有:



go.dev

Posted by 夏泽民

go.dev 是 go 官方团队于 2019 年 11 月上线的集合 go 开发资源的网站,包括一些学习课程和一些 go 的案例,当然最重要的就提供了 go 的第三方包的检索功能。没错,他就是用来取代原来的godoc.org的,现在 godoc.org 上也有提示提醒用户迁移到 pkg.go.dev。在这篇文章中,我们将把 go module 模块发布到 pkg.go.dev。 这次要发布的代码放在 github,所以新建一个项目叫 how-to-release-go-module 新增 hello.go 文件 为 hello.go 添加两个方法和相关注释



dci 四色模型结合

Posted by 夏泽民

https://www.jdon.com/dci.html DCI是对象的Data数据, 对象使用的Context场景, 对象的Interaction交互行为三者简称, DCI是一种特别关注行为的模式(可以对应GoF行为模式),而MVC模式是一种结构性模式,DCI可以使用演员场景表演来解释,某个实体在某个场景中扮演包公,实施包公升堂行为;典型事例是银行帐户转帐,转帐这个行为按照DDD很难划分到帐号对象中,它是跨两个帐号实例之间的行为,我们可以看成是帐号这个实体(PPT,见四色原型)在转帐这个场景,实施了钞票划转行为,这种新的角度更加贴近需求和自然,结合四色原型 DDD和DCI可以一步到位将需求更快地分解落实为可运行的代码,是国际上软件领域的一场革命。 DDD DCI和领域事件 DDD是领域驱动设计(Domain-Driven Design )的简称,DDD是一种分析设计建模方法,它倡导统一语言,提出了实体和值对象 以及聚合根等概念,借助DDD我们能够在结构理清需求中领域模型。DDD专题。



golang net/http输出context引起的map panic

Posted by 夏泽民

在net/http里打印http.Request的context会出现panic。具体的错误error, fatal error: concurrent map read and map write 。 我们知道golang的map不是线程安全的,多个协程不加锁对map并发读写会触发data race,然后panic异常退出。 下面是出现net/http context panic的问题代码,代码的逻辑很简单,就是定义一个api,然后打印context而已。把服务运行起来后,我们可以用ab, wrk来进行压测,来制造data race竞争的场景。



Search

Popular posts

Anything in here will be replaced on browsers that support the canvas element

Recent posts

This blog is maintained by 夏泽民

Get in touch with me at 465474307@qq.com

Subscribe to our mailing list

* indicates required