Peršokti į turinį
  • ŽAIDIMAI
  • , ŽAIDIMAI
  • ŽAIDIMAI

Ši tema yra neaktyvi. Paskutinis pranešimas šioje temoje buvo prieš 5259 dienas (-ų). Patariame sukurti naują temą, o ne rašyti naują pranešimą.

Už neaktyvių temų prikėlimą galite sulaukti įspėjimo ir pranešimo pašalinimo!

Recommended Posts

Si pamoka imta is gta-online.lt

Programavimo stilius

1. Apie stilių

Programavimo stilius - tai programos sudedamųjų dalių tam tikras išdėstymas. Dažniausiai stilius neturi poveikio pačios programos veikimui, neskaitant atvejų, kai programos kodas išdėstomas klaidingai bei gali sugriauti programos struktūrą. Programavimo stilių apibrėžia dviejų rūšių taisyklės: formalios ir neformalios.

2. Kam jis reikalingas?

Programavimo stilių galima priskirti plačiai temai, kadangi egzistuoja daugybė išdėstymo taisyklių, kuriomis galima vadovautis arba ne. Kiekvienas programuotojas turi savo, asmeninį stilių, pagal kurį programos struktūra autoriui tampa aiški bei lengvai perprantama. Bandant programą bei radus joje spragą, tvarkingame kodo dokumente klaidą pastebėti žymiai lengviau.

Taippat stiliaus taisyklių reikia laikytis tuomet, kai programos kodą rašo daugiau nei vienas žmogus. Programuojant komandoje, svarbu rašyti tokį kodą, kurį suprastų jūsų kolega. Kitu atveju, jūsų kolega sunkiau supras programos struktūrą bei pagal sakinių išdėstymą klaidingoje programoje negalės nuspėti autoriaus tikrojo sumanymo, jos pataisyti.

Apibendrinant šią temos skiltį, įmanoma apibrėžti keletą stiliaus funkcijų:

Aiškesnis programos struktūros išdėstymas.

Galimas mažesnis programavimo klaudų kiekis ardantis programos struktūrą.

3. Struktūros elementai

Programos struktūra susideda iš tam tikrų elmentų. Visas kodas susideda iš tam tikrų sakinių. Sakiniai, kurie valdomi vienu metu bei sudaro tam tikrą grupe, vadinami sudėtiniais sakiniais.

4. Elementų išdėstymas

Struktūros elementams išdėsti egzsistuoja įvairių taisyklių. Turbūt viena iš svarbiausių taisyklių nusako, kaip lygiuoti įvairių lygmenų sakinius. Ši taisyklė apibrėžia, jog kiekvienas lygmuo turi būti tam tikru atstumu nuo kito. Dažniausiai tas atstumas atitinka TAB klavišo suteikiamą tarpą.

Žemiau esantys struktūros pavyzdys vaizduoja tokį lygiavimą:

Sakinys

Sakinys /* PIRMOJO lygmens sakinys */

Sakinys

Sakinys /* ANTROJO lygmens sakinys */

Sakinys

Sakinys /* TREČIOJO lygmens sakinys */

Sakinys

Sakinys /* ANTROJO lygmens sakinys */

Sakinys

Sakinys /* PIRMOJO lygmens sakinys */

Kaip matote, kiekvienas lygmuo atitrauktas skirtingai nuo paraštės. Pirmasis lygmuo atitrauktas per 0 TAB paspaudimų, antrasis per 1, o trečiasis per 2. Taigi šis lygiavimas apibrėžiamas taip:

Pereinant iš mažesnio lygmens į didesnį, sakinys patraukiamas į priekį tam tikru atstumo.

Pereinant iš didesnio lygmens į mažesnį, sakinys atitraukiamas į tokią pačią poziciją, kaip ir prieš didesnįjį.

