微游技术部一周分享 20240303期
本周关键字:Admob 原生广告,Shader扭曲效果,PostgreSQL分区,git submodule,atop,etcd docker集群,表单设计,js代码混淆,FlexSearch本地搜索,SoloX性能测试,Kratos traceId。
大家好,以下是微游互娱技术部本周的分享:
1. [Android开发] Android AdMob(四)— 在RecyclerView中使用原生广告
现在许多App的主页都是以列表的形式显示数据,同时会在其中某些位置插入原生广告。本文简单介绍如何在RecyclerView中使用原生广告。
2. [Cocos Creator] Shader实现扭曲效果
本文介绍在Cocos Creator中如何使用shader实现扭曲效果?
3. [数据库] 数据库性能优化(二): PostgreSQL分区
上文提到了采用orm(ent.io)实现水平分表,来优化数据的读写性能。此方案也存在弊端:
- 跨分表进行查询、分页、排序的复杂度变高了。
- 业务层代码是需要对应调整。
那如何解决这些问题呢?可以尝试数据库(PostgreSQL)分区,和分表一样,分区亦旨在提高查询性能、简化数据管理。
今天将简介分区的概念、优势和通过重构用户表的例子来演示ent.io实现分区的过程。
4. [git] git submodule的在项目依赖中的使用
在依赖库的管理上,每种编程语言都会有自己独特的包管理机制,例如golang的mod管理。
其实还有一种更通用的,与语言无关的管理方式: git submodule 子模块管理。 本文介绍git submodule的使用。
5. [运维] atop工具介绍及使用
最近出现了服务器cpu、内存升高导致服务器宕机的问题,发生宕机后,往往由于对系统资源数据收集的不齐全,导致无法快速查明发生宕机的原因。在通过云厂商客服和网络相关资料帮助下,了解了 atop 这个工具,本文对 atop 的安装及使用进行介绍。
6. [运维] Docker搭建etcd集群时遭遇ETCD_ACTIVE_ENDPOINTS: unbound variable的解决方案
etcd容器化重心主要是k8s,所以docker上的etcd的集群功能可能不完善。使用docker compose在直接部署集群时,可能会遇到错误。本文介绍了错误的解决方法:显式指定ETCD_ACTIVE_ENDPOINTS环境变量为集群中可用的peer_endpoint。
7. [产品设计] 关于表单设计
表单在网页中主要负责数据采集的功能。本文介绍表单设计中的常用组件和使用场景。
8. [Web开发] js代码混淆(JavaScript Obfuscator)
JavaScript Obfuscator(JavaScript混淆器)是一种专用于混淆和保护JavaScript代码的工具。主要目标是增加代码的保护性,使其更难以理解和破解。本文对比了不同混淆库的不同点,并介绍了 javascript-obfuscator 的使用。
9. [Web开发] 使用 FlexSearch 实现本地全文搜索
搜索功能是网站中提供用户快速查找内容、在不同内容中跳转的一个重要功能,尤其在文档类型网站中几乎是必不可少的常见功能。
FlexSearch 是一个用于客户端(浏览器、Node.js)和服务器端(Node.js)的高性能全文搜索引擎,主要特点:快速且轻量级、支持多种搜索模式,可以在浏览器和 Node.js 环境中使用。本文介绍如何利用 FlexSearch 实现本地的全文搜索。
10. [QA] App性能测试工具:SoloX
本文介绍 App性能测试工具 SoloX 的使用。
11. [Go开发] Kratos的http服务日志增加traceId
kratos是go语言中常用的微服务框架,该框架自带有log组件。在打印日志时如果输出traceId就可以方便地追踪同一请求的日志。kratos官方的traceId相关示例比较复杂,对于一个简单的、不涉及大量上下游服务的提供给前端页面调用的http服务,文本提供一个更简单使用示例。
以上。