Delphi Kodo Standartas

Paskutinis keitimas: 2004-11-04

Parengė GoniX

Šis dokumentas gali būti laisvai platinamas ir/ar naudojamas, kol už tai neimamas joks mokestis. Tam jis ir parengtas. Jei pastebėjote klaidų arba jei norite pasiūlyti patobulinimą, galite rašykite man.

Turinys


Įvadas

Standarto svarba

Kiekvienas individualus programuotojas dažniausiai rašo kodą taip, kaip jam atrodo teisingiausia ir įskaitomiausia. Tačiau kitam žmogui perskaityti kito visiškai kitokiu stiliumi parašytą kodą gali būti gana sudėtinga. Kadangi 100% nusistovėjusio standarto programavime nėra ir, tikriausiai, negali būti, aš siūlau vieną iš variantų.

Standartų pliusai

Standartų minusai


Literatūra


Vardai

Vardas turi tikti

Vardus stenkitės sudaryti, kad jie atspindėtų funkcijos, klasės, metodo, kintamojo paskirtį.


Kalba

Vardai (jei įmanoma) turėtų būti anglų kalba.

Argumentai

Anglų kalbą, tikriausiai, supranta visi programuotojai. Net jei kodas skaitomas tik ribotam kiekiui programuotojų, kurie tikrai supranta jūsų pasirinktą kalbą, vistiek rekomenduojama programavime vartoti anglų kalbą.


Santrumpos

Jei varde reikia naudoti santrumpą kaip HTML, URL, ir t.t. nerašykite jo viso didžiosimis raidėmis. Elkites su juo, kaip su paprastu žodžiu.

Argumentai

Dažniausiai sunkiau suprasti sutrumpinimą, kai jis yra visas didžiosiomis raidėmis (ypač jei po jo eina kitas žodis prasidedantis didžiąja)

Pavyzdys

Neteisingai:

    procedure MyXVZ;

Teisingai:

    procedure MyXvz;

Klasės

Argumentai

Pavyzdys

    type
        TSomeObject = class(TObject);

Rekomenduojama, kad klasės vardas būtų daiktavardis.


Metodai

Argumentai

Pavyzdys

    TSomeObject = class(TObject)
        public
            procedure   DoIt;
            pricedure   HandleError;
            function    GetValue: integer;
    end;

Rekomenduojama, kad metodo vardas būtų reikštų veiksmą.


Metodų parametrai

Argumentai

Pavyzdys

    TSomeObject = class(TObject)
        public
            procedure MyMethod(AFooBar: TFooBar);
    end;

Klasių atributai

Argumentai

Pavyzdys

    TSomeObject = class (TObject)
        public
            function Count: integer;

        private
            fCount: integer;
            fpMessage: PChar;
    end;

Steko kintamieji

Argumentai

Pavyzdys

    procedure TSomeObject.DoIt;
    var
        foo_bar: TFooBar;
        index: integer;
    begin
        ...
    end;

Globalūs kintamieji

Argumentai

Pavyzdys

    int gErrorNumber;

Globalios konstantos

Argumentai

Pavyzdys

    const A_GLOBAL_CONSTANT = 5;

Rodyklės (pointers)

Argumentai

Pavyzdys

    var pName: ^string;

Adresai (references)

Argumentai

Pavyzdys

    procedure ChangeValue(var arFooBar : TFoobar);

Statiniai kintamieji

Argumentai

Pavyzdys

    TSomeObject = class(TObject)
    {
        class var
            sCount : integer;

    }

Delphi funkcijos/procedūros

Argumentai

Pavyzdys

    procedure MyFunction();
    begin
    end;

Pascal funkcijos/procedūros

Argumentai

Pavyzdys

    procedure my_procedure();
    begin
    end;

Tipu vardai

Argumentai

Pavyzdys

    type
        ErrorNumberType = integer;
        PString = ^string;

Formavimas

Atitraukimas/Tarpai/Tab'ai

Argumentai

Pavyzdys

    procedure proc()
    begin
        if (something bad) then
        begin
            if (another thing bad) then
            begin
                while (more input) do
                begin
                end;
            end;
        end;
    end;

Eilutės ilgis

Argumentai


Skliausteliai () su funkcijomis ir keyword'ais

Argumentai

Pavyzdys

    if (something) then
    begin
    end;

    while (something) do
    begin
    end;

    Delete(s1, 0, 5);

Skliausteliai []

Argumentai

Pavyzdys

    procedure TSomeObject.DoIt;
    var
        name: string;
    begin
        pName[0] = #0;
    end;

begin ir end

Iš dviejų pagrindinių būdų, pirmasis yra tinkamesnis:

Argumentai


If Then Else formavimas

Nors tai priklauso nuo programuotojo, bet vienas priimtiniausių būdų yra šis:

    if (condition) then         // komentaras
    begin
        ...
    end
    else if (condition) then    // komentaras
    begin
        ...
    end
    else                        // komentaras
    begin
        ...
    end;

case of formavimas

Pavyzdys

    case Val of
        1: ...
        2: ...
    end;

Operatoriai


Viena išraiška vienoje eilutėje

Visada rašykite tik vieną išraišką veinoje eilutėje, nebent išraiškos yra viena su kita labai atrimai susijusios. pastaruoju atvėju nepaminrškite padeti papildomą tarpą.

Taip pat visada aprašykite tik vieną kintamajį vienoje eilutėje.


Valid HTML 4.01! Valid CSS!