首页
学习
活动
专区
工具
TVP
发布

码匠的流水账

专栏作者
2402
文章
1906602
阅读量
65
订阅数
聊聊golang的Pseudo-versions
Pseudo-versions,中文大概是伪版本的意思,就是没有打语义版本tag(semantic version tags)的会使用伪版本
code4it
2022-06-08
4610
聊聊软件开发的SLAP原则
本文主要研究一下软件开发的SLAP(Single Level of Abstraction Principle)原则
code4it
2022-04-05
3590
聊聊dbsync的jobs
dbsync的Schedulable定义了URL、ID、*contract.Sync、Schedule、Status、status属性,它提供了Clone、Done、IsRunning、ScheduleNexRun、Init、Validate方法。
code4it
2021-04-29
4230
聊聊dbsync的Criterion
dbsync的Criterion是一个fmt.Stringer类型,它内置了greaterOrEqual、greaterThan、lessOrEqual、between类型,并提供ToCriterion方法进行转换。
code4it
2021-04-29
2980
聊聊go.cqrs的EventHandler
go.cqrs的EventHandler定义了Handle方法;InternalEventBus的PublishEvent方法会遍历指定event.EventType()的handlers,挨个执行handler.Handle(event)方法。
code4it
2021-04-16
4640
聊聊go.cqrs的Dispatcher
go.cqrs的Dispatcher接口定义了Dispatch、RegisterHandler方法;InMemoryDispatcher定义了map[string]CommandHandler属性,其Dispatch方法根据command.CommandType()获取handler,然后执行handler.Handle(command);其RegisterHandler方法遍历commands,然后获取command的type,挨个注册到map[string]CommandHandler中。
code4it
2021-04-16
3020
聊聊go.cqrs的DomainRepository
go.cqrs的DomainRepository定义了Load、Save方法;GetEventStoreCommonDomainRepo实现了DomainRepository接口,其Load方法主要是读取event,然后挨个执行aggregate.Apply;其Save方法主要是将aggregate.GetChanges()转换为event,然后通过streamWriter.Append写入,然后执行aggregate.ClearChanges(),最后执行r.eventBus.PublishEvent。
code4it
2021-04-16
2310
聊聊dubbo-go-proxy的loggerFilter
dubbo-go-proxy/pkg/filter/logger/logger.go
code4it
2021-02-09
2480
聊聊promtail的positions
promtail的Positions接口定义了GetString、Get、PutString、Put、Remove、SyncPeriod、Stop方法;positions实现了Positions接口;其Get方法从p.positions读取数据;其Put方法写数据到p.positions中;其SyncPeriod方法返回的是p.cfg.SyncPeriod;其Remove方法将path从p.positions中删除。
code4it
2021-02-08
4160
聊聊dubbo-go-proxy的Client
dubbo-go-proxy的client.Client接口定义了Init、Close、Call、MapParams方法;其dubbo.Client实现了client.Client接口;其主要是通过mapper进行参数转换,然后通过GenericService.Invoke进行请求。
code4it
2021-02-08
2840
聊聊gorm的IsolationLevel
github.com/go-sql-driver/mysql@v1.5.0/connection.go
code4it
2021-01-25
1.3K0
聊聊zerolog的Hook
zerolog提供了Hook接口,用于修改event;log.Hook方法用于注册hook;log.newEvent方法在创建event的时候会把自己的hooks拷贝给event;event的msg方法会遍历event的hooks,然后挨个执行Hook的Run方法。
code4it
2021-01-12
4230
聊聊golang的zap的error
zap提供了Error及Stack方法用于创建ErrorType类型的error及StringType的stacktrace;ErrorType类型的Field使用的是encodeError方法;takeStacktrace方法通过runtime.Callers来获取frames,之后遍历frames,将其拼接为string。
code4it
2020-12-28
3020
聊聊golang的zap的ReflectType
/usr/local/go/src/encoding/json/stream.go
code4it
2020-12-24
2910
聊聊golang的zap的encoder
Encoder接口内嵌了ObjectEncoder,定义了Clone、EncodeEntry方法;ObjectEncoder接口定义了各种类型的一系列Add方法;MapObjectEncoder实现了ObjectEncoder接口,内部使用map[string]interface{}来存放数据。
code4it
2020-12-24
8100
聊聊golang的zap的CheckedEntry
CheckedEntry内嵌了Entry,定义了ErrorOutput、dirty、CheckWriteAction、cores属性;entry包使用_cePool来获取和归还CheckedEntry;CheckedEntry提供了AddCore方法往CheckedEntry的cores添加core,其Write会遍历cores挨个执行core的Write方法,其reset方法用于在从pool中取出CheckedEntry时重置其属性。
code4it
2020-12-24
4340
聊聊golang的zap的buffer
zap@v1.16.0/internal/bufferpool/bufferpool.go
code4it
2020-12-24
7360
聊聊golang的zap的zapgrpc
https://github.com/grpc/grpc-go/blob/master/grpclog/logger.go
code4it
2020-12-24
6850
聊聊golang的zap的Core
Core接口内嵌了LevelEnabler,定义了With、Check、Write、Sync方法;它有nopCore及ioCore两种实现,ioCore内嵌了LevelEnabler,定义了Encoder、WriteSyncer(out)属性,其中encoder用来序列化entry为bytes,而WriteSyncer则用于写入bytes。
code4it
2020-12-11
2630
聊聊golang的zap的NewExample
NewExample使用通过core来创建Logger,其中core使用的Encoder为JSONEncoder,WriteSyncer使用的是os.Stdout,LevelEnabler使用的是DebugLevel;NewJSONEncoder创建的是jsonEncoder;其EncodeEntry方法一次打印LevelKey、TimeKey、LoggerName、Caller,最后才是业务的message本身,然后结束json打印,对于有stacktrace还会以非json的形式(普通堆栈形式)打印stacktrace
code4it
2020-12-11
3700
点击加载更多
社区活动
腾讯技术创作狂欢月
“码”上创作 21 天,分 10000 元奖品池!
Python精品学习库
代码在线跑,知识轻松学
博客搬家 | 分享价值百万资源包
自行/邀约他人一键搬运博客,速成社区影响力并领取好礼
技术创作特训营·精选知识专栏
往期视频·千货材料·成员作品 最新动态
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档