开发人员区域

使用MATLAB先进的软件开发

项目自己!

大家好。我们已经很长时间没有在这个论坛上发帖了。但这并不是因为缺少话题!我们有很多精彩和令人兴奋的话题要讨论,我们想从劳拉·邓普西的客座文章开始。Laura是我们英国办公室的应用工程师,她对如何开发高完整性的MATLAB代码有着极大的精力和兴趣。她在这里讨论一个既成熟又成熟的功能,同时也是新的和令人兴奋的功能。把它拿走,劳拉。

在一个以前的帖子, Amy解释了如何组织工具箱代码。很多建议仍然是相同的,但是MATLAB项目在R2019a中的到来显著地推进了这个工作流。本文旨在帮助您理解组织、测试和部署MATLAB代码的当前最佳实践。欲了解更多信息,请查看Matlab和Simu万博1manbetxlink项目我们网站上的登录页面。

工具箱的工具为开发新工具箱的模板创建模板,还可以在文件交换中更新以包含MATLAB项目。阅读此博客后查看它!

什么是matlab项目?

对于那些开发MATLAB工具箱和应用程序的人来说,这个过程通常看起来像下面的工作流循环。随着新特性、bug修复以及更多添加到工具箱的内容的添加,这个循环不断重复。

那些有更新工具箱的人或与工具箱开发的其他人正在协作地工作,知道它可能很难在版本和/或开发人员之间维护代码库。MATLAB项目可以通过帮助管理代码开发环境提供一致性和自动化。使用MATLAB项目,您可以通过以下方式组织工具箱代码:

  • 管理和共享文件和设置;
  • 查找所需的文件;
  • 与源代码控制交互;和
  • 简化测试自动化。

万博1manbetxSimulink项目已存在多年,但Matlab项目仅供R2019A的用户使用(笔记:它们本质上是相同的东西,所以在本文的其余部分,我将简单地称它们为“项目”)。

定义项目(从而关联的项目根文件夹)对于工具箱开发非常重要。除此之外,它提供了用于写入和测试代码的可重复性环境。通过定义此环境,项目还使MATLAB能够快速确定依赖性和通知包装错误。最后,当新版本的工具箱已准备好发布时,该项目的组织功能使其易于自动化常见任务,例如运行测试和打包。

如果你还是不相信,看看Ned Gulley和Joe Hicklin是如何在他们的2019 Matlab Expo谈话

创建一个新项目

现在,我们将运行使用现有工具箱设置新项目的步骤。我要用艾米的原版工具箱的工具从文件交换为例。

要创建新项目,请导航到“主页”选项卡,然后单击“新建” - >“项目” - >><选项>...如果您已经有一些您正在更新的工具箱代码,那么“来自文件夹”选项可能是您需要的。当我点击此选项时,一个名为Template.prj是在目录中创建的。名称“模板”匹配我选择的文件夹的名称。这* .prj.文件必须位于工具箱存储库根中。

旁白:作为此命令的奖金,如果待安装,项目将自动检测您的版本控制系统(VCS)。

设置你的沙箱

路径管理

管理Matlab搜索路径对于您的最终用户来说是很重要的——它确保他们可以使用工具箱(以及任何必要的依赖项),并帮助防止与其他文件发生冲突。之前,我们推荐写作addsandbox()rmsandbox ()用于路径管理。包括在您的沙箱功能中的此步骤不再需要,因为项目允许您指定项目打开时应该在路径上的文件夹。系统将在创建项目时提示您选择文件夹,或者您可以通过单击“项目”选项卡的环境区域中的“项目路径”来更改配置。这意味着MATLAB环境是自动设置的,并且对于使用该项目的任何人来说都是一致的。它还确保我们有一个适当的封装MATLAB环境来开发工具箱代码。关闭项目时,将从路径中删除关联的文件夹和子文件夹。

总之,打开一个项目以将工具箱文件夹添加到路径并关闭项目以删除它们。在工具箱代码上工作时,项目应打开。

考虑到这一点,我首先要删除addsandbox()rmsandbox ()通过在project选项卡中右键单击这些文件并选择“Remove from project”,从项目中删除这些文件。

接下来,我要添加指定的文件夹和文件addsandbox()使用“项目路径”快捷方式。我需要点击“添加子文件夹…”并选择\ TBX..现在,无论项目何时打开,这些文件夹都会在路径上。我也可以删除addsandbox()rmsandbox ()

启动和关机功能

如果除路径管理外还需要执行其他任务,则可以在项目配置中指定启动和关闭功能。例如,检查并启用某些版本的特定依赖项,或添加*。罐文件到Java路径。如前所述,可以通过单击“启动关闭”,在环境区域中访问这些设置。

链接到源代码控制

项目用户界面提供了一种方便的方法来使用MATLAB中的源控制。Git和SVN作为标准支持。万博1manbetx如前所述,如果从已在源控制下的文件夹中创建项目,则项目将自动链接到VCS。如果指定远程位置,您还可以从现有Git或SVN存储库中创建一个新项目。

默认工具箱开发结构

我们以前给了一个蓝图如何组织你的沙盒应用程序在工具箱中的位置.使用现在集成在我们的工具箱开发工作流程中的项目,我们需要更新此蓝图。以下显示了我们的新组织建议;root目录中的文件夹以粗体显示为清晰度。橙色物品被包装并作为一个运输* .mltbx

你可能已经注意到的一件事是在创造一个新项目时,一个/资源文件夹在根目录中创建。此文件夹包含项目所需的文件,不应修改。

共享代码

项目还可以方便地共享工具箱代码。我们可以通过点击“项目”选项卡的“共享”菜单来创建工具箱。

项目预先填充工具箱的信息,例如描述、必要的文件和路径上需要的文件夹。你应该只包装你的TBX.文件夹和关联的子文件夹,而不是项目根目录中的其他文件和文件夹。这些包装配置设置存储在其中mytoolbox.prj.prj.文件,也可以更改版本号,工具箱图标等。

你也可以在Home选项卡的Add-Ons菜单中创建这个工具箱打包配置文件:

为了更好地控制包装过程,我们建议撰写A.发布()函数并将其添加为项目快捷方式。例如,发布()可以自动提取版本信息mytoolbox.prj.prj.,创建并重命名结果* .mltbx文件,并将其放入/释放文件夹中。

功能发布()% release将工具箱打包并将其存储在发布文件夹中。fileparts = mfilename(“fullpath”));tlbxprj = fullfile(文件夹,“myToolbox.prj”);版本= matlab.addons.toolbox.toolboxversion(tlbxprj);mltbx = fullfile(文件夹,“发布”......“mytoolbox”+版本+“.mltbx”);matlab.addons.toolbox.packageToolbox(TLBXPRJ,MLTBX);结束% 发布

尝试一下!

未来的博客文章将介绍如何利用项目来帮助自动化和加速代码测试。现在,给项目一个尝试,并在下面留下评论,让我们知道你的想法。别忘了也下载新的工具箱的工具!!




发布与MATLAB®R2020A

|

评论

要发表评论,请点击这里登录您的MathWorks帐户或创建新的。