:B~ Estil de Codi

1~coding-style Estil de Codi

En aquest capítol es documenta l'estil de codi utilitzat a live systems.

2~ Compatibilitat

_* No utilitzar una sintaxi o semàntica que sigui exclusiva de l'intèrpret
d'ordres Bash. Per exemple, l'ús dels arrays.

_* Utilitzar només el subconjunt POSIX - per exemple, utilitzar $(foo) en
lloc de `foo`.

_* Es pot comprovar els scripts amb 'sh -n' i 'checkbashisms'.

_* Assegurar-se que tot el codi funciona amb 'set -e'.

2~ Indentació

_* Utilitzar sempre tabuladors en lloc d'espais.

2~ Ajust de línia

_* En general, les línies són de 80 caràcters com a màxim.

_* Utilitzar "l'estil Linux" de salts de línia:

Mal:

code{

 if foo; then
         bar
 fi

}code

Bé:

code{

 if foo
 then
         bar
 fi

}code

_* El mateix val per a les funcions:

Mal:

code{

 Foo () {
         bar
 }

}code

Bé:

code{

 Foo ()
 {
         bar
 }

}code

2~ Variables

_* Les variables van sempre en majúscules.

_* Les variables que s'utilitzen a live-build sempre comencen amb el prefix
#{LB_}#

_* Les variables temporals internes de live-build comencen amb el prefix
#{\_LB_}#

_* Les variables locals comencen amb el prefix live-build #{\_\_LB_}#

_* Les variables en relació a un paràmetre d'arrencada de live-config
comencen amb #{LIVE_}#.

_* Totes les altres variables de live-config comencen amb el prefix #{_}#

_* Utilitzar claus al voltant de les variables, per exemple, escriure
#{${FOO}}# en lloc de #{$FOO}#.

_* Protegir sempre les variables amb cometes per a respectar els espais en
blanc potencials: escriure #{"${FOO}"}# no #{${FOO}}#.

_* Per raons de coherència, utilitzar sempre cometes al assignar valors a
les variables:

Mal:

code{

 FOO=bar

}code

Bé:

code{

 FOO="bar"

}code

_* Si s'utilitzen múltiples variables, posar cometes a l'expressió completa:

Mal:

code{

 if [ -f "${FOO}"/foo/"${BAR}"/bar ]
 then
         foobar
 fi

}code

Bé:

code{

 if [ -f "${FOO}/foo/${BAR}/bar" ]
 then
         foobar
 fi

}code

2~ Miscel·lània

_* Utilitzar "#{|}#" (sense les cometes) com separador en l'ús de sed, per
exemple, "#{sed -e 's|foo|bar|'}#" (sense "").

_* No utilitzar l'ordre #{test}# per a fer comparacions o tests, utilitzar
"#{[}#" "#{]}#" (sense ""); per exemple, "#{if [ -x /bin/foo ]; ...}#" i no
"#{if test -x /bin/foo; ...}#".

_* Utilitzar #{case}# sempre que sigui possible en lloc de #{test}#, ja que
és més fàcil de llegir i més ràpid en l'execució.

_* Fer servir noms en majúscula per a les funcions per evitar conflictes amb
l'entorn dels usuaris.
