Policies/Kdelibs Coding Style/fi

    From KDE TechBase
    Revision as of 18:22, 7 April 2013 by FuzzyBot (talk | contribs) (Updating to match new version of source page)

    Tämä dokumentti kuvaa kdelibs-koodin suositellun koodaustyylin. Kukaan ei pakota käyttämään tätä tyyliä, mutta on suositeltavaa käyttää muodoltaan yhtenäisiä lähdekooditiedostoja.

    Lyhyesti: Kdelibs-koodaustyyli noudattaa Qt 4 -koodaustyyliä.

    Sisennys

    • Ei sarkainmerkkejä
    • 4 välilyöntiä yhden sarkainmerkin sijasta

    Muuttujaesittely

    • Jokainen muuttujaesittely uudella rivillä
    • Jokainen uusi sana muuttujanimessä alkaa isolla kirjaimelle (niin kutsuttu kamelityyli)
    • Vältä lyhennyksiä
    • Käytä hyödyllisiä nimiä. Ei lyhyitä nimiä, paitsi:
      • Yksimerkkiset muutujanimet voivat ilmaista laskureita ja tilapäisiä muuttujia, joiden tarkoitus on ilmeinen
      • Muuttujat ja funktiot (metodit) alkavat pienellä kirjaimella

    Esimerkki:

    / / Väärin
    KProgressBar *prbar;
    QString prtxt, errstr;
    
    / / Oikein
    KProgressBar *downloadProgressBar;
    QString progressText;
    QString errorString;
    


    Tyhjemerkki

    • Käytä tyhjiä rivejä ryhmälauseissa
    • Käytä vain yhtä tyhjää riviä
    • Käytä yhtä välilyöntiä jokaisen avainsanan jälkeen
    • Käytä yhtä välilyöntiä ennen osoitin- ja viitemerkkejä '*' tai '&', mutta ei niiden jälkeen
    • Ei välilyöntiä tyyppimuunnoksen jälkeen

    Esimerkki:

    / / Väärin
    QString* myString;
    if(true){
    }
    
    / / Oikein
    QString *myString;
    if (true) {
    }
    

    Aaltosulkeet

    Perussääntönä vasen aaltosulje tulee samalle riville kuin lauseen alku.

    Esimerkki:

    / / Väärin
    if (true)
    {
    }
    
    / / Oikein
    if (true) {
    }
    

    Poikkeus: Funktiototeutuksissa, luokka-, struct-rakenne- ja nimiavaruusesittelyissä on aina avaava aaltosulje aloitusrivillä.

    Esimerkki:

    void debug(int i)
    {
        qDebug("foo: %i", i);
    }
    
    class Debug
    {
    };
    

    Käytä aaltosulkeita jopa silloin kun ehdollisen lauseen runko sisältää vain yhden rivin.

    Esimerkki:

    / / Väärin
    if (true)
        return true;
    
    for (int i = 0; i < 10; ++i)
        qDebug("%i", i);
    
    / / Oikein
    if (true) {
        return true;
    }
    
    for (int i = 0; i < 10; ++i) {
        qDebug("%i", i);
    }
    

    Switch-lausekkeet

    Case-nimiöt ovat samassa sarakkeessa kuin switch-lause

    Esimerkki:

    switch (myEnum) {
    case Value1:
        doSomething();
        break;
    case Value2:
        doSomethingElse();
        // fall through
    default:
        defaultHandling();
        break;
    }
    

    Yritä pitää rivit lyhyempinä kuin 100 merkkiä lisäämällä rivinvaihtoja tarvittaessa.

    Qt includes-lauseet

    • Jos lisäät #includes-rivin Qt-luokkiin, käytä sekä moduulinimeä että luokkanimeä. Tämä sallii sovellusten käyttää kirjastokoodia ilman liiallisia kääntäjän include-polkuja.

    Esimerkki:

    / / Väärin
    #include <QString>
    
    / / Oikein
    #include <QtCore/QString>
    

    Artistic-tyylinen (astyle) automaattinen koodimuotoilu

    Voit käyttää astyle (>=1.23) koodin muotoiluun tai sen testaamiseen, että olet noudattanut tätä dokumenttia. Suorita seuraava komento:

    astyle --indent=spaces=4 --brackets=linux \
           --indent-labels --pad=oper --unpad=paren \
           --one-line=keep-statements --convert-tabs \
           --indent-preprocessor \
           `find -type f -name '*.cpp'-or -name '*.cc' -or -name '*.h'`
    

    Käyttäessäsi astyle (>=2.01) -muotoilua sinun on suoritettava seuraava komento:

    astyle --indent=spaces=4 --brackets=linux \
           --indent-labels --pad-oper --unpad-paren --pad-header \
           --keep-one-line-statements --convert-tabs \
           --indent-preprocessor \
           `find -type f -name '*.cpp' -or -name '*.cc' -or -name '*.h'`
    

    Liittyvä kuoriskripti voidaan löytää unixille kohteessa kdesdk/scripts/astyle-kdelibs ja windows-käyttöjärjestelmälle kohteessa kdesdk/scripts/astyle-kdelibs.bat.

    Emacs- ja Vim-skriptit

    Hakemisto "scripts" kdesdk-moduulissa sisältää muiden hyödyllisten asioiden lisäksi joitakin hyödyllisiä lisäyksiä Emacs- ja Vim-tekstieditoreille, jotka tekevät KDE-koodin muokkaamisen niillä helpommaksi.

    Emacs

    Hakemisto kde-emacs sisältää näppäinsidosjoukon, makrot ja yleistä hyödyllistä koodia. Se on sekä GNU Emacs- että XEmacs-yhteensopiva.

    Kde-emacs -käytön aloittamiseksi lisää seuraava .emacs-tiedostoosi:

    (add-to-list 'load-path "/path/to/kde-emacs")
    (require 'kde-emacs)
    

    Monia asetuksia voidaan muuttaa muokkaamalla "kde-emacs"-ryhmää M-x customize-group -kautta.

    Tarkista lisätietoja varten, mukaanlukien mitä ovat näppäinsidokset ja mitä lisäasetuksia voisit lisätä .emacs-tiedostoosi, itse tiedosto kde-emacs.el.

    Vim

    Voit löytää kohteesta kdesdk/scripts/kde-devel-vim.vim vim-skriptin, mikä auttaa sinua pitämään koodaustyylin oikeana. Sen lisäksi, että oletuksena käytetään kdelibs-koodaustyyliä, se automaattisesti käyttää oikeaa tyyliä Solid- ja kdepim-koodille. Jos haluat lisätä sääntöjä muille hankkeille, lisää ne vapaasti SetCodingStyle-funktioon.

    Skriptin käyttämiseksi sisällytä se ~/.vimrc-tiedostoosi kuten tämä:

    source /path/to/kde/sources/kdesdk/scripts/kde-devel-vim.vim
    


    Urs Wolfer aloitti dokumentin. Joitakin tämän dokumentin osia on otettu Zack Rusinin lähettämästä Qt-koodaustyylidokumentista kohteesta kde-core-devel.