结构规则。 学习如何构建方案,探索可能性、错误、解决方案等。

 
笨拙的程序结构常常导致开发中的巨大困难,特别是当项目 增长时。 我建议在这里讨论与项目结构有关的所有问题。

从最简单的程序到复杂的软件包。

--

我敦促专家们支持这个主题。

我理解一个主题的广度和它的 "宗教指控"(*),以及因此可能产生的混乱和潜在的冲突的分支。

尽管如此,我还是请求大家支持,因为每个人都能从中受益--明智的(具有高潜力的)想法经常在垃圾堆中被发现,人们只需要能够注意到并及时 "掌握"。

----

(*) 这里所说的 "带宗教色彩",我理解为程序员的程序结构往往是建立在习惯、传统和文学的基础上,而完全不是建立在对自己和其他人(例如,未来的合著者)的常识和预期的真正便利上。

 
先到先得 :)。你为什么不先告诉我们它对你来说是什么样子?
 
来自"缺陷、缺陷、问题"主题。
A100 2013.07.22 14:00  
MetaDriver

结构规则。内容是次要的,结构是主要的。

我的 "面板 "有最简单的结构:事件->处理

事件也很简单:按下按钮、列表选择、日历选择、鼠标移动等。

相当典型的开始设计的问题:如何在一个程序中组织(结构)事件处理,以便它(程序)可以进一步发展,同时将已经完成的事情的返工降到最低。

你想讨论选择吗?

 
MetaDriver:
来自"bug, bugs, questions"分支。

设计之初的一个非常典型的问题:如何组织(结构化)程序中的事件处理,使其(程序)能够进一步发展,同时将已经完成的事情重做到最小。

你想讨论选择吗?

是否有任何文献资料,比如说?

一般来说,设计问题与CADTRIZ 有重叠。

我是在纸上画的,所以对我来说比较方便,有时要花50张纸,直到做出一个清晰的结构。当然可以在spets.editors中,但他们每个人都让我感到不舒服(有限),不可能实现幻想的飞行,总之,减缓了工作。

Система автоматизированного проектирования — Википедия
  • ru.wikipedia.org
Эту страницу предлагается объединить с CAx. Пояснение причин и обсуждение — на странице Википедия:К объединению/18 января 2014. Обсуждение длится одну неделю (или дольше, если оно идёт медленно). Дата начала обсуждения — 2014-01-18. Если обсуждение не требуется (очевидный случай), используйте другие шаблоны. Не удаляйте шаблон до...
 

我有一个最简单的选择

int main()
{
        while ( !IsStopped() )
        {
                switch ( GetEvent() ) {
                case TIMER   :
                case BUTTON  :
                case LISTVIEW:
                case CALENDAR:
                case CLOSE   :
                case ERROR   :
                default      :
                }
        }
}
 
MetaDriver:

结构是什么意思?

ZS:我是这样被教育的。

1.所有你能做的事情都在一个函数中。

2.得到是一种罪

3.所有的条件都必须是最小的,一个条件不能有任何重叠

4.3.缩进

5.一个人必须以这样的方式来写,别人可以在你之后阅读它

6.清晰而有意义的变量名称

7.评论,但不要过度

像这样,但又不完全像这样:http://korzh.net/2011-03-pravila-xoroshego-tona-v-programmirovanii.html

Правила хорошего тона в программировании
  • korzh.net
Сегодня хотелось бы немного поговорит о качестве кода при программировании. Многие из нас не раз сталкивались с ситуацией, когда приходилось разбираться в чужом коде. Сколько же было матных слов произнесено при этом. Так давайте же обсудим некоторые правила, которые все и так знают. 1. Всегда делайте отступы Самое сложное, в неправильно...
 
Urain:

是否有任何文献资料,比如说?

一般来说,设计问题与CADTRIZ 有重叠。

我在纸上画画,这对我来说更方便,有时最多花50张纸,直到出现一个清晰的结构。当然,你可以使用特殊的编辑器,但每一个编辑器对我来说都是不方便的(有限的),它不可能实现花哨的飞行,总之,它们拖慢了工作。

CAD并不完全相同,但它是计算机辅助设计。

在写程序之前,有人教我在纸上做一个提纲,这是一种简化的algo语言,但我不习惯。

 
FAQ:
先到先得 :)。你为什么不先告诉我们它对你来说是什么样子?

嗯,我怀疑会是这样的情况......))

好吧,我没有什么好隐瞒的(就结构化而言),我不怕讨论。

但我不建议你立即假设或草率批评--我不假设我的决定是 "模范的",甚至是任何一种和谐--在它们的质量上,它们不是特别有根据的,是由同样的 "宗教 "因素产生的--习惯、"书本真理"、论坛文章、标准终端交付的样本和其他自发聚集在脑子里的垃圾。 我有一些发现,但没有太严重的。

首先,我想提出几个方便的术语,以便减少混乱(我怀疑会有很多混乱)。

1) 物理项目 结构 文件、文件夹和其他实体的组织,在项目的 "外部 "视图中可见。

2) 项目的逻辑结构:组织所有 "内部 "软件的东西 - 变量、函数、类、协议等。

-----------------

我的mql-projects的物理结构是非常简单和原始的。我有意识地尝试这样做,以减少混乱,并将可能出现的混乱的后果降到最低。

作为一项规则(对于一个中等规模的),它是一组.mqh文件(安排在适当的文件夹中)+一个mq5文件。

// 如果系统是多线程的(例如,在最简单的情况下,专家顾问+指标)-那么mq5文件的数量与项目中的程序数量相对应。

我尽量不使用(.ex5)库。//非常有争议的决定,但我这样做是为了尽量减少运行时问题。

--

我暂时不对逻辑项目结构进行评论--这个主题非常大,我需要屏住呼吸......:)

 
sanyooooook:

CAD不完全相同,但它是计算机辅助设计。

有人教我在写程序前先勾画出简化的算法语言,但我从来没有习惯过。

我试图把问题作为一个整体来设想,并确定构成问题的主要对象。

然后我把对象分解成它们的组成部分,在组成部分中寻找交叉点,然后出现祖先的对象。

事情就是这样的。

如果我发现项目中的一些实体,已经遇到过,我就会尝试使用旧的、经过验证的代码。

如果你说的是设计,就不要再争了,采用MQ的风格,然后一键点击风格器 按钮,就可以得到所有相同的风格,一切都可以理解。

 
MetaDriver:

我尽量不使用libs(.ex5)。//这是一个非常有争议的解决方案,但我这样做是为了尽量减少运行时问题。

不使用库意味着不使用.dll,而使用后者可以节省代码量,因为它可以同时用于MQL4和MQL5。
 
Urain:

我试图把任务作为一个整体来设想,并确定构成任务的主要对象。

然后,我把对象划分为组件,寻找组件中的交叉点,然后出现祖先对象。

事情就是这样的。

如果我在一个项目中发现了我以前见过的对象实体,我会试着把以前验证过的代码包括进去。

你用面向对象的方式思考,我用功能化的方式思考 )
原因: