구조 바위. 우리는 프로그램을 구성하고 가능성, 오류, 솔루션 등을 탐색하는 방법을 배웁니다.

 
프로그램의 서투른 구조는 특히 프로젝트 가 성장할 때 엄청난 개발 어려움을 초래하는 경우가 많습니다. 나는 여기에서 프로젝트의 구조화와 관련된 모든 문제를 논의할 것을 제안합니다.

가장 단순한 프로그램에서 시작하여 복잡한 소프트웨어 시스템으로 끝납니다.

--

이 스레드를 지원하기 위해 전문가에게 요청합니다.

나는 주제의 광대함과 그 "종교적 책임"( * ), 따라서 지부의 혼란과 잠재적 갈등을 이해합니다.

그럼에도 불구하고 각 참가자가 자신의 이익을 가질 수 있기 때문에 지원을 요청합니다. 합리적인(높은 잠재력을 가진) 아이디어는 종종 쓰레기 더미에서 발견되므로 제 시간에 알아차리고 "수집"할 수만 있으면 됩니다.

----

( * ) 이 맥락에서 "종교적 책임"이란 프로그래머가 종종 습관, 전통, 문학적 출처에 기초하여 프로그램 구조를 구축한다는 사실을 의미하며, 상식과 자신과 다른 사람들을 위해 기대되는 실제 편의는 전혀 아닙니다. 예를 들어 미래의 공동 저자) .

 
가장 먼저 리드하는 사람:). 무언가를 시작하고 어떻게 생겼는지 알려주시겠습니까?
 
스레드 " 오류, 버그, 질문 "에서:
A100 2013.07.22 14:00  
메타드라이버 :

구조 바위. 내용은 부차적이며 구조는 일차적입니다.

"패널"이 있습니다. 구조는 간단합니다. 이벤트 -> 처리

이벤트도 간단합니다. 버튼 누르기, 목록 선택, 캘린더 선택, 마우스 이동 등.

디자인 시작에 대한 매우 일반적인 문제: 프로그램에서 이벤트 처리를 구성(구조화)하여 미래에 개발할 수 있고 동시에 이미 수행된 작업을 최소한으로 다시 실행하는 방법.

옵션에 대해 논의하고 싶으신가요?

 
MetaDriver :
스레드 " 오류, 버그, 질문 "에서:

디자인 시작에 대한 매우 일반적인 문제: 프로그램에서 이벤트 처리를 구성(구조화)하여 미래에 개발할 수 있고 동시에 이미 수행된 작업을 최소한으로 다시 실행하는 방법.

옵션에 대해 논의하고 싶으신가요?

예를 들어 문학의 종류가 있습니까?

일반적으로 설계 문제는 CADTRIZ 와 공통점이 있습니다.

추신 저는 종이에 그림을 그립니다. 그게 더 편해요. 때로는 50장까지 가다가도 명확한 구조가 나옵니다. 물론 특수 편집기에서 할 수는 있지만 각각이 저에게는 불편(제한적)이고, 공상의 비행을 실현하는 것은 불가능합니다. 간단히 말해서 작업 속도를 늦추는 것입니다.

Система автоматизированного проектирования — Википедия
  • 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 :

구조란 무엇을 의미합니까?

추신: 저는 다음과 같이 배웠습니다.

1. 함수에서 가능한 모든 것을 함수에서 꺼내십시오.

2. goto는 사용하는 죄입니다.

3. 모든 조건은 최소이어야 하며 한 조건에서 교차점이 없어야 합니다.

4. 3 들여쓰기

5. 당신 후에 다른 사람을 알아낼 수 있도록 쓰십시오.

6. 이해하기 쉽고 의미 있는 변수 이름

7. 댓글은 달지만 과하지 않게

다음은 이와 비슷하지만 완전히 그렇지는 않습니다. http://korzh.net/2011-03-pravila-xoroshego-tona-v-programmirovanii.html

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

예를 들어 문학의 종류가 있습니까?

일반적으로 설계 문제는 CADTRIZ 와 공통점이 있습니다.

추신 저는 종이에 그림을 그립니다. 그게 더 편해요. 때로는 50장까지 찍어도 명확한 구조가 나옵니다. 물론 특수 편집기에서 할 수는 있지만 각각이 저에게는 불편(제한적)이고, 공상의 비행을 실현하는 것은 불가능합니다. 간단히 말해서 작업 속도를 늦추는 것입니다.

CAD는 완전히 같지는 않지만 컴퓨터 지원 설계입니다.

