获得徽章 1
#青训营 x 字节后端训练营#
今天学习了产品整体开发流程,从一个想法到程序设计再到后期测试调试上线。具体介绍了产品设计、软件开发和项目管理几个重要的过程。讲解了PMI-PMP体系和敏捷项目管理。其中个人协作的方法中有PSP,单核工作法。适合大学生规划小项目。

评论
#青训营 x 字节后端训练营#
今天学习了Go1.13.8版本中Map结构体的实现。Map主要包含两个结构:数组和链表。Map中包含两个核心结构体hmap和bmap,hmap记录了结构体中的重要信息,包含了一个记录键值对的bmap。然而bmap只能存储8个键值对,则很容易造成数据溢出。数据溢出后,就需要用到hmap的extra中的overflow中,创造一个新的bmap,存储溢出的数据,原先的bmap用指针与溢出桶相连,形成数组-链表的存储形式。最后在读数据的时候,就会根据这些指针分别取每一个数据桶中寻找想要的数据。
展开
评论
#青训营 x 字节后端训练营#
今天学习了职责链模式的作用,职责链降低了对象之间的耦合度,增强了系统的可拓展性。对象连成链的方式有多重,文中主要介绍了用list或者array存储对象,循环遍历直到请求被处理完毕的方式。可以很方便的在职责链上增加鉴权、限流、脱敏、拦截等操作的操作
评论
#青训营 x 字节后端训练营#
今日学习了一种经典网络模型简化方式。网络三层架构分为核心层、汇聚层和接入层。本文介绍的模型直接去掉了汇聚层,让网管直接落在核心层的核心交换机上,这样会增加核心层的负荷,所以接入数最好在500以内。 本文还介绍了MSTP、trunk、stp等协议,这些我都不太了解,一起学习了。
展开
评论
#青训营 x 字节后端训练营#
今天学习了前后端的分离模式:前端和后端只用用异步接口来编程。由后端编写和维护接口文档,编写接口规范。前后端各自根据接口文档进行开发,Mock服务器根据接口文档自动生成Mock数据。由此可见,接口文档的重要,后面介绍了接口的规范格式。包括各种请求、数据返回格式和状态码的规范。感觉写接口文档也是一个技术含量很高的活[捂脸]
展开
评论
#青训营 x 字节后端训练营#
今天学习了go-generate工具的使用,go-generate主要用来快速编写各种状态码,generate提供了一条 //go:generate command arg1 arg2 来自动执行命令。配合stringer 就可以为给定类型生成状态码。最后使用//go:generate stringer -type=ErrCode --linecomment就可以优雅简单的处理错误了。
展开
评论
#青训营 x 字节后端训练营#
今日学习了如何使用Viper处理yaml配置文件并集成到gin中:编写统一的settings-dev.yaml后,viper会解析yaml中的字段,并根据config中的结构体完成对应的配置。global文件将viper解析出来的数据进行存储,这样每个go文件就可以引用global中的数据。
展开
评论
#青训营 x 字节后端训练营#
Go项目中,单元测试的占比很高,一般一个文件都会有一个对应的单元测试,单元测试以xxx_test.go命名。使用go test 命令可以快速运行一个包下所有的测试用例,可以加上-bench regexp执行相应的benchmarks,-cover查看覆盖率,-v显示测试的详细信息。测试也分很多种方法,合理的测试及代码利用率越高性能越好。
展开
评论
#青训营 x 字节后端训练营#
今天学习了如何使用Go语言配置json:
1. 使用ioutil包中的ReadFile读取json文件并打印数据
2. 使用json包中的Unmarshal函数将json反编码到结构体中。使用marshal将结构体编码成json。
3. 结构体编码成json过程中可以使用`json: "-"` 强制忽略指定字段。当一个值在结构体中是可选可以不选的时候,可以使用`json:"imitempty"`
展开
评论
#青训营 x 字节后端训练营#
今天学习了grpc中三种解决负载均衡的方式:集中式LB、进程内LB、独立LB进程。介绍了三种流式的RPC,其中无流的函数就是一种简单的RPC。介绍了6中负载均衡的算法,模拟了随机法的demo,我学到了随机法负载均衡的配置方法和最终效果。
评论
#青训营 x 字节后端训练营#
学习了gorm使用的规范和实践:
1.每一张表使用一个文件管理,相应的方法写在对应的controller文件下, 每一个文件中维护一个默认的私有controller,将获取controller的方法暴露给其他文件。
2. 使用TableName指定表和结构体的方法。对于CRUD方法使用对应的大写开头的英文 + 方法名的方法
3. 对于特定的数据库连接,使用事务控制,防止数据库连接覆盖。
展开
评论
#青训营 x 字节后端训练营#
今天学习了:零值有值类型和引用类型。:=语法糖初始化的变量并不是一个零值nil,而是一个分配了内存地址的实例。nil 主要用来表示引用类型的零值,表示它们未初始化的值。由于不是未定义的状态,所以不能直接分配给一个变量,在interface中,确定一个变量需要Type和Value两个属性,所以有的时候即使interface返回的是nil也会出现nil不等于nil的情况。
展开
评论
#青训营 x 字节后端训练营#
由go原生的web框架引入,到httprouter改进路由,最后讲到了gin框架,详细的介绍了gin框架中关于路由的方法和配置。同时还介绍了gin框架中logger和recovery两个中间件。对我理解gin框架由很大帮助。
评论
#青训营 x 字节后端训练营#
今天学习了Go语言几个开源的官方替换库。
1. fasthttp:fasthttp通过资源复用的方式,复用goroutine,减轻runtime调度压力,大量使用线程池,降低内存回收压力的方式等,使得其运行速度可以比官方库快。
2. jsoniter是一款 JSON 解析器,除了处理速度快以外,他还同时提供java和go两个版本。且,他与标准库完全兼容,意味着我们可以无损替换。
3. gogo/protobuf是官方版golang/protobuf的增强版,其基于二进制,可以更好的压缩数据。实现更快的序列化和反序列化。
展开
评论
下一页
个人成就
文章被点赞 1
文章被阅读 2,301
掘力值 125
收藏集
0
关注标签
27
加入于