Indicații generale teme

Codul vostru trebuie nu numai să “meargă”, ci și să respecte anumite standarde. Aveți mai jos câteva indicații pentru teme, împreună cu depunctările aferente pentru nerespectarea lor:

  • -0.2: warning-uri la compilare
  • -0.1: 10-20 linii mai lungi de 80 de caractere;
    • -0.2: mai mult de 20 de linii mai lungi de 80 de caractere;
  • -0.1: mult cod duplicat;
  • -0.1: magic numbers, nu constante simbolice;
  • -0.1: tab-uri amestecate cu spații pentru indentare;
  • -0.1: mixed line endings;
  • -0.1: trailing whitespace; nu lăsați spații sau tab-uri la finalul liniilor;
  • -0.1: funcții kilometrice (> 150 de linii);
    • -0.2: funcții “și mai kilometrice” (> 300 de linii);
  • -0.1: cod comentat; pentru debug recomandăm folosirea unui macro;
  • -0.1: comentarii inadecvate; recomandăm parcurgerea sumară a fișierului Documentation/kernel-doc-nano-HOWTO.txt pentru informații despre formatul comentariilor;
  • -0.1: funcții și variabile folosite doar local care nu sunt statice;
  • -0.2: nu se folosesc funcții copy_{to,from}_user unde este nevoie de ele;
  • -0.2: nu sunt verificate valorile de retur ale funcțiilor;
  • -0.1: nu sunt întoarse coduri de eroare relevante;
  • -0.2/-0.3: probleme de sincronizare (-0.2 sincronizări parțiale, -0.3 mecanismele de sincronizare lipsesc sau sunt incorecte);
  • -0.1: includerea de fișiere binare sau irelevante în arhivă;
  • -0.2: memory leaks;
  • -0.3: folosire operații blocante în context atomic;

Majoritatea comentariilor de stil le puteți verifica folosind scripts/checkpatch.pl, prezent în orice tree de Linux. Pentru situații punctuale în care încălcați regulile, argumentați printr-un comentariu sau o precizare în fișierul README.

Folosire:

scripts/checkpatch.pl --no-tree --terse -f tema-mea.c

Pentru mai multe informații despre coding style, puteți citi fișierul Coding Style, prezent în orice tree de kernel.

so2/teme/general.txt · Last modified: 2017/03/03 23:43 by adrian.stanciu
CC Attribution-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0