初识 SQLite

2024-07-11

文章讲述了作者初次接触 SQLite 数据库的体验和感受。作者一开始认为自己对 SQLite 有一定了解,但在实际使用过程中发现了一些令人惊讶的“怪癖”,例如不支持 ALTER COLUMN 和 DROP CONSTRAINT 等常用操作,并且数据类型系统也比较特殊。尽管 SQLite 有一些 impressive 的特性,例如流处理,但作者认为与 PostgreSQL 相比,SQLite 的使用体验仍然比较糟糕。

阅读更多
未分类

关于实现深色模式的笔记

2024-06-28

这篇文章详细介绍了如何在一个网站上高质量地实现深色模式,并指出了常见错误,例如:没有将深色模式设置为三种状态(浅色、深色、自动)、页面加载时出现闪烁、没有处理其他标签页的主题更改以及没有响应操作系统的主题更改等。文章还介绍了如何使用JavaScript、本地存储和CSS媒体查询等技术来解决这些问题,并提供了一些代码示例。

阅读更多
未分类

彻底消除 N+1 查询:Go 中的两阶段数据加载和渲染模式

2024-05-28

文章介绍了N+1查询问题,并重点阐述了在Go语言中使用两阶段数据加载和渲染模式来解决该问题的方法。该模式将数据加载和渲染分成两个阶段:加载阶段将所有需要的数据一次性加载到内存中,渲染阶段则仅从内存中读取数据进行渲染,从而避免了重复查询数据库。文章还讨论了该模式在处理嵌套资源时的优势,以及如何将其推广到其他编程语言。

阅读更多

适用于使用 Postgres 应用程序的通知程序模式

2024-05-14

本文介绍了 Postgres 中 listen/notify 的强大功能,并提出了一种名为“notifier pattern”的优化方案。该方案使用单一连接处理所有通知,减少连接资源浪费,并通过缓冲通道和可中断接收循环确保系统稳定性。文章还探讨了处理连接异常的策略,建议采用“let it crash”的思想,即在连接异常时重启程序,以确保系统恢复到健康状态。

阅读更多