코딩 스타일 정보 - 페이지 5

 

MQL4, С-4 의 클래스는 어디에 있습니까? 예, 개발자는 5에서 상속이 없을 것이라고 말한 것 같습니다.

 
Mathemat >> :

MQL4, С-4의 클래스는 어디에 있습니까? 예, 개발자는 5에서 상속이 없을 것이라고 말한 것 같습니다.

모든 수반되는 매력과 함께 이미 거기에 있습니다. 그리고 이것은 Tetris( mq5 소스)에서도 볼 수 있습니다.

 

와, 방법이 궁금합니다. 벌써 장난감이 나온지 3개월이 지났는데, 이제서야 알게 된...

 
Mathemat >> :

와, 방법이 궁금합니다. 벌써 장난감이 나온지 3개월이 지났는데, 이제서야 알게 된...

뭔가 빠진듯....

느낌표 "와우"의 의미는 무엇입니까? 소스 테스트 할 곳이 MT5인가요!!! 있다면 - 점프에 대한 링크를 제공하는 데 어려움을 겪지 마십시오.

 

음, 아니요, MT5는 아직 (단순한 필사자에게) 보이지 않지만 적어도 코드는 볼 수 있습니다. 무엇을 기대해야 하는지는 분명합니다.

 

그러나 누군가 MQL 소스를 구문 분석하고 어떤 형태로든 사용된 변수/함수의 이름과 텍스트에서 "언급"의 수를 제공할 수 있는 프로그램을 말해 줄 수 있습니까?

예를 들어, 폐기된 텍스트에서 사용하지 않는 변수의 나머지 부분을 포착할 수 있고 일부 강력하게 축약된 이름을 실수로 더 길고 이해하기 쉬운 이름으로 바꾸지 않기 위해 이미 사용된 전역 이름 코드 어딘가에 있다는 사실을 오랫동안 잊고 있었던 변수 입니다.

 
YuraZ >> :

선호하다

만약 ( a > c )

코드렛 = 3;

만약 ( l < b )

코드렛 = 5;

...

...

만약 ( h != b )

코드렛 = 100;


// 특히 모든 종료에 공통적인 몇 가지 추가 작업이 반환 전에 수행되는 경우

... 예를 들어 여기서 우리는 다른 일을 하고 있습니다

재실행(코드렛);

}

당신은 내가 왜 다중 반환을 사용하는지에 대한 완벽한 예를 보여주었습니다. 귀하의 예에서 함수는 첫 번째가 아닌 마지막으로 실행된 if()를 반환합니다. 내 예에서 함수는 첫 번째 일치 항목을 반환합니다. 실제로는 조건을 만족하는 첫 번째 값을 정확히 반환해야 하는 경우가 종종 있었고 마지막 유효한 검사를 반환할 필요가 거의 없었습니다. 이 예에서 반환값이 하나 있다고 해서 함수가 반환한 값을 추적하는 것이 더 쉬워지지는 않습니다. 오히려 반대로 하나의 반환값에서 무엇이든 기대할 수 있습니다.

그건 그렇고, 나는 개인적으로 중요한 기호 ";"를 분리하는 것을 좋아하지 않습니다. 표현에서 :

외부 이중 max_price[100] ; //최근 100개 막대의 최고 가격을 저장합니다.

외부 이중 max_price[100] ; //지난 100개 막대의 최고 가격을 저장합니다. 저는 이렇게만 씁니다.

 
70년대에는 "구조적 프로그래밍"이라는 매우 유행하는 방향이 있었습니다. 이에 대해 많은 책이 쓰여졌습니다. 기억에 남는 문장에서: 함수는 한 장(당시에는 디스플레이가 없었음)에 맞아야 하고 goto와 함께 전체 책에 맞아야 합니다. 그런 다음 모든 것이 객체 지향 프로그래밍으로 바뀌었습니다. 바퀴를 다시 발명할 수 있을까요?
 

아니요, 우리는 여기서 스타일에 대해 이야기하고 있습니다. 그건 그렇고, 어떤 경우에는 goto를 전혀 신경 쓰지 않습니다.

 
C-4 >> :

함수 내에서 함수를 선언해야 하는 이유는 무엇입니까? 개인적으로 C, C++에서만 자랐기 때문에 이 기술은 이해할 수 없습니다.

캡슐화... 템플릿을 작성할 때 매우 지역적인 함수나 펑터 또는 클래스를 숨기고 싶을 때 매우 유용합니다.

그리고 대부분의 경우 이름 없는 네임스페이스를 사용할 수 있습니다.

2. 저는 다음과 같이 중괄호를 넣는 매우 일반적인 스타일을 싫어합니다.

아주 헛된. 브래킷이있는 다양한 실수의 온상. 과거에는 공간을 절약하고 함수의 코드 크기를 결정하는 것이 정당화되었습니다.

그리고 지금, 테라바이트 빗자루 시대에 후회할 곳은 어디인가?

5. 함수에서 함수를 사용합니다.

비효율적(하나에 여러 번 호출), 흐릿하고 깁니다. 특히 UB 중 하나는 사소하지 않은 악의적인 오류의 온상입니다.


다음 - 복사-붙여넣기에 대해. 아주 매복 헛소리 :). 나는 그것을 사용하고 종종 그것 때문에 실수를한다고 고백합니다. 예시? 변수 이름을 변경하고 주석을 변경하는 것을 잊었지만 무엇인지 알 수 없습니다.

따라서 코드 리뷰가 매우 좋습니다. 유용한 것.


파스칼에 대해 :) . 지금까지 주요 올림피아드 언어. 한 가지 간단한 이유 - 적은 수의 키워드, 논리적 조화.

오랫동안 나는 C++를 더 잘 배울 때까지 Pascal(또는 오히려 Delphi)이 C++보다 나쁘다고 믿지 않았습니다.

이제 나는 Pascal이 단독으로 더 낫다고 생각합니다. 그것에 코드를 작성하는 것이 더 어렵습니다.


추가 - 의견에 대해 - 예,이 모든 쓰레기, 특히 약 30 %.

자체 문서화 코드를 작성하면 더 행복해질 것입니다. 클래스가 없기 때문에 MQL4에서는 이를 수행하기가 다소 어렵습니다. 그러나 수업을 통해 더 쉬워야 합니다.


들여쓰기, 명명 원칙, 정렬 등 다른 모든 것은 권장 사항에 불과합니다.

기능에 대해 이야기합니다. 어떤 글꼴이어야합니까? 하나 이상의 라인이 있는 경우 어떻게 합니까? 가장 중요한 것은 수행 된 작업을 명확히하는 것이며 나머지는 권장 사항 일뿐입니다.


가장 중요한 것은 코드를 동반할 사람들에게 코드를 최대한 명확하게 만드는 것입니다.

사유: