开发区域

用MATLAB开发高级软件

项目你自己!

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

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

工具箱的工具它创建了用于开发新工具箱的模板,并在文件交换中进行了更新,以包括MATLAB项目。读了这篇博客后,看看吧!

什么是MATLAB项目?

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

那些更新过工具箱的人,或者在工具箱开发中与他人合作的人,都知道维护版本和/或开发人员之间的代码库是很困难的。MATLAB项目可以通过帮助管理代码开发环境来提供一致性和自动化。在MATLAB项目中,您可以通过以下方式组织工具箱代码:

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

金宝appSimulink项目已经存在很多年了,但是MATLAB项目只在R2019a中提供给用户(注:它们本质上是相同的东西,所以在本文的其余部分,我将简单地称它们为“项目”)。

定义项目(从而定义关联的项目根文件夹)对于工具箱开发非常重要。除此之外,它还为编写和测试代码提供了一个可复制的环境。通过定义此环境,项目还使MATLAB能够快速确定依赖项并注意打包错误。最后,当新版本的工具箱准备发布时,项目的组织能力使自动化常见任务变得容易,例如运行测试和打包。

如果你还是不相信,看看Ned Gulley和Joe Hicklin是如何在他们的2019年上海世博会讲座

创建一个新项目

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

要创建新项目,请导航到主页选项卡,然后单击新建->项目-><选项>…如果您已经有一些要更新的工具箱代码,那么“从文件夹”选项可能就是您所需要的Template.prj在该目录中创建。名称“Template”与我选择的文件夹名称相匹配。这*.prj文件必须位于工具箱存储库根目录中。

旁白:作为此命令的额外功能,如果版本控制系统(VCS)已就位,Project将自动检测您的版本控制系统(VCS)。

设置沙箱

路径管理

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

总之,打开一个项目以将工具箱文件夹添加到路径中,然后关闭该项目以删除它们。在处理工具箱代码时,项目应处于打开状态。

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

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

启动和关机功能

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

链接到源代码管理

projects用户界面提供了一种方便的方法,可以从MATLAB中使用源代码管理。Git和SVN作为标准支持。如前所述,如果您从已受源代码管理的文件夹创建项目,则项目将自动链接到您的VCS。您还可以从现有Git或SVN re金宝appposito创建新项目如果指定远程位置,则为ry。

默认工具箱开发结构

我们之前给出了一个蓝图如何组织你的沙盒应用程序在工具箱中的位置。随着项目现在集成到我们的工具箱开发工作流中,我们需要更新此蓝图。以下显示了我们的新组织建议;为清晰起见,根目录中的文件夹以粗体显示。橙色项目打包并作为* .mltbx

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

共享代码

项目还使共享工具箱代码变得容易。我们可以通过点击“项目”选项卡的“共享”菜单来创建工具箱。

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

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

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

函数释放()% release将工具箱打包并将其存储在发布文件夹中。fileparts = mfilename(“fullpath”));tlbxPrj = fullfile(文件夹,“myToolbox.prj”);= matlab.addons.toolbox版本。toolboxVersion (tlbxPrj);MLTBX = fullfile(文件夹,“发布”,...“我的工具箱”+版本+“.mltbx”); matlab.addons.toolbox.packageToolbox(tlbxPrj,mltbx);结束%释放

试试看!

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




发布与MATLAB®R2020a

|

评论

如需留言,请点击在这里登录到您的MathWorks帐户或创建新帐户。