BytePower 技术周刊 - 036
# 📘 封面
美东夏令时间 2024.7.13, 美国前总统唐纳德·特朗普在为年底总统大选造势的活动集会中遭遇一名美国男子枪击。
美联社驻华盛顿首席摄影师、普利策奖得主埃文·武奇(Evan Vucci)在一片混乱中拍摄下这张作品,他表示当时他只是关心如何拍好这历史性的一刻,脑袋里想的都是机位、光线、构图。
# 📖 文章
# 在客户端中安全地上传文件 (opens new window)
更好的方案: 后端生成「预签名链接」并通过 API 下发
前端可以对预签名链接直接发起 PUT
请求,这样我们可以收获的好处有:
- 更安全:永远不会因 暴露客户端代码 或 被反编译 而泄露至关重要的
AccessKey
和SecretKey
; - 更灵活:利用显式指定
Content-Type
和Content-Length
来防止客户端被破解,从而绕过业务策略的限制 - 低成本:统一由服务端传递预签名链接,客户端开发人员只需要完成
PUT
HTTP 请求即可,不需要学习和调试不同语言下的 S3 SDK(事实证明,AWS SDK 不同的语言版本由不同的团队维护,其规范、特性差异较大,不利于项目稳定。) - 高性能:上传请求依然是直接对 缤纷云 S4 发起,不需要服务端中转。
# JavaScript 进阶问题列表 (opens new window)
- 输出是什么?
function sayHi() {
console.log(name);
console.log(age);
var name = 'Lydia';
let age = 21;
}
sayHi();
- A: Lydia 和 undefined
- B: Lydia 和 ReferenceError
- C: ReferenceError 和 21
- D: undefined 和 ReferenceError
# Go 语言编程技巧 (opens new window)
本文总结了一些 Go 语言开发中经常遇到的一些问题或者编码技巧。
# 各类游戏对应的服务端架构 (opens new window)
仓库中包含几篇关于游戏服务器开发的文章,也介绍了一些游戏服务器发展历史。
第一代游戏服务器 1978
1978 年,英国著名的财经学校 University of Essex 的学生 Roy Trubshaw 编写了世界上第一个 MUD 程序《MUD1》,在 University of Essex 于 1980 年接入 ARPANET 之后加入了不少外部的玩家,甚至包括国外的玩家。《MUD1》程序的源代码在 ARPANET 共享之后出现了众多的改编版本,至此 MUD 才在全世界广泛流行起来。不断完善的 MUD1 的基础上产生了开源的 MudOS(1991),成为众多网游的鼻祖。
# SQL 实用技巧-行列转换 (opens new window)
什么是行列转化?如下图,不同商品在不同月份的销量数据,有时候我们希望数据和左侧一样的排列,但原始数据却像右侧一样排列,此时我们需要把右侧的列排列转换成左侧的行排列,反之亦然。
# 📺 生活
# 小雅 (opens new window)
依托阿里云盘、夸克网盘等在线网盘打造个人多端观影系统。
# 🧰 工具
# yazi (opens new window)
一个终端文件管理器。
# tssh (opens new window)
一个终端交互式 ssh 客户端工具。
# 缤纷快传 (opens new window)
Send it like AirDrop. 类似于牛奶快传、文叔叔一样的文件分享工具,特色是上传过程中就支持用户下载(即传即收)。
# 🐠 有趣的东西
# 我晕:iPhone 的新辅助功能,真能让你不晕车? (opens new window)
iPhone 新功能,通过将车辆运动显示在屏幕上来缓解晕车症状,不知是否有效。
# Ugly Avatar (opens new window)
你需要一个 Ugly 头像吗?