Sakinių lygmuo dažniausiai keičiamas po tam tikrų salyginių ar ciklų sakinių prasidėjimo, pabaigos. Egzsituoja ir tokių atvejų, kai pradedant minėtąjį sakinį nebūtina patraukti į priekį. Jeigu sekančiame lygmenyje egzistuoja tik vienas sakinys, t.y. jis nėra sudėtinis, tuomet jo patraukti neprivalome. Štai pavyzdys parodantis tai vizualiai:

A_Sakinys /* PIRMOJO lygmens sakinys */

A_Sakinys B_Sakinys /* ANTROJO lygmens sakinys */

A_Sakinys

A_Sakinys /* PIRMOJO lygmens sakinys */

O taip atrodytų, jei antrojo lygmens sakinį rašytume atitraukę:

A_Sakinys /* PIRMOJO lygmens sakinys */

A_Sakinys

B_Sakinys /* ANTROJO lygmens sakinys */

A_Sakinys

A_Sakinys /* PIRMOJO lygmens sakinys */

5. Sudėtiniai sakiniai

Sudėtinius sakiniai kiekvienoje programavimo kalboje atskiriami tam tikrais simboliais arba žodžiais tam, jog programa suprastų kurioje vietoje jie prasideda bei baigiasi. PAWN kalboje tokie sakiniai žymimi { bei } skliausteliais. { atidaro sudėtinį sakinį, o } jį užbaigia. Sudėtiniame sakinyje elementai automatiškai įgija sekantį lygmenį, todėl privalo būti atitraukti į priekį tam tikru atstumu.

Pavyzdys:

{

Sakinys

Sakinys

Sakinys

Sakinys

}

Sudėtinis sakinys sudėtiniame sakinyje:

{

A_Sakinys

A_Sakinys

A_Sakinys

{

B_Sakinys

B_Sakinys

}

}

{

A_Sakinys

{

B_Sakinys

{

C_Sakinys

}

}

}

6. Elementų apipavidalimas

Kai kurios taisyklės, nusako ir kaip tinkamai paibrėžti įvairius elementus. Dažniausiai jos nurodo, šiuos kriterijus:

Kintamųjų pavadinimai turi būti prasmingi.

Sudėtingų algoritmai turi būti aprašyti komentarais.

Autoriaus komentaras:

Aš asmeniškai, vengiu tokių dalykų, jei žinau, jog mano kodas yra asmeninis, kurį matysiu tik aš pats.

7. Dažniausios stiliaus klaidos

Turbūt viena iš dažniausiai sutinkamų stiliaus klaidų yra netinkamas lygiavimas. Gana dažnai tenka susidurti su panašių struktūrų kodais:

Pradinis_Sakinys

{

A_Sakinys

{

B_Sakinys

{

C_Sakinys

}

}

}

Kaip matote, sunku įžvelgti kodo prasme, todėl šis kodas yra sunkiai skaitomas.

Dar viena iš dažnų klaidų yra - sudėtinių sakinių vaizdavimas, kaip paprasto sakinio. Pavyzdys:

Pradinis_Sakinys { A_Sakinys B_Sakinys C_Sakinys }

Nors šis kodas turėtų atrodyti taip:

Pradinis_Sakinys

{

A_Sakinys

B_Sakinys

C_Sakinys

}

7. Neformalūs stiliai

Visame šiame straipsnyje, stengiausi apibrėžti formaliąsias stiliaus taisykles, tačiau be jų galima naudoti ir tam tikras neformaliąsias. Šios taisyklės, tinkamai panaudotos, nekenkia pačio kodo veikimui bei nėra prilyginamos stiliaus klaidoms.

Turbūt viena iš tokių taisyklių yra tam tikrų kodo dalių atskirymas komentarais. Šis veiksmas gali padėdi greičiau orentuotis kode, kadangi jo struktūra tampa lyg ir padalinta į atskiras dalis. Atskyrimas dažniausia naudojamas didelės apimties programose, kai naudojantis slinkties juosta, slenkant per kodą, sunku rasti norimą vietą tarp greitai besikeičiančios dokumento vietos. Žemiau matote pavyzdį panaudojus PAWN kalbos komentarus:

