En artikel som ganska många borde läsa

Permalänk
Hedersmedlem

En artikel som ganska många borde läsa

Jag har suttit och tänkt på hur ofta man ser väldigt rörig kod här på forumet. Därmed tycker jag att de flesta borde läsa denna artikel:
http://www.phpportalen.net/article.php?id=11

Det blir mycket lättare att läsa koden om man skriver med mellanslag i koden mm istället för att skriva allt i en klump om man säger.

Kanske något värt att tänka på?

Visa signatur

Vim
Kinesis Classic Contoured (svart), Svorak (A5)
Medlem i signaturgruppen Vimzealoter.

Permalänk

Phpportalen verkar vara nere för tillfället. Men jag tror jag har läst den där innan. En bra ide att tabba eller göra mellanslag. Dock orkar man inte alltid göra det med kod man skriver typ direkt i svarsrutan eller nåt

Visa signatur

Så du söker den perfekta sidan om webbradio? Surfa då vidare till
http://www.radioworld.se
där finns allt du behöver veta om hur du drar upp en ström!

Permalänk
Hedersmedlem

Nja, bara att göra mellanslag, det gör jag alltid.
Sen så bör man använda [code][./code] samt [php][./php], det är jäkligt jobbigt att läsa koden som vanlig text om man säger...

EDIT: PHPportalen fungerar för mig iaf...

Visa signatur

Vim
Kinesis Classic Contoured (svart), Svorak (A5)
Medlem i signaturgruppen Vimzealoter.

Permalänk
Medlem

Jag tycker att det ser riktigt illa ut med mellanslag inom t.ex. paranteser.

"Function ( a, b )" ser förjävligt ut, tycker jag. Mellanslag överhuvudtaget förstör det estetiska i koden, och blir för mig mer svårläst, men jag antar att det är en vanesak.

Visa signatur
Permalänk
Hedersmedlem

s.c.s.i.: Vilket ser mer lättläst ut?

<?php for ($i = 0; $i < 10; $i++) { if ($i == 3) { echo 'Hejsan!'; } } eller for($i=0;$i<10;$i++){ if($i==3){ echo'Hejsan'; } }

?

EDIT: Men det exempel som du tog håller jag med om. Jag gillar inte typ

function( $a ){ echo $a; } eller liknande. function ($a) { echo $a; }

i så fall...

Visa signatur

Vim
Kinesis Classic Contoured (svart), Svorak (A5)
Medlem i signaturgruppen Vimzealoter.

Permalänk

själv kör jag

