微游技术部一周分享 20231224期
本周关键字:Android隐藏导航栏,gotests,go-pinyin, go ants协程池,xxs漏洞测试,Bento UI, next markdown isr, react子组件状态,svg切割,unity上架fb
大家好,以下是微游互娱技术部本周的分享:
1. [Android开发] Android — DialogFragment显示后隐藏的导航栏显示问题
沉浸式显示广泛的应用于大部分App中,基本上可以说是App的必备功能,在之前的文章Android 全屏显示和沉浸式显示中介绍过如何通过WindowInsetsControllerCompat实现沉浸式显示。本文介绍如何修复底部导航栏在加载弹窗显示时又出现的问题。
2. [go开发] gotests:一个高效编写测试用例的工具
在开发中,为了提升代码质量,经常我们需要编写单元测试。gotests是一个提升编码效率的工具,可以自动生成Go代码的单元测试,减少我们手动编写测试的工作量。
文中简介了gotests工具,并演示了如何入门使用。
3. [go开发] go 汉字转拼音 go-pinyin
https://overstarry.vip/posts/conversion_of_chinese_characters_into_pinyin/
本文介绍一个 go 汉字转拼音的库 go-pinyin, 这个库的功能就是将汉字转换为相应的拼音。
4. [go开发] Go ants协程池使用和实现逻辑
golang 中 goroutine 由运行时管理,使用 go 关键字就可以方便快捷的创建一个 goroutine,受限于服务器硬件内存大小,如果不对 goroutine 数量进行限制,会出现 Out of Memory 错误。通过协程池限制 goroutine 数一个有效避免泄漏的手段, 但是自己手动实现一个协程池,总是会兼顾不到各种场景,比如释放,处理panic,动态扩容等。本文介绍的 ants 库,就是一个优秀的协程池。
5. [QA] 反射型(XSS)漏洞的测试
XSS 代码常常出现在 URL 请求中,当用户访问带有 XSS 代码的 URL 请求时,服务器端接收请求并处理,然后将带有 XSS 代码的数据返回给浏览器,浏览器解析该段带有 XSS 代码的数据并执行,整个过程就像一次反射,故称为反射型 XSS。
本文介绍如何进行XXS漏洞测试。
6. [产品设计] 关于 Bento UI 的设计风格
本文介绍 Bento UI 的设计风格。
Bento 的设计风格,其实本质就是在固定容器里,划分多个卡片组合。Bento Box(便当盒)源自日本,指的是一餐被分成各个组成部分并装在盒子里的饭盒。而由此命名的 Bento UI 或者说 Bento Box 设计风格,是通过将用户界面划分为明确的部分或区块,类似于传统的便当盒中的隔层,它为内容呈现提供了结构化和有组织的布局。
7. [Web开发] 基于 next.js + markdown 测试 isr 功能
本文介绍如何在本地基于 next.js 前端博客项目、express、cherry-markdown,做一个next.js blog 的 isr 测试。
8. [Web开发] React 如何在父组件中获取子组件的状态
在 React 中,如果使用的是类组件可以通过 this.ref.current.state 直接获取绑定 ref 后子组件中的状态,但是函数组件则无法这样直接获取子组件中的状态。
本文介绍如何通过之前介绍过的 forwardRef 和 useImperativeHandle 轻松的在函数组件中获取到子组件的状态。
9. [Web开发] 使用 SVG 将图片切割成多个拼图块
在前端开发中,有时候需要将某个图标切出一小块特定的形状,或者切成多个小块。其中一个常见的场景就是将一个大图切割成多个拼图块。SVG 刚好提供了从一个图片中切出任意区域的方法,本文给出一个使用示例。
10. [FB 小游戏] 解决Unity项目无法上架FB的问题:“Refused to load the script blob”
用 Unity 开发 Facebook 小游戏时,可能会遇到下面问题导致无法进入游戏:Refused to load the script blob ...
这是因为 Facebook的内容安全策略(Content Security Policy, CSP)移除了Blob URL, 因此浏览器会拒绝加载以Blob URL方式加载的脚本,以保护用户免受潜在的不安全内容的影响。
本文介绍 Unity 项目的解决方法:关闭压缩开关(Compression Format)和解压退回开关Decompression Fallback。
以上。