Нужно ли пояснения к советникам и индикаторам вставлять в шапку кода??? - страница 2

 
Vladislav Andruschenko:


описывать функции это правильно. Если они не очевидны. (Например в названии функции можно заложить все, что она делает. )

Не совсем так, не только функции.

Вот вырезка с OnTick()


 
Ничего не пишу в шапке, пишу комменты. В большим/сложным функциям пишу описание что она как делает, для чего, , что в неё передаем, что ожидаем получить в результате (это часто спасает)
 
а еще можно всю программу писать в виде одной строки и без комментариев
 
Vitaly Muzichenko:

Не совсем так, не только функции.

Вот вырезка с OnTick()


Это комментирование кода, который находится внутри. 
 
Vladislav Andruschenko:
Это комментирование кода, который находится внутри. 

Ну так Я об этом сразу и писал, что описан каждый блок)

Что делает сама программа - никогда не описываю даже кратко.

 
Alexey Viktorov:

Я не учился посредством CopyPaste и из CodeBase ничего не скачивал никогда, только иногда просматриваю выборочно.

ps; Помочь начинающему, на словах объяснить последовательность, указать на какую-то ошибку это гораздо полезней для начинающего, чем написать для него пример или ещё хуже полный код. Типа я потом разберусь что к чему... Так не бывает. Такой программист так и остаётся в разряде CopyPaste.

Сегодня с++ язык в ходу вчера был другой делфи или РНР, завтра всё переведут в голосовую систему написания строк. после завтра все будет писаться усилием мозговых импульсов блочно модульным способом или вообще каким нибудь супер навороченным видеоинтеллектуальным генератором - читает или видит то что нужно запрограммировать и все переводит в супер нейро-квантово-интеллектуальную пргу...ни кто не спорит - все начинали с Аз Буки Веди... а потом развивались в меру своих способностей, кому-то дано писать - кому-то списывать...

 
Mickey Moose:
а еще можно всю программу писать в виде одной строки и без комментариев

Не-е, код должен быть написан так, чтобы с первого взгляда было понятно, что он делает. Вот, например, сразу ясно, что это генератор ASCII-картинок, правда ведь?

