让我先打个比方:
在测试驱动的软件开发中,您需要编写一些测试来描述程序应该做什么。当引入新功能时,您首先要进行一个描述该功能的测试,然后实现应该满足该测试的功能,同时不破坏任何其他现有测试。
现在,当我用 LaTeX 写一篇涉及数学公式的论文时,我发现自己处于以下情况:我可能会根据我在纸上或计算机代数系统 (CAS) 中进行的一些计算写一份初稿。后来,我想修改一些方程式,例如对它们进行概括。为了确保从修改后的方程式中得出的其他方程式仍然正确——或者也修改它们——我需要查找我的初始计算,例如找到我进行计算的纸张或包含它们的 CAS 文件,或者,如果我再也找不到它们了(碰巧),就重新进行我的整个计算。
现在解决这个问题的一种方法可能就是整理我的笔记 ;-) 但理想情况下,我希望有自动测试来确保例如方程 (14) 遵循 (10) 和 (12) 并将a
设置为b^2
,这样如果我修改 (10),我会收到 (14) 中断的通知。这样,我就会知道我还需要修改 (14)(或它所基于的其他内容),当我认为我已经修复它时,重新运行我的测试。
有没有简单的方法可以实现这一点?人们是否在 CAS 中撰写整篇论文(例如 Maple 或 Mathematica,我个人从未使用过)以实现这样的工作流程?就我个人而言,我使用 LyX 撰写论文,所以我更喜欢与之集成的解决方案。对于计算,我使用纸和笔,并使用 SymPy 进行偶尔的矩阵乘法,但目前,我的 SymPy 文件随着时间的推移变得相当混乱,这也是我寻找更好的工作流程的原因之一。