文章 "来自专业程序员的提示(第一部分):代码存储、调试和编译。 操控项目和日志"

 

新文章 来自专业程序员的提示(第一部分):代码存储、调试和编译。 操控项目和日志已发布:

这些提示来自专业程序员,涵盖有关方法、技术和辅助工具,能够令编程更轻松。

终端程序文件位于 MQL5 目录下。 这种编制就是所谓的“沙盒”。 来自外部的数据访问被关闭。 这是一个很好的决定。 不过,运用 DLL 可以访问任何地方。

例如,这里是 Cayman 项目的结构:

  • /Experts/Cayman/ - 智能交易系统
  • /Files/Cayman/ - 数据文件 (设置、参数)
  • /Include/Cayman/ - 类库(函数)
  • /Scripts/Cayman/ - 主要操作脚本
  • /Scripts/CaymanDev/ - 开发者脚本(用于调试)

这种布局的主要优点是:

  • 通过 TotalCommander 仅在项目文件中进行上下文搜索
  • 通过 Git 进行版本控制(仅对项目文件启用控制,而忽略所有其他文件)
  • 轻松复制到另一个终端(模拟 -> 实盘 – 发布)

作者:Malik Arykov

 

谢谢。很好,很有用的文章。

 
有趣 )我在附件中附上了我的程序库链接。我有六个不同的终端,如果每个终端都有自己的库副本,就会很不方便。但在这里,所有终端都是一样的。您使用 .gitattributes 文件吗?如果是,是什么形式?
 
好文章。我以前总是把我的文档拖到这样的非系统盘上,以防万一)。
 

默认情况下,Bitbucket 有自己非常正常的错误跟踪器,你不需要启动一个外部的。

链接是给业余爱好者用的,通过版本库工作更容易,也就不存在拷贝数量的问题了。

关于外部编辑器的观点很有意思,尤其是考虑到作者对脚本的热爱

 
Andrei Novichkov:
您使用 .gitattributes 文件吗?如果使用,是什么形式?

我不用,因为没必要。我不关心二进制文件(包括图片、docx)及其三角洲。我只关心程序文本 及其历史。

 
Andrei Trukhanovich:

Bitbucket 默认拥有自己的正常错误跟踪器,你无需启动外部跟踪器。

链接是给业余爱好者用的,通过版本库工作更容易,也就不会出现拷贝数量的问题了

关于外部编辑器的观点很有意思,尤其是考虑到作者对脚本的热爱

1) 看板不是错误跟踪器。我可以在一个看板上管理 Cayman 项目的多个版本库(MQL4、MQL5、WebSite)的任务。

2) 我的理解是,如果我有两个具有相同 MQL5 内容的终端,那么每个 MQL5 都有一个本地存储库 和一个公共云存储库。如果是这样,让我们想象一下这种情况。您在一个 MQL5 中进行了更改,并希望将其应用到第二个 MQL5。您的操作

  • 推送第一个 MQL5 - 在云中提交版本
  • 拉动第二个 MQL5 - 更新版本。

为什么有这么多步骤?

3) 我喜欢舒适 - 只需单击脚本即可完成大量工作。NPP 为我提供了突出显示日志的便利。例如,我在 NPP 中突出显示了我的日志。带有标记 //, Error, todo 的行的高亮显示是自动的,因为它是以扩展名为 *.txt, *.log 的文件语法编写的。

日志高亮

 

bitbucket 中也有免费的看板插件。

Malik Arykov:

    为什么要这么麻烦?

    因为这样做是正确的。

    不同的终端--不同的实例,更不用说在一个终端工作,在另一个终端调试,而且终端在工具设置和交易条件上也可能大相径庭。

    此外,终端接收新的编译版本也有细微差别(Tldr,如果代码现在就在终端上运行,最好不要编译)。

    当然,符号链接在某些情况下还是有用的。

     
    Andrei Trukhanovich:

    虽然符号链接在某些情况下也很有用,但一开始就谈论版本库,然后又建议使用符号链接,这就有点奇怪了。

    这些链接指向同一个本地资源库(所有终端都有一个 MQL5 (*.mq?, *.ex?))。

    同时,每个终端都有自己的特点。例如,我有 AppSettings.txt、分析器参数、终端设置 等(在 .gitignore 中指定)。(在 .gitignore 中指定)

    在每个(任何)终端上都可以调用 "编辑",确保修改的是相同的代码。

     
    Malik Arykov:

    在每个(任何)终端上,您都可以调用 "编辑",并确保您更正的是相同的代码。

    这正是可怕之处)。

    但老板就是老板。

     

    Git 现在有了私有源。

    本地 Git Desktop 将 mq4/mqh 文件识别为二进制文件。即使我在属性中指定了差异,也不清楚如何在应用程序中看到变化。有什么办法可以方便地比较文件版本?

    ----

    如果在 MTEditor 中以 UTF-8 编码保存文件,则可以通过 Git Desktop 查看比较结果