( uid_21365 | 2020. 03. 10., k – 01:19 )

Ezzel amit írtál, egyet is tudok érteni, oké.

A kérdés inkább az, ha már rászánjuk magunkat holmi „coding style” követésére, az milyen legyen.

Ami engem illet, én kialakítottam a magam számára egyet, ami szerintem sokkal jobb mint az amiket a fejemhez szoktak vágni hogy követnem kéne, hogy például a kapcsos zárójelek egymás alá kerüljenek, meg ilyesmi, ugyanis én nem efféle főként merőben külalaki dolgokból indultam ki. A legfőbb elveim a következők voltak:

—bizonyított tény, hogy egy program általában akkor jó, ha a részei „gyengén kapcsoltak”, azaz a felelősségi körök világosak.

—Ez elsősorban azáltal ámogatható, ha egy függvény (netán szubrutin) csak EGYETLEN dolgot csinál (de azt jól). Már Murphy is megmondta ugye, hogy többféle célra is alkalmas konyhagép egyetlen funkciót se lát el tisztességesen...

—A függvények tehát rövidek kell legyenek. Ökölszabályként kimondható, ha a függvény nem fér rá egyetlen képernyőoldalra, még úgy se ha ezen oldal sorai sűrűn teleírtak, akkor épp ideje elgondolkodni azon, miként lehetne azt a függvényt több részre szétbontani...

—Ha mégis ilyen hosszú függvényt írunk, legalább a benne szereplő ciklusok illetve switch-ek férjenek ki egy-egy képernyőoldalra.

—Ha még a switch-ek se, legalább a case-ágaik.

És így tovább.

Szóval, ebből indultam ki. Na most ha ezt én igyekszem betartani (márpedig igyekszem, óriási erőkkel, s általában sikeresen!) akkor elérhető, hogy mindig amikor egy bizonyos részen dolgozom, az adott „taszk” (általában egy teljes függvény, de legalábbis az adott ciklus, vagy switch, stb) teljes egészében látható a képernyőmön. És ez nagyon jó, mert szuperul áttekinthető minden, egyetlen pillantással, nem kell hozzá görgetnem se... Nálam a tömbök szoktak rém hosszúak lenni, mert általában ugrótáblák. De azt ki bánja...

Néha előfordul hogy nálam se fér be minden egy képernyőoldalba, kicsit kilóg belőle. Nem nagyon, de kicsit. Ez rém zavaró, rontja az áttekinthetőséget. Ilyenkor bizony az van, hogy igyekszem spórolni a hellyel, tehát úgy tördelek hogy mégis beleférjen. Mert az mindennél fontosabb hogy egyetlen pillantással átlássam a teljes izémizét amin épp dolgozom! Ennek érdekében szoktam rá, hogy például nem hagyok szóközt a for és a nyitózárójel közt. Meg hogy nem így írom:

int
myfunc (char **valami)
{

hanem így:

int myfunc(char **valami){

Nálam ez vált be. Ez, hogy a program eleve akkora szeletkékből áll, amik könnyen áttekinthetőek külön-külön.

Ismétlem nem okvetlenül egy teljes függvény, bár többnyire még az is összejön. De ha mégse, akkor a függvény valami bizonyos értelemben egységnek tekinthető része. A tördelés ennek van alárendelve. Ez nálam remekül bevált. Én így nézem ezt a kérdést, ebből az aspektusból. Lehet hogy valakinek ez nem tetszik majd, és én el is fogadom hogy lehetnek olyan körülmények amikor nem ez a legszerencsésebb döntés, de tiltakozom azellen hogy itt egyesek megpróbálják úgy feltüntetni az én módszeremet hogy én csak ész nélkül írom a kódot, mindenféle átgondolás nélkül, fittyet hányva a formázásra és a „formára”!

Egyáltalán nem!

Az én tördelésemben igenis van egy sajátos logika, amit ráadásul nem ad-hoc módon alkalmazok hanem igen szigorú következetességgel.

Jellemzően az egyes részek amik ki kell férjenek egyetlen képernyőre, egymástól a kódban többnyire igen jól láthatóan el is vannak választva többsoros kommentsorokkal, így rögvest pompásan látható az is, meddig érdemes legörgetni a képernyőt hogy az adott részt lássuk a képernyőn a maga teljességében...