微游技术部一周分享 20240519期
本周关键字:Android开发环境兼容,游戏测试,接口测试,metabase,缓存设计,MD5加盐,包管理,turborepo,go html 引擎,go struct复制,id特殊字符选择,Python 打包exe。
大家好,以下是微游互娱技术部本周的分享:
1. [Androi的开发] Android Studio开发环境兼容性梳理(AGP、KGP、Gradle)
Android Studio是目前Android开发最常用的集成开发环境(IDE),它使用Gradle进行项目构建,并且可以集成专门针对Android应用构建的Android Gradle Plugin(AGP)。另外如果项目中需要使用Kotlin,还可以集成Kotlin Gradle Plugin(KGP)。在开发过程中,如果AGP、KGP、Gradle不兼容,可能会导致编译失败。
本文介绍AGP、KGP与Gradle的兼容性。
2. [QA] 游戏测试需要注意到哪些方面(3)
游戏本身其实是一个虚拟世界,是人类社会的另一种方式的体现,所以也包含了人类社会的一部分特性,特别是经济的体现。同时它又是游戏,所以还涉及到娱乐性。可玩性等独有特性,所以游戏测试的时候,我们还得注意游戏的平衡性给玩家的体验是否良好。本文针对游戏的体感测试进行了介绍。
3. [QA] 接口测试测什么?
本文介绍软件测试中,接口测试的内容:接口测试是指对系统接口进行测试的一种质量保障手段,主要是验证接口的功能、性能、安全性等方面是否符合预期。
3. [开源项目] metabase 介绍及简单使用
本文介绍一个数据可视化工具 Metabase 的概念和使用方法。它是一个简单易用的开源项目,旨在为公司中的每个人提供商业智能和分析的最简单、最快捷的方法。
5. [系统设计] 缓存杂谈——应用缓存设计
本文介绍系统设计中必不可少的一部分:缓存。
在高并发的业务场景下,系统的设计重心有很大一部分落在性能上。性能的考虑因素简单来说,就是空间和时间:空间指系统的存储成本(字节数),包括持久化存储(数据库)、缓存(Cache)等,时间是指系统的吞吐能力(TPS、QPS、seconds/request等)。
所有的性能方案归根结底都是二者之间的博弈和权衡,最常见的就是牺牲空间换时间,通过增加缓存(Cache)的方式来提高吞吐能力。
6. [系统设计] 密码传输加密:MD5加盐
本文介绍密码传输中对MD5加盐的概念和基本原理。
7. [js开发] 包管理工具 npm/yarn/pnpm对比,你选对了码
在前端开发领域,包管理工具是开发者不可或缺的利器。它们不仅帮助我们管理依赖,还能提升项目的构建效率。目前,最常用的三大前端包管理工具分别是 npm、Yarn 和 pnpm。
本文深入探讨这三种工具的优缺点,帮助你在项目中做出最合适的选择。
8. [项目管理] 使用 Turborepo 管理的 Monorepo 项目跨项目时如何共享代码
如果在同一个 Monorepo 项目中使用的,那么内部库就足够了,但是如果遇到多个项目同时需要使用公共的代码,那么就会需要考虑外部库(External Packages),相较于内部库而言,外部库会经过打包、发布版本、推送到一个集中的 npm 仓库提供给不同的项目使用,在跨项目使用的场景下使用,比如团队内基础组件库。
本文介绍使用 Turborepo 管理的 Monorepo 项目跨项目时如何共享代码,主要介绍外部库的打包和发布版本方式。
9. [Go开发] Go Libs :html/template (构建动态 HTML 页面)
本文介绍 Go 语言内置的一个强大的模板引擎 html/template,它可以帮助我们轻松地构建动态 HTML 页面。它实现数据驱动模板,用于生成安全的 HTML 输出,防止代码注入。它提供与text/template相同的界面,并且只要输出是 HTML, 就应该使用它来代替 text/template 。
10. [Go开发] golang在struct间复制数据并忽略字段大小写与类型差异
在golang开发中,表现层、业务层、数据层往往定义了各自的struct,经常需要在这些struct间复制数据,复制数据时可能需要忽略字段大小写差异、以及字段类型差异等。
本文给出用copier框架实现数据复制的示例。
11. [Web开发] id选择器出现特殊字符
有些第三方 sdk 会使用特殊字符串作为选择器,导致获取该元素失败。本文针对这种情况列举相应的处理方案。
12. [Python开发] Python打包成exe的方法介绍
python的开发效率非常的高,但是当我们用python写一些小工具需要给用户使用的时候,用户大多数是没有安装python的。
本文介绍两种python的打包方案,使用pyinstaller和nuitka打包成exe(或其他操作系统的可执行程序)后便可以直接分发给用户,无需用户安装python。
以上。