获得徽章 0
第四天
要走出来了,放平心态,自己最棒,松弛感,加油
评论
第三天
小伙伴们日常开发中,都有用过 padding 和 margin 吧,margin 一般用做边距,让两个元素隔开一点距离,但是对于一些场景下,我们很难通过计算得到一个除的尽的值,比如 100px 我要让 3 个元素等分,且每个元素隔开 10px,这就很尴尬了。
没关系!我们可以用 gap 属性,gap 属性它适用于 Grid 布局、Flex 布局以及多列布局,并不一定只是 Grid 布局中可以使用。
展开
评论

第二天
一个完整的编译器整体执行过程可以分为三个步骤:

Parsing(解析过程):这个过程要经词法分析、语法分析、构建AST(抽象语法树)一系列操作;
Transformation(转化过程):这个过程就是将上一步解析后的内容,按照编译器指定的规则进行处理,形成一个新的表现形式;
Code Generation(代码生成):将上一步处理好的内容转化为新的代码;

展开
评论
打卡第一天~

fasthttp号称比net/http快十倍,其优化的核心思路很简单:资源复用。


复用 goroutine,减轻 runtime 调度压力;


对象复用,大量使用 sync.Pool 减轻 GC 压力。


除了复用,还有其他的一些优化手段,例如尽量避免 string 与 []byte 的转换开销等。
这些优化技巧和最佳实践,在其 Github 主页上已经贴心给出:_github.com/valyala/fas…
因为fasthttp的实现与标准库差距较大,所以它与net/http的 API 接口是不同的,这导致从net/http重构为fasthttp需要一些学习成本。
使用fasthttp的知名项目:Fiber、Gearbox、atreugo
展开
评论
#青训营 x 字节后端训练营#
拒绝bigkey
防止网卡流量、慢查询,string类型控制在10KB以内,hash、list、set、zset元素个数不要超过5000。
反例:一个包含200万个元素的list。
非字符串的bigkey,不要使用del删除,使用hscan、sscan、zscan方式渐进式删除,同时要注意防止bigkey过期时间自动删除问题(例如一个200万的zset设置1小时过期,会触发del操作,造成阻塞,而且该操作不会不出现在慢查询中(latency可查)),查找方法和删除方法
选择适合的数据类型
例如:实体类型(要合理控制和使用数据结构内存编码优化配置,例如ziplist,但也要注意节省内存和性能之间的平衡)

展开
评论
#青训营 x 字节后端训练营#
版本库👉.git

当我们使用git管理文件时,比如git init时,这个时候,会多一个.git文件,我们把这个文件称之为版本库。
.git文件另外一个作用就是它在创建的时候,会自动创建master分支,并且将HEAD指针指向master分支。
工作区

本地项目存放文件的位置
可以理解成图上的workspace
暂存区 (Index/Stage)

顾名思义就是暂时存放文件的地方,通过是通过add命令将工作区的文件添加到缓冲区
本地仓库(Repository)

通常情况下,我们使用commit命令可以将暂存区的文件添加到本地仓库
通常而言,HEAD指针指向的就是master分支
展开
评论

#青训营 x 字节后端训练营#
版本库👉.git

当我们使用git管理文件时,比如git init时,这个时候,会多一个.git文件,我们把这个文件称之为版本库。
.git文件另外一个作用就是它在创建的时候,会自动创建master分支,并且将HEAD指针指向master分支。
工作区

本地项目存放文件的位置
可以理解成图上的workspace
暂存区 (Index/Stage)

顾名思义就是暂时存放文件的地方,通过是通过add命令将工作区的文件添加到缓冲区
本地仓库(Repository)

通常情况下,我们使用commit命令可以将暂存区的文件添加到本地仓库
通常而言,HEAD指针指向的就是master分支
展开
评论
#青训营 x 字节后端训练营#
第一天
ProtoBuf 的全称是 Protocol Buffers,它是由 Google 开发和定义的与 XML、JSON 类似的一种协议格式,用于高效存储与读取结构化数据。它基于二进制,因此使用 ProtoBuf 能将数据压缩得更小
展开
评论
第一天
“诗和远方”不是生活的主旋律,“眼前的 且”也只是生活中偶尔出现的小确丧 生活并不总是充满了风花雪月,平淡无奇也确实 是常有的,甚至会有许多无法预测的挫折和逆境 国恩但是无论怎样我们是否能始终保持心灵的平 静旷达,在平凡的生活里,打破庸常和无聊,努 力的将日子过得热气腾腾并充满诗意
评论