PROFESSIONAL의 열매와 AMATEUR의 열매를 프로그래밍 방식으로 구별하는 방법은 무엇입니까? - 페이지 7

 

모든 문자열 함수는 비용이 많이 듭니다.

모든 그래픽 기능은 비쌉니다.

요소의 그래프가 클수록 브레이크가 더 많이 걸립니다.(비주얼 모드에서 작업 속도를 높이려면 주기적으로 주문 아이콘을 삭제합니다(특히 많은 경우)).

여기에서 가장 시간이 많이 걸리는 것은 WinowsRedraw() 및 Comment()입니다. 호출될 때 차트도 다시 그려 지기 때문입니다.

언뜻보기에 그런 것.

 

문제는 코드가 전문가에 의해 매우 유능하고(값비싼 기능과 구성 없이) 작성될 수 있지만 그가 명령받은 절대적인 넌센스를 구현할 수 있다는 것입니다.

더 이상 흥미롭지 않습니다.

 
Mathemat :

문제는 코드가 전문가에 의해 매우 유능하고(값비싼 기능과 구성 없이) 작성될 수 있지만 그가 명령받은 절대적인 넌센스를 구현할 수 있다는 것입니다.

더 이상 흥미롭지 않습니다.

내가 상상하는 것처럼, 전문 프로그래머는 작가나 작곡가처럼 자신을 위해 글을 작성해야 하고, 또한 전문적으로 주문해야 하며 항상 긍정적인 결과를 얻을 수 있습니다. 또 다른 것은 그의 아이디어가 프로그래머에게 설득력이 없다는 사실에도 불구하고 고객(TOR)이 구상한 아이디어에 따라 작성하라는 요청을 받은 경우, 이 경우 프로그래머는 고객이 이 고문으로 돈을 벌지 못할 것이라고 경고합니다. 그러나 고객은 주장하고 프로그래머 는 주문을 이행합니다 . 나는 여기에 다른 세부 사항이 있다는 것을 이해합니다. 여기에 있는 어떤 걸작도 시간의 시험을 견디지 못할 것이지만, 역사를 통틀어 MT5 시장에서 장수(테스터에서 테스트)의 예가 있음을 인정해야 합니다. 이것이 프로그램과 프로그래머, 트레이더의 전문성을 결정짓는 출발점이 될 것이라고 생각합니다. 그가 알기 때문이 아니라 결과로 말입니다. 물론 이 전문적인 작업에는 그에 따른 비용이 들어야 합니다. 그리고 작가와 작곡가 모두 종종 그렇듯이 해킹을 노크하는 것은 금지되어 있으며 이것을 "바지 지원"을 위한 강제 아르바이트라고 겸손하게 언급합니다. 솔직히 말해서 미안하지만 그게 없으면 왜 말을 꺼!

 
영감은 판매용이 아닙니다. 그러나 원고를 판매할 수 있습니다.
 

Dmitry, 분석기가 무엇을 할 수 있는지 결정하십시오. 좋은 코드와 나쁜 코드를 구별하는 것과 좋은 아이디어를 나쁜 것과 구별하는 것은 별개입니다. 그리고 첫 번째 경우에 자동 솔루션을 찾으려고 할 수 있다면 두 번째 경우에는 수동 모드에서도 수행하기 어렵고 자동 모드에서는 단순히 비현실적입니다. 그러나 좋은 코드와 나쁜 코드를 구별할 수 있는 분석기에 대해 이야기하고 있으므로 이 주제에 대해 논의해 보겠습니다.

처음에 프로와 아마추어를 구분하는 것은 무엇입니까? 나에게 이것은 언어적 수단의 사용의 다양성으로 표현되는 언어에 대한 지식 수준입니다. 따라서 개발자가 재귀와 같은 간단한 표기법과 알고리즘을 사용한다면 전문 프로그래머일 가능성이 더 큽니다. 이를 기반으로 코드를 분석하고 여기에 사용된 "칩" 수를 계산하는 일종의 전문가 시스템을 만들 수 있습니다. 각 칩에 대해 점수가 부여됩니다. 반대로 칩이 음수이면 패널티가 할당됩니다. 결과적으로 작성된 코드 전체를 특징짓는 특정 숫자 또는 총점을 얻습니다. 예를 들어 다음과 같이 가중치 테이블을 생성할 수 있습니다.


