特性标记的陷阱:从配置系统研究中吸取教训
本文探讨了软件开发中广泛使用的特性标记(Feature Flags)的潜在问题。作者指出,特性标记虽然方便,但容易导致难以维护的代码,尤其是在处理特性交互、标记移除和测试方面。文章回顾了可配置系统和软件产品线领域的已有研究,并总结了一些经验教训,例如:明确配置决策者,选择合适的绑定时间,采用规范的实现和文档,以及利用组合测试等技术来提高软件质量。
阅读更多
本文探讨了软件开发中广泛使用的特性标记(Feature Flags)的潜在问题。作者指出,特性标记虽然方便,但容易导致难以维护的代码,尤其是在处理特性交互、标记移除和测试方面。文章回顾了可配置系统和软件产品线领域的已有研究,并总结了一些经验教训,例如:明确配置决策者,选择合适的绑定时间,采用规范的实现和文档,以及利用组合测试等技术来提高软件质量。
阅读更多
2024年数据库领域风云变幻,开源数据库的许可证之争成为焦点。Redis和Elasticsearch因更改许可证引发社区强烈反弹,最终不得不回退。Databricks和Snowflake的竞争则扩展到LLM和数据目录等领域,巨头间的争斗推动了技术进步。DuckDB凭借其便捷性和可移植性,成为分析查询的热门选择,并被集成到多个数据库系统中。此外,文章还回顾了Aurora DSQL、CedarDB、Google Bigtable等数据库的发布,以及Alteryx、MariaDB等公司的收购。最终,作者以Larry Ellison的80岁生日及大手笔投资作为结尾,展现了数据库领域背后的巨额财富和激烈竞争。
阅读更多
这篇文章批评了PostgreSQL的多版本并发控制(MVCC)实现,认为其落后且效率低下。文章指出了PostgreSQL MVCC的四大问题:每次更新都复制整个元组导致数据冗余和存储空间浪费;过期版本占用过多空间导致数据库膨胀,影响查询性能;二级索引维护成本高,每次更新都需要更新所有索引;autovacuum难以管理,难以有效清除过期数据并回收空间。文章认为,虽然PostgreSQL是优秀的数据库,但其MVCC的实现方式是其一大缺陷。
阅读更多
Pseudo Scheme 是一个用 Common Lisp 编写的 Scheme 实现,通过预处理器将 Scheme 代码转换为 Common Lisp 代码执行。它与 Common Lisp 高度集成,Scheme 和 Common Lisp 程序可以直接相互调用。Pseudo Scheme 实现了大部分 IEEE 和 Revised^4 Scheme 标准,但对第一类延续、尾递归和数字系统的支持有限。
阅读更多