#include <stdio.h>
#include <math.h>
#define E return
#define S for
char*J="LJFFF%7544x^H^XXHZZXHZ]]2#( #@@DA#(.@@%(0CAaIqDCI$IDEH%P@T@qL%PEaIpBJCA\
I%KBPBEP%CBPEaIqBAI%CAaIqBqDAI%U@PE%AAaIqBcDAI%ACaIaCqDCI%(aHCcIpBBH%E@aIqBAI%A\
AaIqB%AAaIqBEH%AAPBaIqB%PCDHxL%H@hIcBBI%E@qJBH#C@@D%aIBI@D%E@QB2P#E@'C@qJBHqJBH\
%C@qJBH%AAaIqBAI%C@cJ%"   "cJ"   "CH%C@qJ%aIqB1I%PCDI`I%BAaICH%KH+@'JH+@KP*@%S@\
3P%H@ABhIaBBI%P@S@PC#",     *j   ,*e;typedef float x;x U(x a){E a<0?0:a>1?1:a; }
typedef struct{x c,a,t;      }   y;y W={1,1,1},Z={0,0,0},B[99],P,C,M,N,K,p,s,d,h
;y G(x t,x a,x c){K.c=t   ;      K.t=c; K.a=a;E K;}int T=-1,b=0,r,F=-111,(*m)(i\
nt)=putchar,X=40,z=5,o,   a,     c,t=0   ,n,R;y A(y a,y b,x c){E G(a.c+b.c*c,a.a
+c*b.a,b.t*c+a.t);}x H=   .5,Y   =.66     ,I,l=0,q,w,u,i,g;x O(y a,y b){E q=a.t*
b.t+b.c*a.c+a.a*b.a;}x Q(){E A(P,M,T       ),O(K,K)<I?C=M,I=q:0;}y V(y a){E A(Z,
a,pow(O(a,a),-H));}x D(y p){S(I=X,P         =p,b=T; M=B[++b],p=B[M.c+=8.8-l*.45,
++b],b<=r;Q())M=p.t?q =M_PI*H,w=atan2(   P.a-M.a,P.c-M.c)  /q,o=p.c-2,a=p.a+1,t=
o+a,w=q*(w>t+H*a?o:    w>t?t:w<o-H*a?t   :w<o?o:w),A(      M,G(cos(w),sin(w),0),
1):A(M,p,U(O(A(P,M,T)    ,p)/O(p,p)));   M=P;M.a=-         .9;o=P.c/8+8;o^=a=P.t
/8+8; M=Q        ()?o&1    ?G(Y,0,0):W   :G(Y,Y,1);E       sqrt        (I)-.45;}
int main(   int    L,char    **k){ S(e   =L>1?1[z=    0,   k]:J   ;*e   &&l<24 ;
++e)S(o=a   =0,j   =J+9;(c=    *++j)&&   !(o&&c<    X&&(q=l+=w)   );o   ?o=*j++/
32,b++[B]   =G(q   +=*j/8&3,*    j&7,0   ),B[r    =b++]=G((c/8&        3)*( o<2?
T:1), (c&   7)+    1e-4,o>2),1:    (o    =(a    =(c-=X)<0?w=c+6   ,t=   a+1:c?(t
?0:m(c),a        ):*++j)==((*e|32        )    ^z)&&1[j]-X));S(z   =3*(   L<3);++
F<110;)S(L=-301;p=Z,++L<300;m(              p.c),m(p.a),m(p.t))S(c=T;++c<=z;)S(h
=G(-4,4.6,29),d=V(A(A(A(Z,V(G(5,0         ,2)),L+L+c/2),V(G(2,-73,0)),F+F+c%2),G
(30.75,-6,-75),20)),g=R=255-(n=z)*64;    R*n+R;g*=H){S(u=i=R=0;!R&&94>(u+=i=D(h=
A(h,d,i)));R=i<.01);S(N=V(A(P,C,               T)),q=d.t*d.t,s=M,u=1;++i<6*R;u-=
U(i/3-D(A(h,N,i/3)))/pow(                             2,i));s=R?i=pow(U(O(N,V(A(
M=V(G(T,1,2)),d,T))))                                     ,X),p=A(p,W,g*i),u*=U(
O(N,M))*H*Y+Y,g*=                                             n--?Y-Y*i:1-i,s:G(
q,q,1); p=A(p,s                                                 ,g*u);h=A(h,N,.1
);d=A(d,N,-2*O                                                     (d,N));}E 0;}
 

Всегда стараюсь писать побольше комментариев, в том числе и в "шапку".

Проблема только в том, что обычно, когда пишется начало (и оформляется шапка) - чаще всего еще нельзя сказать, как будет работать класс или готовый советник. А когда это уже ясно - обычно много писать в шапку - лень. И пишется только самое важное.

 
Georgiy Merts:

Всегда стараюсь писать побольше комментариев, в том числе и в "шапку".

Проблема только в том, что обычно, когда пишется начало (и оформляется шапка) - чаще всего еще нельзя сказать, как будет работать класс или готовый советник. А когда это уже ясно - обычно много писать в шапку - лень. И пишется только самое важное.

ну так самое важное и надо...меньше воды - больше толку... что размазывать пустые килобайты по большой простыне мозга...там и так много всякой ненужной пакости...)) 

 
Сергей Криушин:

ну так самое важное и надо...меньше воды - больше толку... что размазывать пустые килобайты по большой простыне мозга...там и так много всякой ненужной пакости...)) 

Да непонятно, как лучше.

По крайней мере, у меня нередко выходит так, что как раз то, что казалось очевидным и простым во время написания модуля, потом, через некоторое время уже становится вовсе не таким уж очевидным, а в комментариях это не указано. Так что я стараюсь на комментарии не скупиться, и писать их как можно больше... И все равно периодически сталкиваюсь с тем, что не документированы важные моменты.

Причина обращения: