LINUX.ORG.RU

Красивый код.


0

0

Посоветуйте пожалуйста открытые проекты с красивым кодом, написанные на c++.
И аргументации бы хотелось почему вы собственно решили, что этот код красив.
Спасибо!

Лично мне нравится коюбой сишный код, который правльно форматирован, его приятно и легко читать. Вот смотришь на код и видишь как бы уже все приложение или его часть в будущем. Вот это ИМХО красивый код.
Хотя многие сейчас яростно быдлокодят, аж смотреть противно.

З.Ы. Писал лабораторные работы по С++ друзьям, так в методичку аж больно было смотреть, такого быдлокода там понаписали «преподы». И, кстати, мой код, красиво и правильно отформатированный, у одного не приняли, ибо, по словам «препода» «неправвильно написал», подразумевая как раз-таки форматирование. Преподом была бабуля. Накипело, что-то. Плодят быдлокодеров, блджад!

Zhbert ★★★★★
()
Ответ на: комментарий от bibi

>Красивый - это приносящий прибыль.
Красота, она разная.

Booster ★★
()

Любой рабочий индусокод. Если код крив и кос, и при этом работает — это всегда красиво!

balodja ★★★
()
Ответ на: комментарий от bibi

Чувствуется, что ты в приносящих прибыль больших закрытых проектах не принимал участия. А там обычно такие ужасы, что не знаешь что делать смеяться или плакать. Но прибыль оно конечно же приносит.

Reset ★★★★★
()
Ответ на: комментарий от Reset

Чувствуется, что ты в приносящих прибыль больших закрытых проектах не принимал участия. А там обычно такие ужасы, что не знаешь что делать смеяться или плакать. Но прибыль оно конечно же приносит.

Если не секрет каким именно местом чувствуется? Если сзади то это не я. Чес слово вот те крест.

bibi
()
Ответ на: комментарий от JackyTreehorn

>Форматированием занимается форматтер. К красоте это не имеет отношения.

Красота разная бывает, как уже говорилось выше.

Zhbert ★★★★★
()
Ответ на: комментарий от Zhbert

Красота разная бывает, как уже говорилось выше.

X=1024; Y=768; A=3;