프로그램을 작성하기도 전에 간단한 알고리즘 언어인 종이에 스케치를 하는 방법을 가르쳐 주셨지만 전혀 익숙해지지 않았습니다.

 
FAQ :
가장 먼저 리드하는 사람:). 무언가를 시작하고 어떻게 생겼는지 알려주시겠습니까?

뭐, 그럴 거라 생각했는데...

글쎄요, 저는 (구조화 측면에서) 숨길 것이 없습니다. 토론을 두려워하지 않습니다.

그러나 나는 즉시 그것을 모델로 삼거나 반대로 성급하게 비판하라고 조언하지 않습니다. 나는 내 결정의 "모범적"이거나 심지어 어떤 조화도 절대 가정하지 않습니다. 대부분의 경우 그것들은 특별히 견고하지 않고 생성됩니다. 습관, "책 같은 진실", 포럼 기사, 터미널의 표준 배달 샘플 및 기타 자발적으로 수집된 쓰레기와 같은 동일한 "종교적" 요인에 의해. 일부 발견이 있지만 특별히 심각한 것은 없습니다.

우선, 편리한 용어 몇 가지를 도입하여 브랜치에서 혼동을 덜도록 제안하고자 합니다(많이 있을 것으로 생각됩니다).

1) 프로젝트의 물리적 구조 : 프로젝트 "외부"를 볼 때 보이는 파일, 폴더 및 기타 엔티티의 구성.

2) 프로젝트의 논리적 구조: 변수, 기능, 클래스, 프로토콜 등 전체 "내부" 소프트웨어 쓰레기의 구성 등.

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

내 mql 프로젝트의 물리적 구조는 원시주의의 관점에서 매우 간단합니다. 나는 혼란을 줄이고 가능한 혼란의 결과를 최소화하기 위해 의식적으로 이것을 위해 노력합니다.

일반적으로(중간 크기의 경우) 이것은 많은 .mqh 파일(적절한 폴더로 분해됨) + 하나의 mq5 파일입니다.

// 시스템이 다중 스레드인 경우(예: 가장 단순한 경우 Expert Advisor + 표시기) - mq5 파일 수는 프로젝트의 프로그램 수에 해당합니다.

나는 (.ex5 ) 둘 다 사용하지 않으려고 노력한다. // 매우 논란의 여지가 있는 결정입니다. 하지만 런타임 문제를 최소화하기 위해 그렇게 합니다.

--

나는 지금 프로젝트의 논리적 구조에 대해 이야기하는 것을 삼갈 것입니다. 주제가 매우 크므로 최소한 숨을 쉬어야 합니다... :)

 
sanyooooook :

CAD는 완전히 같지는 않지만 컴퓨터 지원 설계입니다.

프로그램을 작성하기도 전에 간단한 알고리즘 언어인 종이에 스케치를 하는 방법을 가르쳐 주셨지만 전혀 익숙해지지 않았습니다.

작업을 전체적으로 제시하고 작업을 구성하는 주요 개체를 강조 표시하려고 합니다.

그런 다음 개체를 구성 요소로 나누고 구성 요소에서 교차점을 찾으면 상위 개체가 나타납니다.

이 같은.

ZY 프로젝트에서 이전에 이미 만난 개체 본질을 찾으면 이전에 확인된 코드를 연결하려고 합니다.

ZZY 디자인을 이야기한다면 MQ 스타일을 받아들이는 것을 그만두고 버튼 하나만 누르면 스타일러 가 모든 사람에게 하나의 스타일을 갖게되고 모든 사람에게 모든 것이 명확해질 것입니다.

 
MetaDriver :

나는 (.ex5 ) 둘 다 사용하지 않으려고 노력한다. // 매우 논란의 여지가 있는 결정입니다. 하지만 런타임 문제를 최소화하기 위해 그렇게 합니다.

라이브러리를 사용하지 않는다는 것은 .dll을 사용하지 않는다는 것을 의미하며, 후자를 사용하면 MQL4와 MQL5 모두에서 사용할 수 있기 때문에 코드 양을 절약할 수 있습니다.
 
Urain :

작업을 전체적으로 제시하고 작업을 구성하는 주요 개체를 강조 표시하려고 합니다.

그런 다음 개체를 구성 요소로 나누고 구성 요소에서 교차점을 찾으면 상위 개체가 나타납니다.

이 같은.

ZY 프로젝트에서 이전에 이미 만난 개체 본질을 찾으면 이전에 확인된 코드를 연결하려고 합니다.

당신은 객체 지향, 나는 기능적이라고 생각)