QB64 搜索技巧 核手提箱 文字记录 海洋云增白 开源地图 Bliss AI 搜索答案 深海沉船 自由职业 policy 小团队 颈挂空调 Chumby 个人电脑 极端主义 团队 世界 PostgreSQL AI工具 证券 DirectX 防溢 DrawingPics Zulip 儿童读物 化学 连续滚动 代码审查 三菱电机 更多

交易模型是编程范式 (mmapped.blog)

这篇文章探讨了账户模型和UTXO模型这两种交易模型之间的区别,这两种模型分别类似于面向对象编程和函数式编程。账户模型使用类似面向对象编程的风格,每个更新都会影响全局分类账状态,而UTXO模型则采用具有子结构类型的函数式编程风格。文章深入探讨了每种模型在抵抗重放攻击、多路交易、错误恢复和监管合规性方面的优缺点,并得出结论:UTXO模型在所有这些方面都表现出色。

计划-执行模式 (mmapped.blog)

本文介绍了一种通用的解决问题的方案:计划-执行模式。该模式将复杂算法的实现分为两个阶段:计划阶段和执行阶段。计划阶段负责根据输入制定计划,该计划以数据结构的形式封装了算法的所有决策。执行阶段则负责根据计划执行操作。这种方法可以更全面地测试决策部分,并增强系统的调试能力。文章还讨论了执行阶段的两种方式:直接执行计划和使用状态机和驱动循环来处理不确定性。

数字塔的惨败:为何面向对象编程在处理数字类型层次结构上力不从心? (mmapped.blog)

本文批判了面向对象编程在处理数字类型层次结构(例如自然数、整数、有理数等)时的缺陷,并提出了函数式编程的解决方案。作者以自然数和整数为例,指出OOP中基于继承的建模方式会导致“is a”关系的错误,以及代码冗余和维护困难等问题。相反,函数式编程通过代数数据类型和函数组合,能够更清晰、灵活地表示数字类型及其之间的关系,并通过类型提升和简化操作来减少代码冗余。

启迪软件 (mmapped.blog)

这篇文章介绍了作者心目中的启迪软件,包括UNIX、Git、Emacs、Boost.Graph和Bazel。作者从个人经历出发,讲述了这些软件如何帮助他理解编程、操作系统、版本控制、文本编辑和构建系统等概念,并深入探讨了它们的内部机制和设计哲学。作者认为,好的启迪软件应该能够解决日常问题,具有简洁的设计和易于探索的内部结构,并鼓励用户深入学习和掌握。