J=0;K=-10;L=-7;M=1296;N=36;O=255;P=9;_=1<<15;E;S;C;D;F(b){E="1""111886:6:??AAF"
"FHHMMOO55557799@@>>>BBBGGIIKK"[b]-64;C="C@=::C@@==@=:C@=:C@=:C5""31/513/5131/"
"31/531/53"[b ]-64;S=b<22?9:0;D=2;}I(x,Y,X){Y?(X^=Y,X*X>x?(X^=Y):0,  I (x,Y/2,X
)):(E=X);      }H(x){I(x,    _,0);}p;q(        c,x,y,z,k,l,m,a,          b){F(c
);x-=E*M     ;y-=S*M           ;z-=C*M         ;b=x*       x/M+         y*y/M+z
*z/M-D*D    *M;a=-x              *k/M     -y*l/M-z        *m/M;    p=((b=a*a/M-
b)>=0?(I    (b*M,_      ,0),b    =E,      a+(a>b      ?-b:b)):     -1.0);}Z;W;o
(c,x,y,     z,k,l,    m,a){Z=!    c?      -1:Z;c     <44?(q(c,x         ,y,z,k,
l,m,0,0     ),(p>      0&&c!=     a&&        (p<W         ||Z<0)          )?(W=
p,Z=c):     0,o(c+         1,    x,y,z,        k,l,          m,a)):0     ;}Q;T;
U;u;v;w    ;n(e,f,g,            h,i,j,d,a,    b,V){o(0      ,e,f,g,h,i,j,a);d>0
&&Z>=0? (e+=h*W/M,f+=i*W/M,g+=j*W/M,F(Z),u=e-E*M,v=f-S*M,w=g-C*M,b=(-2*u-2*v+w)
/3,H(u*u+v*v+w*w),b/=D,b*=b,b*=200,b/=(M*M),V=Z,E!=0?(u=-u*M/E,v=-v*M/E,w=-w*M/
E):0,E=(h*u+i*v+j*w)/M,h-=u*E/(M/2),i-=v*E/(M/2),j-=w*E/(M/2),n(e,f,g,h,i,j,d-1
,Z,0,0),Q/=2,T/=2,       U/=2,V=V<22?7:  (V<30?1:(V<38?2:(V<44?4:(V==44?6:3))))
,Q+=V&1?b:0,T                +=V&2?b        :0,U+=V    &4?b:0)     :(d==P?(g+=2
,j=g>0?g/8:g/     20):0,j    >0?(U=     j    *j/M,Q      =255-    250*U/M,T=255
-150*U/M,U=255    -100    *U/M):(U    =j*j     /M,U<M           /5?(Q=255-210*U
/M,T=255-435*U           /M,U=255    -720*      U/M):(U       -=M/5,Q=213-110*U
/M,T=168-113*U    /       M,U=111               -85*U/M)      ),d!=P?(Q/=2,T/=2
,U/=2):0);Q=Q<    0?0:      Q>O?     O:          Q;T=T<0?    0:T>O?O:T;U=U<0?0:
U>O?O:U;}R;G;B    ;t(x,y     ,a,    b){n(M*J+M    *40*(A*x   +a)/X/A-M*20,M*K,M
*L-M*30*(A*y+b)/Y/A+M*15,0,M,0,P,  -1,0,0);R+=Q    ;G+=T;B   +=U;++a<A?t(x,y,a,
b):(++b<A?t(x,y,0,b):0);}r(x,y){R=G=B=0;t(x,y,0,0);x<X?(printf("%c%c%c",R/A/A,G
/A/A,B/A/A),r(x+1,y)):0;}s(y){r(0,--y?s(y),y:y);}main(){printf("P6\n%i %i\n255"
"\n",X,Y);s(Y);}
jtootf ★★★★★
()
Ответ на: комментарий от jtootf
extern int q16<::>;extern int q17<::>;static void q18(q19 q2,int q3,int q4);
static void q20(q19 q2,int q3,int q4);q21(int)q22(q19 q2,int q3,int q4);q21(
q19)q23(int q24,int q25)<%int q26;q19 q2;if(q27(sizeof(unsigned char*),q25))<%
return NULL;%>if(q27(sizeof(unsigned char*),q24))<%return NULL;%>q2=(q28*)q29(
sizeof(q28));if(!q2)<%return NULL;%>memset(q2,0,sizeof(q28));q2->q30=(unsigned
char**)q29(sizeof(unsigned char*)*q25);if(!q2->q30)<%q31(q2);return NULL;%>q2
->q32=0;q2->q33=0;q2->q34=0;q2->q35=0;q2->q36=0;for(q26=0;(q26<q25);q26++)<%q2
->q30<:q26:>=(unsigned char*)q37(q24,sizeof(unsigned char));if(!q2->q30<:q26:>
)<%for(--q26;q26>=0;q26--)<%q31(q2->q30<:q26:>);%>q31(q2->q30);q31(q2);return
NULL;%>%>q2->q24=q24;q2->q25=q25;q2->q38=0;q2->q39=(-(1*(1*1+0)+0));q2->q40=0;
q2->q41=(1*(1*1+0)+0);q2->q42=0;for(q26=0;(q26<q43);q26++)<%q2->open<:q26:>=
(1*(1*1+0)+0);q2->q44<:q26:>=0;q2->q45<:q26:>=0;q2->q46<:q26:>=0;%>;q2->q47=0;
q2->q48=0;q2->q7=0;q2->q5=0;q2->q8=q2->q24-(1*(1*1+0)+0);q2->q6=q2->q25-(1+0);
return q2;%>q21(q19)q49(int q24,int q25)<%int q26;q19 q2;if(q27(q24,q25))<%
return NULL;%>if(q27(sizeof(int*),q25))<%return 0;%>if(q27(sizeof(int),q24))<%
return NULL;%>q2=(q28*)q29(sizeof(q28));if(!q2)<%return 0;%>memset(q2,0,sizeof
(q28));q2->q48=(int**)q29(sizeof(int*)*q25);if(!q2->q48)<%q31(q2);return 0;%>
q2->q32=0;q2->q33=0;q2->q34=0;q2->q35=0;q2->q36=0;for(q26=0;(q26<q25);q26++)<%
q2->q48<:q26:>=(int*)q37(q24,sizeof(int));if(!q2->q48<:q26:>)<%q26--;while(q26
>=0)<%q31(q2->q48<:q26:>);q26--;%>q31(q2->q48);q31(q2);return 0;%>%>q2->q24=
q24;q2->q25=q25;q2->q39=(-(0+1));q2->q40=0;q2->q47=(1*1+0);q2->q50=0;q2->q51= 
lester ★★★★
()
Ответ на: комментарий от lester
                       \
                      int
                     _,l;\
                    char*I,
                   *O[]={"",
                  "gjstu","t"
                 "fdpoe","uij"
                "se","gpvsui",\
                  "gjgui","t"
                 "jyui","tfwf"
                "oui","fjhiui",
               "ojoui","ufoui",\
              "fmfwfoui","uxfmgu"
             "i","b!qbsusjehf!jo!"
            "b!qfbs!usff/\xb\xb",""
               "uxp!uvsumf!epwf"
              "t-\xb","uisff!gsf"
             "odi!ifot-!","gpvs!d"
            "bmmjoh!cjset-!","gjwf"
           "!hpme!sjoht<\xb","tjy!h"
          "fftf!b.mbzjoh-!","tfwfo!t"
         "xbot!b.txjnnjoh-\xb","fjhiu"
        "!nbjet!b.njmljoh-!","ojof!mbe"
            "jft!ebodjoh-!","ufo!m"
           "pset!b.mfbqjoh-\xb","fm"
          "fwfo!qjqfst!qjqjoh-!","ux"
         "fmwf!esvnnfst!esvnnjoh-!",""
        "Po!uif!","!ebz!pg!Disjtunbt!n"
       "z!usvf!mpwf!hbwf!up!nf\xb","boe"
      "!"};int putchar(int);int main(void
     ){while(l<(sizeof O/sizeof*O-2)/2-1){
          I=O[_=!_?sizeof O/sizeof*O-
         3:_<(sizeof(O)/sizeof*O-2)/2?
        sizeof O/sizeof*O-2:_==(sizeof(
       O)/sizeof*O-2)/2?++l,0:_<(sizeof(
      O)/sizeof(*O))-3?(_-1)==(sizeof(O)/
     sizeof*O-2)/2?sizeof O/sizeof*O-1:_-1
    :_<sizeof(O)/sizeof*O-2?l+1:_<sizeof(O)
   /sizeof*O-1?l+(sizeof O/sizeof(*O)-2)/2:(
  sizeof(O)/sizeof*O-2)/2];while(*I){putchar(
                  *I++-1);}}
                  return 0;}