function cool_function ($argument = "first argument", $second = 'test') { //Execute }

edit: ändrat, nöjd nu m0REc?

Permalänk
Hedersmedlem

vigge89: Varför? Ganska onödigt att slänga in variablerna i en string på första argumentet...

EDIT: Svar till vigge89s inlägg nedan:
Jo jo, men ändå

Visa signatur

Vim
Kinesis Classic Contoured (svart), Svorak (A5)
Medlem i signaturgruppen Vimzealoter.

Permalänk
Citat:

Ursprungligen inskrivet av m0REc
vigge89: Varför? Ganska onödigt att slänga in variablerna i en string på första argumentet...

hah, ett exempel ju

Permalänk

Jag använder inte mellanslag i t.ex. en funktionsdeklaration, eller ett funktionsanrop, men väl i en if-sats eller liknande. Det tycker jag är tydligt.

Permalänk

Mellanslag mellan parentes och variabelnamn i funktioner, for-loopar och dylikt är väldigt irriterande tycker jag i alla programmeringsspråk:

Nej:

for( int i ; i < n ; i++ )

Jo:

for(int i; i < n; i++)

Visa signatur

"Mies saa kaatua mutta ei karata." -- Adolf Ehrnrooth IR 7, Äyräpää 1944.

Permalänk

Indentering är bra. Fast å andra sidan använder väl de flesta det i viss mån..

Permalänk
Medlem
Citat:

Ursprungligen inskrivet av Turbo_tail
Mellanslag mellan parentes och variabelnamn i funktioner, for-loopar och dylikt är väldigt irriterande tycker jag i alla programmeringsspråk:

Nej:

for( int i ; i < n ; i++ )

Jo:

for(int i; i < n; i++)

Mm, men jag brukar alltid göra ett mellanrum från "kommandot", i detta fall for.

for (int i; i < n; i++)

Går snabbare att se vad som är vad.

Men men, för mycket mellanslag gör koden svårläslig, som t ex mellanslag mellan parantesen och det i den. Nästan värre än särskrivningar.

Permalänk
Medlem

Så länge det bara är för en själv diffar väl det ganska hårt hur man skriver. Jag menar, man lär sig läsa sin egen kod.
Men ska man lämna ifrån sig kod eller läser mycket annan kod så är det alltid skönt när det finns en viss struktur.

Visa signatur

Visionär bakom Sveriges största publika spelsatsning. Säger jag mer så blir jag förmodligen bannad igen.

Ställ krav! Involvera er! Tänk utanför sandlådan.

Permalänk
Medlem
Citat:

Ursprungligen inskrivet av m0REc
s.c.s.i.: Vilket ser mer lättläst ut?

Altså, space mellan parametrar är helt ok, men inte mellan funktionsnamnet och parantesen, samt parantesen och första parametern.

Visa signatur
Permalänk
Citat:

Ursprungligen inskrivet av Don_Tomaso
Mm, men jag brukar alltid göra ett mellanrum från "kommandot", i detta fall for.

for (int i; i < n; i++)

Går snabbare att se vad som är vad.

Så gör jag med

Permalänk
Hedersmedlem

Samma som Don_Tomaso här

Visa signatur

Vim
Kinesis Classic Contoured (svart), Svorak (A5)
Medlem i signaturgruppen Vimzealoter.

Permalänk
Medlem

Själv brukar jag skriva ihop koden så mycket som det bara går.. man får en bättre överblick över hela koden, och jag anser inte att den blir svårare att läsa dagen efter eller månaden eller året.. stör mig snarare på alla som ska missbruka mellanslag och nya rader..

Visa signatur

~ When there's no more room in hell, the dead will walk the earth. ~

Permalänk
Medlem

Inga mellanslag efter paranteser nej - möjligen om en parantes följs av flera andra paranteser, för att skilja dem åt. Men annars gott om mellanslag och indentering. Viktigast är att stapla upp returtyp, funktionsnamn och argument i enskilda kolumner när man har många deklarationer efter varandra.

Funktioner skrives function(). return, for & co är inte funktioner så de ska inte sitta ihopklibbade med paranteser.

Visa signatur

:€

Permalänk
Medlem

Jag tycker inte att man ska 'särskriva' operationer, så som a+b. Det ska inte finnas någon mellanrum mellan variablarna och +-tecknet. Samma med jämförelser. Jag tycker att man ska skriva a>b och inte a > b.

func('string', a+b, c) tycker jag ser bra ut.

Visa signatur
Permalänk

Jag håller fullständigt med artikeln när det gäller indentering. Men inte riktigt när det gäller mellanslagen, när det blir för mycket mellanslag tycker jag att de motverkar sitt syfte och koden blir svårare att läsa.

Själv brukar jag köra med något liknande detta:

function foo($bar) { foo = 'foo'; if($bar=='bar' || $foo!='foo') { echo('Bla'); } }

Visa signatur

"to conquer others is to have power, to conquer yourself is to know the way"

Permalänk
Medlem

Detta:

//php-taggarna gör ej indentering på första raden $var = 4; echo 'Exempel #1'; if ( $var == 4 ) { for( $x = 0; $x < $var; $x++ ) { echo ( $x . '<br />' ); } echo 'Slut på exemplet!';

Tycker jag ska vara såhär:

//php-taggarna gör ej indentering på första raden $var = 4; echo 'Exempel #1'; if($var == 4) for($x = 0; $x < $var; $x++) echo ($x . '<br />'); echo 'Slut på exemplet!';

Ochh detta:

//php-taggarna gör ej indentering på första raden $var=isset($_GET['var'])?$_GET['var']:0; if ($var==5) { $var=1; } echo($var+2);

Såhär:

//php-taggarna gör ej indentering på första raden $var = isset($_GET['var']) ? $_GET['var'] : 0; if($var == 5) $var = 1; echo($var +2); //Eller echo($var + 2); , jag är ej konsekvent i det

Framför allt så ogillar jag deras fula sätt att skriva klamrar, alltså såhär:

func bleh(blah) { blah; blah; }

Såhär ska det vara:

func bleh(blah) { blah; blah; }

Visa signatur

I just love the fact that there is a global integer variable named 'i'. Just think, you will never need to declare your loop variable again!
To avoid collisions where a loop that uses 'i' calls another function that loops with 'i', be sure to stack 'i' and restore it when your function exits.

Permalänk
Citat:

Ursprungligen inskrivet av Myris

Framför allt så ogillar jag deras fula sätt att skriva klamrar, alltså såhär:

func bleh(blah) { blah; blah; }

Såhär ska det vara:

func bleh(blah) { blah; blah; }

Övre sättet är Java/C++ style, nedre är C style. Att koda Java-program enligt det nedre sättet bestraffas med kölhalning...

Visa signatur

"Mies saa kaatua mutta ei karata." -- Adolf Ehrnrooth IR 7, Äyräpää 1944.

Permalänk
Medlem
Citat:

Ursprungligen inskrivet av Myris

Såhär ska det vara:

func bleh(blah) { blah; blah; }

Jag föredrar att skriva så här:

func bleh(blah) { blah; blah; if (a==b) { blah; } }

Men ovanstående ser faktiskt bättre ut i pascal, så din metod är nog bättre för c/c++.

func bleh(blah) begin blah; blah; if (a=b) then begin blah; end; end;

Visa signatur
Permalänk
Medlem

gör ett enkelt test på "extrem" kodning (vet inte vad det skall kallas)

ex:

<html>
<head>
<title></title>
</head>
<body>
<p>
<b>fet text</b>
</p>
<?
//lite kod
?>
<p>
</p>
</body>
</html>

summa = 125 bytes

ex2: samma kod som ovan men "extrem" kod

<html><head><title></title></head><body><p><b>fet text</b></p><? //lite kod?><p></p></body></html>

(all text på EN rad)

summa = 98 bytes

denna from av "extrem" kodning ger alltså mindre filer som skall köras på servern

i detta fallet skiljer det bara 27 bytes men om man sedan stora sidor (ex denna sidan du läser nu på swec) så skulle det spara in flera kbytes

allt detta leder till en snabbare respons från servern till fördel för besökaren som inte behöver vänta lika länge
(ni kommer väl ihåg när swec var som mest belastat och man fick börja rensa db-anrop mm)

jag har bara använt denna typ av kodning 1 gång och det är svårt att se något resultat som besökare (kan inte testa det själv) men jag inbillar mig att det gick fortare att wappa på den "extremkodade" varianten jämfört med en konventionell indentering och radbrytningar

en räknare kan iofs läggas till och se hur lång tid det tar att köra sidan

Kan det vara värt allt besväret ?

nja...knappast på en liten sida med lite besökare, möjligtvis på koden som skickas till besökaren om denna har en långsam uppkoppling (wap) och betalar för varje kb som laddas ner - annars blir det bara svårläst så in i bänken

Visa signatur

Har varit på detta forum på tok för länge...

Permalänk
Medlem

function foo($bar){ foo = 'foo'; if($bar=='bar' || $foo!='foo'){ echo('Blaha'); } }

Så skriver jag.

Visa signatur

All glory to the Hypno-toad.

Permalänk

UndCon: Första exemplet blir 112bytes med UNIX-radbrytningar Det är bättre att använda LF istället för CRLF för radbrytningar än att inte ha några alls IMO

Visa signatur

"to conquer others is to have power, to conquer yourself is to know the way"

Permalänk
Medlem

Tabb-knappen är min vän när jag kodar.

Permalänk
Medlem

Den här brukar jag läsa nån gång varannan månad.
http://pear.php.net/manual/en/standards.php

Visa signatur

Brass knuckles and a 2x4

Permalänk
Medlem
Citat:

Ursprungligen inskrivet av dr slizer
UndCon: Första exemplet blir 112bytes med UNIX-radbrytningar Det är bättre att använda LF istället för CRLF för radbrytningar än att inte ha några alls IMO

visst är det så

Visa signatur

Har varit på detta forum på tok för länge...

Permalänk
Medlem
Citat:

Ursprungligen inskrivet av Turbo_tail
Övre sättet är Java/C++ style, nedre är C style. Att koda Java-program enligt det nedre sättet bestraffas med kölhalning...

C++ style? Jag har då aldrig sett det i något riktigt C++ program, kanske om man har typ funktioner på 1 rad eller ngt, men absolut inte på större grejjer, det gör det mycket mycket svårare att se var klammrar börjar och slutar.
Jag kör det även i både CSS och Javascript (programmerar inte i Java, men jag skulle göra det där också) där det verkar vara någon sorts standard att köra med den dåliga varianten..

Citat:

Ursprungligen inskrivet av s.c.s.i.

Jag föredrar att skriva så här:

func bleh(blah) { blah; blah; if (a==b) { blah; } }

Men ovanstående ser faktiskt bättre ut i pascal, så din metod är nog bättre för c/c++.

func bleh(blah) begin blah; blah; if (a=b) then begin blah; end; end;

Det ser bra ut i Pascal (eller, ja, så bra man kan få Pascal att se ut ) men i C++ blir det hur jobbigt och konstigt som helst (emacs i skolan har det på som default, och jag orkhar aldrig byta)

Visa signatur

I just love the fact that there is a global integer variable named 'i'. Just think, you will never need to declare your loop variable again!
To avoid collisions where a loop that uses 'i' calls another function that loops with 'i', be sure to stack 'i' and restore it when your function exits.