/* TAM TIKRAS SEGMENTAS */

Sakinys

...

Sakinys

/* SEKANTIS SEGMENTAS */

Sakinys

...

Sakinys

/* PABAIGA */

Dar viena plačiai naudojama struktūros savybė yra tam tikras sudėtinių sakinių naudojimas. Dažnai įmanoma sutikti sudėtinių sakinių su tokia struktūra:

/* „kitoks“ sudėtinių sakinių išskyrimas */

A_Sakinys {

B_Sakinys

B_Sakinys

}

A_Sakinys {

B_Sakinys

B_Sakinys}

A_Sakinys {

B_Sakinys

B_Sakinys

}

/* įprastas išskyrimas */

A_Sakinys

{

B_Sakinys

B_Sakinys

}

Šiame pavyzdyje vaizduojami tik keletas būdų kaip įmanoma skirti sudėtinius sakinius.

Kita struktūros stiliaus ypatyė yra tam tikrų elemento dalių tam tikras lygiavimas. Kai kurie, programuotojai savo programų struktūrose lygiuoja elementus pagal tam tikrus kriterijus. Dažnai tie kriterijai priklauso nuo funkijų parametrų ar kintamųjų. Štai keletas pavyzdžių:

/* „kitoks“ stilius */

new

kintamasis;

new

kintamasis

;

new masyvas [ 12 ] ;

new

masyvas [ 12 ]

;

/* įprastas stilius */

new kintamasis;

new masyvas[12];

Kaip minėjau, lygiuojamos ir tam tikros sakinių dalys:

/* „kitoks“ stilius */

A_Funkcija( "Vardas" );

B_Funkcija( "Pavardė" );

C_Funkcija( "Namų adresas" );

/* įprastas stilius */

A_Funkcija("Vardas");

B_Funkcija("Pavardė");

C_Funkcija("Namų adresas");

8. Apibendrinimas

Visa kas aprašyta šiome temoje, kai kuriems programuotojams gali būti nepriimtina, kadangi kiekvienas turi sąvajį programavimo stilių. Taippat minėtųjų taisyklių neprivaloma laikytis. Dažnai jų nesilaikymas nepaveikia pačios programos veikimo, išskyrus PAWN atveju, kai bandant kompiliuoti programą, dėl netinkamo lygmenų lygiavimo, kompiliatorius įspėja vartotoją.

Kadangi pats neesu kompiuterinės etikos specialistas, taigi neteigiu, jog mano minėta informacija atitinka visus standartus. Tiesiog visa tai ką aprašiau, įtakojo įvairūs bei dažniausiai sutikti programavimo stiliaus atvejai, klaidos.

Paaiškink savais žodžiais, nes manau, kad čia puse sedi akis išsprogine skaitydami šita tema ir nk nepagauna :D

-- Papildyta --

[ playerid ]

- tie tarpai tik rašymo stilius, nors daug kas mano, kad tai pagerins serverio veikla.

va pvž mano komanda kurią sudaro tik 1 eilutė.

if(strcmp(cmdtext,"/komanda", true)==0){SendClientMessage(playerid, COLOR,"Text");return 1;}

Man taip yra patogu. (tai mano rašymo stilius, kai komanda sudaro tik viena funkcija.)

Pagal daugiali ši komanda atrodytu šitaip:

if(strcmp(cmdtext,"/komanda", true)==0)
{
SendClientMessage(playerid, COLOR,"Text");

return 1;

}

asd1.gif

Ši tema yra neaktyvi. Paskutinis pranešimas šioje temoje buvo prieš 5259 dienas (-ų). Patariame sukurti naują temą, o ne rašyti naują pranešimą.

Už neaktyvių temų prikėlimą galite sulaukti įspėjimo ir pranešimo pašalinimo!

Svečias
Ši tema yra užrakinta.
  • Šiame puslapyje naršo:   0 nariai

    • Nėra registruotų narių peržiūrinčių šį forumą.

Skelbimai


×
×
  • Sukurti naują...