jtootf ★★★★★
()
Ответ на: комментарий от jtootf

Вот это я понимаю - КОД! Большими буквами все!

Zhbert ★★★★★
()
Ответ на: комментарий от jtootf

xxx: а у тебя как дела? yyy: подучил mysql, postgres, perl yyy: надо вот за питона браться yyy: кстати про перл... такая жопа! я когда сюды устроился, бывший админ здесь скрипт перловый мне в наследство оставил yyy: скрипт в виде рисунка белочки был yyy: я пока разобрал - столько пива ушло, чуть эту белочку не словил...

http://bash.org.ru/quote/403221

хотя это и не плюсы, канешн

Zloddey
()
Ответ на: комментарий от Zloddey

мне стыдно

xxx: а у тебя как дела?
yyy: подучил mysql, postgres, perl
yyy: надо вот за питона браться
yyy: кстати про перл... такая жопа! я когда сюды устроился, бывший админ здесь скрипт перловый мне в наследство оставил
yyy: скрипт в виде рисунка белочки был
yyy: я пока разобрал - столько пива ушло, чуть эту белочку не словил...
Zloddey
()
Ответ на: комментарий от jtootf

А рекурсивно мутирующий слабо? Чтобы на выходе так же был код. Но уже другой. Но тоже рабочий. И чтобы на выходе так же был код.

