Avatar billede Jhim Nybegynder
14. april 2010 - 09:17 Der er 15 kommentarer

God kode skik?

Hej :D, jeg har lige et kort lille spørgsmål.

Hvis vi har en if kommando:

if(1 == 1) {
  echo "LOL";
}

Er det så god kode skik at skrive semikolon til sidst, så der står:
if(1 == 1) {
  echo "LOL";
};

Har jeg nemlig lige fået fortalt, og har aldrig nogensinde set nogen tutorials som viser, siger man skal skrive det sådan. :P
Avatar billede DonTorro Nybegynder
14. april 2010 - 09:20 #1
har heller aldrig set nogle sætte semikolon efter tuborgparantes
Avatar billede majbom Novice
14. april 2010 - 09:21 #2
jeg ser det som en fejl - jeg ved ikke om det ER en fejl, men jeg har aldrig set det, uden at jeg har set det som en fejl - dvs. jeg har aldrig set det gennemgående i en stump kode...
Avatar billede michael_stim Ekspert
14. april 2010 - 09:22 #3
Jeg vil sige nej. Har kun set en bruge det, og har efterhånden kodet php i 7-8 år.
Avatar billede Jhim Nybegynder
14. april 2010 - 09:28 #4
Så I mener ikke at det et god kode skik? :)
Avatar billede repox Seniormester
14. april 2010 - 09:29 #5
Det bestemmer du selv; curly brackets anvendes til indkapsling og har som sådan ikke nogen effekt i sig selv. Det gælder sig faktisk for alle sprog der anvender curly brackets til indkapsling af det er muligt at afslutte med semikolon eller at undlade det.
Personligt synes jeg det er pænere uden og ser brugen af det sjældent.

'God kodeskik' kan være så mange ting; for mig handler det om hvorvidt koden er overskuelig og variabler samt funktionsnavne er navngivet på en sigende måde.

Personligt kan jeg heller ikke lide den indkapsling du anvender - semikolon eller ej - jeg foretrækker denne opstilling:
// ved kun 1 linie i indkapslingen
if( 1 == 1 )
  echo "LOL";

// ved mere end 1 linie i indkapslingen
if( 1 == 1 )
{
  $string = strtolower("LOL");
  echo $string;
}
Avatar billede majbom Novice
14. april 2010 - 09:35 #6
jeg mener ikke det er god kodeskik, da jeg synes det ser forkert ud :)

til gengæld bryder jeg mig ikke om repox' opstilling ved én linje - jeg bruger altid curlybrackets uanset om der er én eller flere linjer, af den simple grund at det, for mig, er mere overskueligt - jeg kan godt li at det ser ens ud :)

men det er jo en smagssag - så længe det virker og du har et godt overblik over din kode er det jo det vigtigste - man kan så diskutere det, hvis det er noget der skal deles med andre, hvad der er bedst og der ville jeg nok gå efter hvad de fleste gør - og umiddelbart lader det til at det er meget få der bruger semikolon efter }

:)
Avatar billede Jhim Nybegynder
14. april 2010 - 09:53 #7
Tak for svarene :)

Ja, ved godt jeg skulle have lavet den:

if(1 == 1)
{
  echo "LOL";
}

Men nu var det bare om man skulle bruge semikolon :)

Tak for svarene alle sammen :P, hvis i gerne vil have point laver i bare et post som svar, så giver jeg jer point, om en time eller sådan.
Avatar billede majbom Novice
14. april 2010 - 10:10 #8
springer over :)
Avatar billede DonTorro Nybegynder
14. april 2010 - 11:33 #9
også mig
Avatar billede olebole Juniormester
14. april 2010 - 12:55 #10
<ole>

I PHP har det ingen betydning, men i f.eks. JavaScript kan det være en lodret katastrofe at udelade semikolon efter en curly afslutnings-bracket - dersom denne tilhører en funktion.

Så repox >> Du skal nok lige tjekke 'alle sprog der anvender curly brackets til indkapsling' - for det er ikke udelukkende et spørgsmål om, hvad du finder kønt.

Der er ikke bare tale om 'god kodeskik', men af og til om 'en tvingende nødvendighed' at anvende semikolon efter en curly afslutnings-bracket ... men vist nok aldrig i PHP  ;o)

/mvh
</bole>
Avatar billede repox Seniormester
14. april 2010 - 13:11 #11
#10
Jeg er ikke så skarp i JS, indrømmet, men jeg vil meget gerne se et eksempel på det du omtaler? Det er ikke noget jeg er stødt på tidligere i JS, så jeg er klar på at lære noget nyt ;)

Ja, PHP et er klytsprog :p
Avatar billede olebole Juniormester
14. april 2010 - 13:57 #12
Den første funktion i denne kode afsluttes ikke med et semikolon:

<script type="text/javascript">
var myFunction = function() {
    alert("Hep");
}

(function(){
    // Denne kode afvikles i en closure
})();
</script>


- hvorfor den af JS-parseren vil tolkes som:

<script type="text/javascript">
var myFunction = function() {
    alert("Hep");
}(function(){
    // Denne kode afvikles i en closure
})();
</script>


Altså bliver den anden funktion medsendt som argument til den første - og det er jo noget helt andet  =8-O

Derudover er det meget almindeligt at minimere sine JavaScrips ved at fjerne overflødigt white-space og/eller linjeskift. Her kan man virkelig sætte vand over til ballade, hvis man undlader semikolon!

Den gamle traver om, hvor man sætter sine curly brackets, bør heller ikke uden interesse:
    http://remysharp.com/2007/11/21/javascript-style-why-its-important/
Avatar billede repox Seniormester
14. april 2010 - 14:21 #13
Okay, så er det jo ganske specifikt for JavaScript; som sagt, så er JavaScript ikke just en større del at mit repertoire - og er som sagt heller ikke stødt på problemet selv...

Jeg er klar over at man kan få fordelen at kunne sætte det hele på en linie, såfremt man anvender semikolon - det kan jeg godt se det smarte i, når det nu er klienten der skal hente en større omgang (f.eks. jQuery eller Prototype eller lign. frameworks).

Det er under alle omstændigheder ikke noget der rokker ved min kodestil...

Men tak for uddybningen :)
Avatar billede olebole Juniormester
14. april 2010 - 15:09 #14
Anytime  ;o)
Avatar billede majbom Novice
04. november 2010 - 13:34 #15
lukketid?
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester