微游技术部一周分享 20240519期

本周关键字:Android开发环境兼容,游戏测试,接口测试,metabase,缓存设计,MD5加盐,包管理,turborepo,go html 引擎,go struct复制,id特殊字符选择,Python 打包exe。

minigame-logo

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

1. [Androi的开发] Android Studio开发环境兼容性梳理(AGP、KGP、Gradle)

https://juejin.cn/post/7362924623825403919

Android Studio是目前Android开发最常用的集成开发环境(IDE),它使用Gradle进行项目构建,并且可以集成专门针对Android应用构建的Android Gradle Plugin(AGP)。另外如果项目中需要使用Kotlin,还可以集成Kotlin Gradle Plugin(KGP)。在开发过程中,如果AGP、KGP、Gradle不兼容,可能会导致编译失败。

本文介绍AGP、KGP与Gradle的兼容性。

2. [QA] 游戏测试需要注意到哪些方面(3)

https://juejin.cn/post/7362029084879486976

游戏本身其实是一个虚拟世界,是人类社会的另一种方式的体现,所以也包含了人类社会的一部分特性,特别是经济的体现。同时它又是游戏,所以还涉及到娱乐性。可玩性等独有特性,所以游戏测试的时候,我们还得注意游戏的平衡性给玩家的体验是否良好。本文针对游戏的体感测试进行了介绍。

3. [QA] 接口测试测什么?

https://juejin.cn/post/7369799708636348470

本文介绍软件测试中,接口测试的内容:接口测试是指对系统接口进行测试的一种质量保障手段,主要是验证接口的功能、性能、安全性等方面是否符合预期。

3. [开源项目] metabase 介绍及简单使用

https://juejin.cn/post/7369784341466333224

本文介绍一个数据可视化工具 Metabase 的概念和使用方法。它是一个简单易用的开源项目,旨在为公司中的每个人提供商业智能和分析的最简单、最快捷的方法。

5. [系统设计] 缓存杂谈——应用缓存设计

https://juejin.cn/post/7369903163803533327

本文介绍系统设计中必不可少的一部分:缓存。

在高并发的业务场景下,系统的设计重心有很大一部分落在性能上。性能的考虑因素简单来说,就是空间和时间:空间指系统的存储成本(字节数),包括持久化存储(数据库)、缓存(Cache)等,时间是指系统的吞吐能力(TPS、QPS、seconds/request等)。

所有的性能方案归根结底都是二者之间的博弈和权衡,最常见的就是牺牲空间换时间,通过增加缓存(Cache)的方式来提高吞吐能力。

6. [系统设计] 密码传输加密:MD5加盐

https://juejin.cn/post/7369784306397708328

本文介绍密码传输中对MD5加盐的概念和基本原理。

7. [js开发] 包管理工具 npm/yarn/pnpm对比,你选对了码

https://juejin.cn/post/7370008254719803431

在前端开发领域,包管理工具是开发者不可或缺的利器。它们不仅帮助我们管理依赖,还能提升项目的构建效率。目前,最常用的三大前端包管理工具分别是 npm、Yarn 和 pnpm。

本文深入探讨这三种工具的优缺点,帮助你在项目中做出最合适的选择。

8. [项目管理] 使用 Turborepo 管理的 Monorepo 项目跨项目时如何共享代码

https://juejin.cn/post/7369903163804385295

如果在同一个 Monorepo 项目中使用的,那么内部库就足够了,但是如果遇到多个项目同时需要使用公共的代码,那么就会需要考虑外部库(External Packages),相较于内部库而言,外部库会经过打包、发布版本、推送到一个集中的 npm 仓库提供给不同的项目使用,在跨项目使用的场景下使用,比如团队内基础组件库。

本文介绍使用 Turborepo 管理的 Monorepo 项目跨项目时如何共享代码,主要介绍外部库的打包和发布版本方式。

9. [Go开发] Go Libs :html/template (构建动态 HTML 页面)

https://juejin.cn/post/7369903163803910159

本文介绍 Go 语言内置的一个强大的模板引擎 html/template,它可以帮助我们轻松地构建动态 HTML 页面。它实现数据驱动模板,用于生成安全的 HTML 输出,防止代码注入。它提供与text/template相同的界面,并且只要输出是 HTML, 就应该使用它来代替 text/template 。

10. [Go开发] golang在struct间复制数据并忽略字段大小写与类型差异

https://juejin.cn/post/7369876349489397799

在golang开发中,表现层、业务层、数据层往往定义了各自的struct,经常需要在这些struct间复制数据,复制数据时可能需要忽略字段大小写差异、以及字段类型差异等。

本文给出用copier框架实现数据复制的示例。

11. [Web开发] id选择器出现特殊字符

https://juejin.cn/post/7369903170536390671

有些第三方 sdk 会使用特殊字符串作为选择器,导致获取该元素失败。本文针对这种情况列举相应的处理方案。

12. [Python开发] Python打包成exe的方法介绍

https://juejin.cn/post/7369876349488775207

python的开发效率非常的高,但是当我们用python写一些小工具需要给用户使用的时候,用户大多数是没有安装python的。

本文介绍两种python的打包方案,使用pyinstaller和nuitka打包成exe(或其他操作系统的可执行程序)后便可以直接分发给用户,无需用户安装python。

以上。