Sziasztok!
Egyszer régebben olvastam egy humoros (angol nyelvű) írást arról, hogyan lehet olvashatatlan C kódot készíteni. Több buta szabály volt fölsorolva, többek közt valami olyasmi, hogy "használjunk egybetűs változó neveket".
Nem emlékszik valaki ilyesmire? Nem tudnátok linket adni rá, vagy valami támpontot, ami alapján magam is megtalálnám?
Előre is köszi!
- 2900 megtekintés
Hozzászólások
http://www.ioccc.org/
Tanulmányozd az innen elérhető kódot és meríts ihletet.
- A hozzászóláshoz be kell jelentkezni
chmod?
- A hozzászóláshoz be kell jelentkezni
Rakj bele jó sok goto-t. Én régebben ifjú titán koromban előszeretettel használtam, aztán most el kezdtem nézegetni azokat a kódokat. Még jó hogy én irtam :D
- A hozzászóláshoz be kell jelentkezni
- A hozzászóláshoz be kell jelentkezni
Köszi, valószínűleg ezt olvastam. Illetve azon belül is ezt: http://mindprod.com/jgloss/unmainnaming.html
És rosszul emlékeztem, mert nem C, hanem Java tanácsok.
Még most is elröhögtem magam rajta. Köszi!
(Szerk:
Ja, ez az. Erre is emlékszem:
Hungarian Notation is the tactical nuclear weapon of source code obfuscation techniques; use it! ... Consider this real world example: "a_crszkvc30LastNameCol". It took a team of maintenance engineers nearly 3 days to figure out that this whopper variable name described a const, reference, function argument that was holding information from a database column of type Varchar[30] named "LastName" which was part of the table’s primary key. When properly combined with the principle that "all variables should be public" this technique has the power to render thousands of lines of source code obsolete instantly! )
- A hozzászóláshoz be kell jelentkezni
Habár jómagam személyesen nem jártam utána, egyesek szerint a "Hungarian Notation"-t az egész világ félreértelmezi, lásd Joel cikke (kötelező olvasmány mindenkinek), aminek ha lehet hinni, akkor ez egy igenis nagyon-nagyon hasznos dolog jól olvasható és jó minőségű kód írásához. Tehát ha szar kódot akarsz írni, akkor a helyes értelmezést érdemes tudatosan elkerülni. :)
- A hozzászóláshoz be kell jelentkezni
Figyu, ez humor! Az említett példa kicsit erőltetett, de azért jót derültünk rajta.
A gyakorlatban magam is használom a magyar jelölésmódot (sőt pl. ők is), de eddig 4 betű volt a legtöbb, amit típusmegjelölésre használtam (nem a Win32-féle "lpsz" volt), és a 3 is már ritkának számít.
- A hozzászóláshoz be kell jelentkezni
Nem hiszem, hogy rosszul emlékszel, mert van ebből C-s verzió is, és az tuti régebbi mint a Java-s.
Onnan lehet ez ismerős, hogy a C-ből sok ötletet fel lehet használni Java-ban.
Én viszont emlékszem olyan tippre, ami Java-ban nem működik:
int m[23];
// később
int i=5;
// még később
c=i[m];
"...handing C++ to the average programmer seems roughly comparable to handing a loaded .45 to a chimpanzee."
-- Ted Ts'o
- A hozzászóláshoz be kell jelentkezni
Nekem ez tetszett nagyon:
typedef* struct* { int* i; } ínt;
- A hozzászóláshoz be kell jelentkezni
hogy "használjunk egybetűs változó neveket".
_
vagy $ mint valtozone'v. Inkabb _.
- A hozzászóláshoz be kell jelentkezni
ala prototype, jQuery, etc. :)
mar ha a fuggveny/osztalynev is er. :)
Tyrael
- A hozzászóláshoz be kell jelentkezni
_ foglalt (gettext).
--
()=() Ki oda vagyik,
('Y') hol szall a galamb
C . C elszalasztja a
()_() kincset itt alant.
- A hozzászóláshoz be kell jelentkezni
Pont ez a lényeg.
--
"SzAM-7 -es, tudjátok amivel a Mirage-okat szokták lelőni" - Robi.
- A hozzászóláshoz be kell jelentkezni
Az MPlayer kód neked referencia lehet.
- A hozzászóláshoz be kell jelentkezni
A vim-hoz a /usr/share/vim...-ben szokott lenni egy vi macro-ban irt vizualis (labirintus) utkereso pelda. Ennek van egy maze.c labirintus generalo file-ja. Nagy elmeny. A vi makro se piskota mukodes kozben, bar itt epp offtopic.
- A hozzászóláshoz be kell jelentkezni
Valahol volt egy tetris jatek, az include sorok utan volt meg egy sor, az volt maga a jatek.
--
()=() Ki oda vagyik,
('Y') hol szall a galamb
C . C elszalasztja a
()_() kincset itt alant.
- A hozzászóláshoz be kell jelentkezni
Egy main() és egy egyéb függvény? Wirth is megmondta, hogy az a program, ami több, mint 15 sor, az nem jó.
--
unix -- több, mint kód. filozófia.
Life is feudal
- A hozzászóláshoz be kell jelentkezni
Az alábbi egysoros ugyan nem C, de azért érdekes:
signal=(interpret=value);value=(interpret lt parse);do upper=value to value end;exit=upper*upper*upper*upper-value-upper;say=' ';return=say say say; with.=signal;;do then=value to exit;pull='';do otherwise=upper to then-, value;select=otherwise-value; if.otherwise=with.otherwise+with.select;end if.value=value;if.then=value;;do otherwise=value to exit-then;pull=pull, say''say;;end;do otherwise=value to then;pull=pull center(if.otherwise,, length(return));end;say pull;do otherwise=value to exit;with.otherwise=, if.otherwise;end;end;exit
A nyelv REXX és ha jól tudom, az eredeti még FORTRAN volt.
Ha valaki ránézésre megmondja, hogy mit csinál, annak le a kalappal!
Az elején az "lt" valójában a kisebb-jel, csak nem tudtam, hogy írjam be.
- A hozzászóláshoz be kell jelentkezni
A formaja ronda ;)
Itt szebbek/szellemesebbek vannak, bar ez meg perl:
http://www.perlmonks.org/?node=Obfuscated%20Code
- A hozzászóláshoz be kell jelentkezni
egy kis shell, ugyan nem egysoros:
l="x"
for k in \
`seq 16`;do for \
s in $l;do echo -n \
`echo -n $s | wc -c`" "
done; echo; n=;p=;for i in $l
do n=$n\ $p$i;p=$i;done;l=$n\ x; done
- A hozzászóláshoz be kell jelentkezni
Szintaktikailag egy sor, de ugye nem ez számít, amikor az ember kódot olvas.
--
unix -- több, mint kód. filozófia.
Life is feudal
- A hozzászóláshoz be kell jelentkezni
Az olvashatóság szempontjából ez is számít.
A void main() {printf("hello!\n");return 0;}
féle egysorost minden nyelven lehet írni, de mindig ront az olvashatóságon.
- A hozzászóláshoz be kell jelentkezni
Egy main() fgv. volt az egesz, ha jol emlexem.
--
()=() Ki oda vagyik,
('Y') hol szall a galamb
C . C elszalasztja a
()_() kincset itt alant.
- A hozzászóláshoz be kell jelentkezni
- A hozzászóláshoz be kell jelentkezni
És ez annak, aki szereti a "rövid kihívásokat" C-ben.
- A hozzászóláshoz be kell jelentkezni