这实际上不是特定于MATLAB的问题。我对编程很陌生。我的问题是编码策略。
我可以为每个任务和特定数据准备脚本和函数,并将它们保存在专用于该任务的文件夹中。中心站没有维护常规功能。我的顾问更喜欢这种编码方式。优点是,因为文件夹中的所有代码都是专门为任务编写的,所以只要我使用相同版本的MATLAB并分析相同的数据,它们就应该始终有效。让我们称这个策略为“重新写一切”。
明显的缺点是你最终在许多文件夹中拥有非常相似的代码,用于不同但相似的任务。很难提高子程序的效率,因为你无法分辨哪一个是那些类似的最新和最大的功能。
我认为“重新写一切”并不好。我认为更好的方法是将例程提取到函数或类中,并在与任何特定任务或数据无关的“中心”文件夹中维护和改进它们。我以为这是很多人的所作所为。我们称之为“中央常规”策略。
这样,开发/维护这些有用的例程变得更容易,因为我可以跟踪最新版本。然后我遇到了比起初更严重的问题。当我开始编写使用这些集中维护的例程来分析数据的实际代码时,我遇到了向后兼容性问题;使用集中维护的例程编写代码很好,但是我不能再更新例程而不会破坏所有依赖于例程的代码。
我问了几个人和书籍,但还没有得到明确答案。书籍建议将重复性例程提取到函数中,但不要讨论向后兼容性问题。
有人能告诉我应该如何管理例程,或者如何管理例程?有没有实际的解决方案,比如第三种选择?我不知道目前要走哪条路。
答案 0 :(得分:2)
你的直觉是对的,code reusablitity和not-repeating-oneself是很好的编程原则。
管理此方法的一种方法是编写tests以检查您的函数和类是否按预期正常工作。这样,您可以在每次引入更改时运行这些测试,并快速了解是否有任何损坏。
学习使用version control system(Git,Mercurial等)也是一个好主意。这将跟踪文件的整个历史记录,并允许人们在需要时及时返回:)