微游技术部一周分享 20240526期
本周关键字:Kratos header,go slug,gRPC消息大小,go 自定义规则引擎,偶发性bug,测试基本问题,BRD,极端情况设计,判断上传图片尺寸,Vue命令式组件,json格式化,React Effect,图片懒加载,Redis Keys,Android 同意条款。
大家好,以下是微游互娱技术部本周的分享:
1. [go开发] Kratos在service方法中获取header中的数据
kratos是go语言中常用的微服务框架,用于开发HTTP服务时,可能需要获取前端请求的header信息。kratos官方文档中关于如何获取header数据的例子隐藏得较深,对新手来说不太好找。文本提供一个获取前端请求的header信息的例子。
2. [go开发] go 生成 slug
slug 在不同的场景有不同的意义,在 URL 中表示一种用于描述资源的短简洁易于理解的资源描述符,在数据库系统中还可以用于描述资源的唯一标识符,总的来说 slug 可以用来标识和描述资源的文本标识符,有很好的可读性和唯一性。
本文将介绍 golang 中如何根据字符串生成相应的 slug 文本。
3. [go开发] 如何解决 gRPC 中的 "received message larger than max"
在gRPC进行服务间通信时,发送了一个较大的消息,出现 "grpc: received message larger than max" 的错误。
原因是,gRPC 客户端和服务端都有一个默认的最大消息大小限制,默认为4MB, gRPC在发送或接收的消息大小超过最大限制时,就会抛出这个错误,导致通信失败。
解决方法为修改消息大小限制。
4. [go开发] 如何用Golang实现自定义规则引擎
规则引擎的功能可以简化为当满足一些条件时触发一些操作,通常使用 DSL 自定义语法来表述。规则引擎需要先解析 DSL 语法形成语法树,然后遍历语法树得到完整的语法表达式,最后执行这些语法表达式完成规则的执行。
本文以哔哩哔哩开源的gengine 来探讨如何设计和实现一个自定义规则引擎。
5. [QA] 游戏测试需要注意到哪些方面(4)
本文介绍游戏测试中遇到偶现bug的处理方法。
6. [QA] 测试前的三个基本问题
有效的软件测试依赖于对代码更改背景的理解。为了详细了解这一背景,QA需要在合适的时间向合适的人提出正确的问题。没有这些背景信息,可能无法设计有效的测试场景。
提问不仅对于深入了解至关重要,而且对于确保交付的软件满足每个利益相关者的期望也非常重要。
本文介绍测试前QA需要了解的三个基本问题:
- 发生了什么变化?
- 为什么改变?
- 影响在哪里?
7. [产品设计] BRD商业需求文档
本文介绍商业需求文档(BRD)的相关概念。
8. [产品设计] 设计中容易遇到的极端情况
当我们在进行产品设计的时候,设计师会优先考虑理想状况下的各种场景,而理想的用户流程是没有任何问题和障碍的。但是现实开发很少按照我们期望的方式还原我们的产品。超出预期之外的情况,就是我们通常所说的「边缘情况」,或者说「极端情况」。
本文介绍在产品设计中如何正确处理极端情况。
9. [Web开发] 前端如何判断上传图片尺寸(宽度和高度)
本文介绍在上传图片时,前端如何判断图片的宽高是否符合需求。
10. [Web开发] Vue命令式组件的编写与应用
本文介绍Vue.js框架中,命令式组件的编写方法与应用场景。
11. [Web开发] 格式化json文件
在日常开发中,经常会跟json文件打交道。一般如果保存一个json文件,不做处理的话,内容会被直接以紧凑的格式保存在文件里。如果要查看对应的内容会比较不方便,需要再格式化处理下。本文就列举一些,在node环境下json文件如何快速格式化处理的方案。
12. [Web开发] 理解 React Effects Hooks 及其优化方案
在阅读 React 官方文档的过程中发现,官方在学习一栏中花费了大量的篇幅描述该如何使用 Effects,但是又呼吁开发者在非必要的情况下减少对 Effects 的使用。
本文详细探讨 React Effects 以及相关 Hooks。
13. [Web开发] 高性能图片懒加载
图片懒加载(Lazy Loading)是一种网页优化技术,当图片需要显示时才加载,避免了不必要的流量消耗和服务器带宽浪费。
本文介绍图片懒加载的基本原理和实现方法。
14. [Redis] redis系列——keys真的屡试不爽吗?
本文介绍Redis Keys的基本原理和局限性,并提出,对于不确定key数量的查询,最好使用scan替换,避免出现因为keys指令导致redis卡顿的问题。
15. [Android开发] Android — 实现同意条款功能
在开发App时,让用户知晓并同意隐私政策、服务协议等条款是必不可少的功能,恰逢Facebook最近对隐私政策的审核愈发严格,本文介绍如何通过TextView和ClickableSpan简单快速的实现同意条款功能。
以上。