Julia Evans

2 篇内容

个人心得Julia Evans

Some more things about Django I've been enjoying

作者记录了自己尝试使用 Django 构建 2010 年代风格网站(后端渲染 HTML、最小化 JavaScript、SQL 数据库)的学习过程和个人体验。她重点分享了几项让她感到愉快的 Django 特性:可组合的查询集(QuerySet)方法让查询条件封装和复用变得可读且模块化;内置模板过滤器(如 urlize、linebreaksbr、date、querystring)极大简化了 HTML 生成和链接拼接;自动数据库迁移系统使模型变更和演进成本极低。在代码组织上,她放弃了基于类继承的视图,转而采用函数式视图,感觉更直观。她还提到对 Django 性能的困惑,如模板缓存被误关闭、不确定性能预期与优化方向。全文是从业者视角的具体经验分享,而非系统教程。

这是一篇真实的开发者实践反思,聚焦于 Django 框架中提升效率和可读性的具体特性(查询集封装、模板过滤器、自动迁移)以及个人在代码组织和性能调校上的取舍。对正在学习或评估后端渲染栈、尤其是小型到中型 Web 应用的开发者来说,文中列举的便利点与踩坑经历具有直接的可迁移参考价值。

工程实践Julia Evans

Learning a few things about running SQLite

Julia Evans 分享了她近期在 Django 网站中使用 SQLite 时积累的几个运维经验。她首先发现对 4000 行的表使用 FTS5 全文搜索耗时 5 秒,运行 ANALYZE 后降至毫秒级,推测是查询计划不佳所致。清理大量行时,删除操作超过 5 秒会导致其他工作线程写入超时崩溃,她通过小批量处理来规避。备份方面,最初使用 sqlite3 VACUUM INTO 加上 restic 上传到 S3,但偶尔 OOM 并产生锁问题;近期改用 Litestream 进行增量备份。她还提到拆分多个数据库文件有助于管理。文章基于个人小型项目,作者坦言若需要多写入支持可能得迁移到 PostgreSQL。

本文来自真实工程实践,详细记录了 ANALYZE 优化查询、批量清理避免写入冲突以及两种备份方案的具体步骤,对使用 SQLite 搭建个人或小型 Web 应用的开发者有直接参考价值。虽然深度有限,但作者的反思和解决方案具有可迁移性,适合作为入门级运维经验收录。