bibi
()
Ответ на: комментарий от Zhbert

Вот что действительно надоело, так это студентота, рассуждающая о красивом коде и глупых преподах.

anonymous
()
Ответ на: комментарий от lester

Вот когда в C++ лямбда появится нормальная, и LINQ, тогда говори про «быдло», приплюснутенький.

anonymous
()
Ответ на: комментарий от bibi

Чтобы на выходе так же был код

#!/bin/sh

echo 'int main(){int n=((-12%13)+1);\c'                         > 0.c
echo 'char*A="int main(){int n=((%d%c13)+1);char*%c=%c%s%c;\c' >> 0.c
echo 'printf(%c,n,37,76+n,34,%c,34,76+n,76+n,10);}%c";\c'      >> 0.c
echo 'printf(A,n,37,76+n,34,A,34,76+n,76+n,10);}\c'            >> 0.c

for i in {0..30}
do
   j=$[$i+1]
   gcc $i.c -o $i &> /dev/null
   ./$i > $j.c
done

for i in {0..31}
do
   cat $i.c
done
jtootf ★★★★★
()
Ответ на: комментарий от anonymous

>Вот что действительно надоело, так это студентота, рассуждающая о красивом коде и глупых преподах.

Я, к сожалению, уже давно не студент =)

Я не говорю, что преподы глупые, но сам способ преподавания иногда неправильный, ИМХО. Вот мне во времена учебы повезло с преподшей по ЯВУ, она грамотно объясняла алгоритмы и принципы, и хорошо рассказала, как важно грамотно форматировать свой код, чтобы потом его смогли понять те, кто мб будет его доделывать/переделывать.

Zhbert ★★★★★
()
Ответ на: комментарий от Zhbert

> Я, к сожалению, уже давно не студент =)Я, к сожалению, уже давно не студент =)

Что, выгнали с первого курса?

anonymous
()
Ответ на: комментарий от lester

значит ты теперь авторитет и гуру

/me возгордился

jtootf ★★★★★
()
Ответ на: комментарий от lester

лямбды уже есть в gcc и msvc - сюрприз?


для чего их использовать вообще?! Я не в курсе.

Boy_from_Jungle ★★★★
()

темы подобного рода всплывают регулярно, эдак раз в 2 недели. не прикрепить ли?

amomymous ★★★
()
Ответ на: комментарий от jtootf
    ''=~(        '(?{'        .('`'        |'%')        .('['        ^'-')
    .('`'        |'!')        .('`'        |',')        .'"'.        '\\$'
    .'=='        .('['        ^'+')        .('`'        |'/')        .('['
    ^'+')        .'||'        .(';'        &'=')        .(';'        &'=')
    .';-'        .'-'.        '\\$'        .'=;'        .('['        ^'(')
    .('['        ^'.')        .('`'        |'"')        .('!'        ^'+')
   .'_\\{'      .'(\\$'      .';=('.      '\\$=|'      ."\|".(      '`'^'.'
  ).(('`')|    '/').').'    .'\\"'.+(    '{'^'[').    ('`'|'"')    .('`'|'/'
 ).('['^'/')  .('['^'/').  ('`'|',').(  '`'|('%')).  '\\".\\"'.(  '['^('(')).
 '\\"'.('['^  '#').'!!--'  .'\\$=.\\"'  .('{'^'[').  ('`'|'/').(  '`'|"\&").(
 '{'^"\[").(  '`'|"\"").(  '`'|"\%").(  '`'|"\%").(  '['^(')')).  '\\").\\"'.
 ('{'^'[').(  '`'|"\/").(  '`'|"\.").(  '{'^"\[").(  '['^"\/").(  '`'|"\(").(
 '`'|"\%").(  '{'^"\[").(  '['^"\,").(  '`'|"\!").(  '`'|"\,").(  '`'|(',')).
 '\\"\\}'.+(  '['^"\+").(  '['^"\)").(  '`'|"\)").(  '`'|"\.").(  '['^('/')).
 '+_,\\",'.(  '{'^('[')).  ('\\$;!').(  '!'^"\+").(  '{'^"\/").(  '`'|"\!").(
 '`'|"\+").(  '`'|"\%").(  '{'^"\[").(  '`'|"\/").(  '`'|"\.").(  '`'|"\%").(
 '{'^"\[").(  '`'|"\$").(  '`'|"\/").(  '['^"\,").(  '`'|('.')).  ','.(('{')^
 '[').("\["^  '+').("\`"|  '!').("\["^  '(').("\["^  '(').("\{"^  '[').("\`"|
 ')').("\["^  '/').("\{"^  '[').("\`"|  '!').("\["^  ')').("\`"|  '/').("\["^
 '.').("\`"|  '.').("\`"|  '$')."\,".(  '!'^('+')).  '\\",_,\\"'  .'!'.("\!"^
 '+').("\!"^  '+').'\\"'.  ('['^',').(  '`'|"\(").(  '`'|"\)").(  '`'|"\,").(
 '`'|('%')).  '++\\$="})'  );$:=('.')^  '~';$~='@'|  '(';$^=')'^  '[';$/='`';

