微游技术部一周分享 20240310期

本周关键字:安卓广告多线程,lego签发证书,js 异步队列,阿语本地化,k8s系统资源预留,pc和mobile切换,framer motion,snowflake,zerolog,go单元测试,go syncMap,gpu过度绘制。

minigame-logo

大家好,以下是微游互娱技术部本周的分享:

1. [Android开发] Android — 多进程中使用广告SDK问题与一种解决方案

https://juejin.cn/post/7344259131715485731

大部分App都会接入广告SDK来变现流量增加收入,但是如果App中使用了多进程,广告会出现无法正常播放的情况。
本文介绍了一种解决方法。

2. [运维] 使用go-acme/lego自动签发https证书

https://juejin.cn/post/7344258204283387916

本文介绍如何使用 go-acme/lego 的客户端或库完成证书的自动签发。

3. [TypeScript] 用TypeScript实现高效的异步队列任务管理

https://juejin.cn/post/7344258204282552332

在javaScript项目开发中,异步编程是不可或缺的一部分。从网络请求到延时操作,异步操作使得我们能够在等待某个任务完成时继续执行其他任务,提高应用的响应性和性能。然而,随着应用逻辑的复杂化,管理这些异步任务的难度也随之增加。如何有效地组织和控制这些异步任务,成为了开发高效、可维护应用的关键。

本文使用JavaScript实现一个异步队列来优雅地管理复杂的异步任务流。

4. [产品设计] 关于阿拉伯本地化设计思路

https://juejin.cn/post/7344258231231152167

阿拉伯语,是世界上第三大书面语言,仅次于英语和汉语,在中东大约有6亿多人在使用。

阿拉伯语是一种从右往左书写的语言,在页面布局、元素摆放和现代汉字都存在着相当大的差异。因此,在产品界面的阿拉伯语本地化工作中,并不只是将语言简单地做翻译,而是需要考虑整个系统设计及体验,并符合当地的语言和使用习惯。

本文介绍阿语本地化的一些设计思路。

5. [k8s] Kubernetes 系统资源预留

https://overstarry.vip/posts/kubernetes_resource_reservation/

Kubernetes 的 pod 可以按照节点的资源进行调度,默认情况下 pod 能够使用节点的全部资源,这样往往会出现因为节点自身运行的一些驱动及 Kubernetes 系统守护进程,导致资源不足的问题。

那么如何解决这个问题呢? 这时可以通过为 Kubernetes 集群配置资源预留,kubelet 暴露了一个名为 Node Allocatable 的特性,有助于为系统守护进程预留计算资源,Kubernetes 也是推荐集群管理员按照每个节点上的工作负载来配置 Node Allocatable。

本文介绍 Kubernetes 集群配置资源预留的使用方法。

6. [Web开发] pc和mobile切换方式

https://juejin.cn/post/7344567580642787343

本文介绍Web站点在pc和mobile端切换的不同方式。

7. [Web开发] 使用 Framer Motion 实现滚动动画

https://juejin.cn/post/7344260655757180965

Framer Motion 是一个强大的 React 动画库,它提供了简单、强大和可扩展的 API,用于创建各种类型的动画效果。

本文介绍Framer Motion 的基本使用,和如何使用其提供的 API 快速实现滚动动画。

8. [Go开发] 分布式全局唯一ID: snowflake 算法

https://juejin.cn/post/7344164779630706714

在分布式系统中,经常需要生成全局唯一ID。雪花算法是由Twitter开源的一种生成全局唯一ID的算法,在业中广泛应用。本文将介绍雪花算法,以及Go如何使用雪花算法来生成全局唯一ID。

9. [Go开发] zerolog使用不完全手册

https://juejin.cn/post/7344089411985178650

日志组件作为应用程序的基础组件之一,其重要作用不言而喻,并且因为调用频度高,其性能高低,对业务的性能有直接的影响,特别是在以高并发定位的服务端应用中。

本文介绍日志组件zerolog,它是golang实现的,以高性能著称。

10. [Go开发] go test与gomock单元测试使用示例

https://juejin.cn/post/7344571292354773055

过于依赖集成测试可能存在测试流程较长以及某些场景/条件覆盖不到的问题,相比之下单元测试则是提升测试速度与程序质量的重要工具。go test是go语言官方的单元测试工具,可实现简单的单元测试功能。而对于一些大量使用依赖注入的复杂系统,做单元测试是总少不了mock框架,而go语言也提供了gomock这一官方的mock框架。

本文将提供一个go test与gomock结合做单元测试的示例。

11. [Go开发] Golang syncMap 详解

https://juejin.cn/post/7344089411985276954

在 Golang 中,sync.Map 是一个并发安全的 Map 实现,可以在多个 Goroutine 中安全地读写 Map。本文将对 sync.Map 进行详细的介绍,包括创建、初始化、添加元素、删除元素、遍历等操作,并提供相应的示例代码。

12. [QA] GPU过度绘制

https://juejin.cn/post/7344571269555093567

本文介绍安卓App测试中判断GPU过度绘制的方法。

以上。