微游技术部一周分享 20240331期
本周关键字: 物理像素,逻辑像素,PPI,SMTP,Go邮件发送,Node.js脚本执行,Docker容器管理,缓存击穿,gRPC客户端负载均衡,CSS媒体查询,浏览器夜间模式适配,Turborepo项目管理,Android RTL适配,Go服务优雅退出,Kratos日志文件分割。
大家好,以下是微游互娱技术部本周的分享。
本周的分享总结由kimi帮助编写
1. [产品设计] UI设计中的像素知识
摘要: 文章详细介绍了物理像素与逻辑像素的区别,解释了屏幕密度单位PPI的概念,并探讨了在UI设计中常用的像素单位(px、pt、dp、sp)。通过实例说明了如何在设计和开发中应用这些单位,以确保在不同设备上获得一致的视觉效果。
2. [Go开发] Go邮件发送实践
摘要: 本文深入讲解了SMTP协议的基础知识,并展示了如何在Go语言中使用标准库net/smtp
以及第三方库gomail.v2
和jordan-wright/email
来发送邮件。文章通过示例代码详细演示了邮件发送的流程,包括配置SMTP服务器信息、身份验证、设置邮件内容和发送邮件。
3. [Go开发] gRPC客户端负载均衡
摘要: 本文概述了如何使用 Name Resolver 和 Load Balancing Policy 实现gRPC客户端负载均衡。
4. [Go开发] GO服务优雅退出与重启
摘要: 文章讨论了在Go服务中如何优雅地处理服务器关闭和重启操作。介绍了使用os/signal
包来接收系统信号,并在接收到特定信号时执行清理操作和优雅关闭服务的方法。
5. [Go开发] Kratos日志文件分割
摘要: 文章提供了在Kratos框架中实现日志文件自动分割的实践方法,包括使用lumberjack
库来管理日志文件的大小和保存期限。文章还展示了如何配置日志同时输出到控制台和文件,以及如何验证日志分割的效果。
6. [Node开发] Node.js执行脚本方式
摘要: 文章列举了在Node.js中执行脚本的几种常用方法,包括使用package.json
的scripts
字段和child_process
模块的exec
、spawn
、execFile
函数。详细介绍了每种方法的特点和适用场景,以及如何使用它们来执行命令行指令和处理输出。
7. [Docker] Docker容器挂载目录调整
摘要: 本文通过实际操作演示了如何为已启动的Docker容器增加挂载目录,包括查询容器ID、关闭容器、修改配置文件和重启Docker服务。文章强调了在修改配置时需要注意的细节,并提供了清晰的操作步骤。
8. [系统设计] 缓存击穿与singleflight
摘要: 文章讨论了缓存击穿问题及其对数据库性能的影响,并提出了解决方案。介绍了Go语言的singleflight
库,该库可以避免重复的高并发请求,提高服务的稳定性和性能。
9. [Web开发] 浏览器夜间模式适配
摘要: 文章详细介绍了如何使用CSS媒体查询和CSS变量来实现浏览器的夜间模式适配。提供了代码示例和操作方法,使开发者能够根据用户的系统设置自动切换页面的明暗主题。
10. [项目管理] 使用Turborepo管理Monorepo项目
摘要: 文章介绍了Turborepo工具,它是一个用于管理Monorepo项目的流行工具,具有多任务并行处理、增量构建、云缓存等功能。文章通过创建新项目、启动应用、打包项目等操作,展示了Turborepo的实际应用。
11. [Android开发] Android RTL适配笔记
摘要: 本文提供了Android应用进行RTL(Right-to-Left)适配的详细指南,包括在AndroidManifest
中开启RTL支持、控件适配、文本适配和自定义View适配的方法。文章还提供了示例代码和效果图,帮助开发者更好地理解和实现RTL适配。
以上。