포인트들
배열 사용
+1
코드 재사용 (코드 줄 수에 대한 함수 수의 비율)
+4
연산자 += -= /=
+1
연산자 % >> <<
+3
재귀 함수 호출
+5
전처리기 지시문 사용
+3
코드 수에 대한 주석 행 수
+5
"느린" 기능 사용
-삼
time1, time2, time3, time4와 같은 동일한 유형 변수 사용
-4

결과적으로 전문가 시스템은 각 매개변수의 가중치를 계산하고 코드의 전체 품질을 특성화하는 최종 점수를 제공합니다.

 

여러분, 초보자의 코드에서 전문가의 코드를 구별하는 유일한 방법은 코드 최적화 결과 의 존재입니다. 100% 최적화를 추적할 수 없습니다. 일부 요소만 추적할 수 있습니다. 그리고 초보자도 부분 최적화를 수행할 수 있습니다. 예를 들어 "2로 곱하기" 작업을 "자신에 값 추가" 작업으로 바꿉니다. 자, 추적의 아이디어는 제공할 수 있는 결과에 비해 너무 리소스 집약적입니다. 이와 같은 프로그램에 투자하는 것은 수익성이 없습니다. 이것은 통나무에서 성냥을 잘라내려는 시도입니다. 성냥 하나는 제품과 같고 나머지는 부스러기입니다.

 
drknn :

여러분, 초보자의 코드에서 전문가의 코드를 구별하는 유일한 방법은 코드 최적화 결과의 존재입니다.

갈리모 드라이브))
 

전문 코드의 징후:
의미 있고 변화하는 변수와 기능;
잘 본 프로그램 구조;
합리적인 의견의 존재.

위협 이러한 징후는 프로그램에서 수동으로만 검색할 수 있습니다. 자동화가 작동하지 않습니다.

ZYY 이것은 프로그래머가 직접 작성한 프로그램에서 찾아야 할 전부입니다.
우리 시대에는 자존심이 강한 프로그래머가 그러한 코드를 옆으로 넘기지 않을 것입니다.

 
FAQ :

모든 문자열 함수는 비용이 많이 듭니다.

모든 그래픽 기능은 비쌉니다.

요소의 그래프가 클수록 브레이크가 더 많이 걸립니다.(비주얼 모드에서 작업 속도를 높이려면 주기적으로 주문 아이콘을 삭제합니다(특히 많은 경우)).

여기서 가장 시간이 많이 걸리는 것은 WinowsRedraw() 및 Comment()입니다. 호출될 때 차트도 다시 그려지기 때문입니다.

언뜻보기에 그런 것.


흥미로운 질문은 최적화의 가속화 (테스트는 별도의 문제임)와 감소입니다.
소모된 메모리. 포럼에서 누군가가 우연히 그래픽의 "추가"를 방지해야 한다고 언급했습니다.
최적화 중 개체. 이론적으로 최적화는 그래픽을 전혀 보지 않으며,
ObjectCreate()와 같은 명령은 최적화 중에 무시됩니다.
차단해야 하나 말아야 하나?
그리고 여전히 차단해야 하는 경우 매번 수표를 추가해야 합니다.
 if (IsOptimization()==false ) {
}
동시에 이러한 검사 자체도 최적화 속도에 영향을 미칩니다.
상태 확인 기능은 비용이 많이 듭니까?
변수에 할당하고 나중에 변수를 사용하는 것이 의미가 있습니까?
거의 항상 Comment()가 있습니다. 최적화 중에도 차단되어야 합니까?
경고 및 인쇄는 어떻습니까? (다시 - 최적화 중). 최적화 중에 로그에 기록되지 않습니까?
 
chief2000 :

그리고 여전히 차단해야 하는 경우 매번 수표를 추가해야 합니다.

뿐만 아니라

 if (IsOptimization()== false ) {
}

 if ( !IsOptimization() ) {
}

그러나 다음과 같이 더 좋습니다.

 if ( !IsOptimization() && ( !IsTesting() || IsVisualMode() ) ) {

// ...

}

이 조건은 한 번만 충족되고 일부 플래그의 값을 설정한 다음 차트에 텍스트 및 그래픽 정보를 표시할 필요성을 확인하는 데 사용할 수 있습니다.

추신.

일반적으로 왜 그렇게 흥분합니까? Topicstarter는 주기적으로 당신이 ..., 그러나 D'Artagnan에서 온 것을 나타냅니다.