жаль, баян никто не нарисовал

madgnu ★★★★★
()

Приблизительно 38-46 аналогичных тем за последние полтора года всплывало на ЛОРе

Karapuz ★★★★★
()
Ответ на: комментарий от lester

Херня это (в C++1x), а не лямбды. Язычишко как был позорненьким, так и остался.

anonymous
()
Ответ на: комментарий от tensai_cirno

>グノーム
К сведению: в татэгаки «ー» пишется вертикально.

x3al ★★★★★
()

Посоветуйте пожалуйста открытые проекты с красивым кодом, написанные на c++.

google test

И аргументации бы хотелось почему вы собственно решили, что этот код красив.

ощущение правильности

shty ★★★★★
()
Ответ на: комментарий от Reset

>Чувствуется, что ты в приносящих прибыль больших закрытых проектах не принимал участия. А там обычно такие ужасы, что не знаешь что делать смеяться или плакать. Но прибыль оно конечно же приносит.

Дело тут не в закрытости проекта, а в самом факте, что код пишется за деньги. И основным, если не единственным критерием является «рабочесть» кода, а красота, стиль и т.п. почти не имеют веса.

Я не так давно полез в старое (2.4) ядро, которое Sharp поставляла в своих Zaurus'ах. Там такой мегаахтунг, что просто слов нет. Сейчас эти участки кода уже в 2.6 переписали частично, а частично их просто не перенесли. Зато раньше работало всё железо полностью. Вот и думай что лучше: работающий ахтунг-код или недопиленная красота? Хорошо, конечно, если всё красиво и работает, но реалии далеки от идеала.

anonymous
()
Ответ на: комментарий от tensai_cirno

>Красивый код на крестах - миф.

Я даже красивый машинный код встречал. Красота - она в глазах смотрящего.

KRoN73 ★★★★★
()

Код должен быть хорошо отформатирован, иметь логичную и простую ООП декомпозицию на классы, и 20-25% кода должны занимать комментарии.

Такой код я видел только в исходниках XARA Xtreme. Но он был проприетарный «толькочтооткрытый», опенсорчники в него руки не упели засунуть.

xintrea
()
Ответ на: комментарий от bk_

>Опять студентота про свой ООП. Учите функциональный стиль блждад.

А ты его сам выучил?

anonymous
()

> Посоветуйте пожалуйста открытые проекты с красивым кодом, написанные на c++.

с красивым кодом

c++


Бва-ха-ха!

mix_mix ★★★★★
()
Ответ на: комментарий от Obey-Kun

> хм, в моём коде >30% комментариев, это плохо?

Это хорошо.

xintrea
()
Ответ на: комментарий от Obey-Kun

> хм, в моём коде >30% комментариев, это плохо?

Хочеться взять и обнять :}

tensai_cirno ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.