variabelen uitlijnen?
Pagina: « vorige 1 2 3 volgende »
Quote:
hehe... daar kan ik je niet echt bij helpen vrees ik :)
rustig aan... en genoeg water drinken ;-)
rustig aan... en genoeg water drinken ;-)
Tijd om het onder de knie te krijgen misschien? Tja dat blijf ik natuurlijk vooral doen.
Kijk, ik doe het werk hier graag en probeer elk topic te lezen en waar het moet in te grijpen. (Mits er geen andere mods op dat moment aanwezig zijn, ik blijf wel library mod natuurlijk ;p)
Maar daarnaast heeft deze job (zo noem ik het maar even) niet de eerste prio. Ik heb op dit moment twee bedrijven waar (haast) al mijn energie naar toe gaat. Daarnaast doe ik nog een opleiding en probeer ik zoveel mogelijk aan mijn tafeltennis skillz te werken / trainen.
Er zitten helaas maar 24 uur in een dag ;-)
Niels
Tja, dan heb je het inderdaad erg druk! Heb je zelf 2 bedrijven?
Zelf programmeer ik altijd in de eerste stijl, deels door luiheid en deels door gewoonte.
Stel nu dat je een derde variable aanmaakt waarvan de naam iets langer is dan de rest, dan moet je weer spaces bijzetten bij die andere variables, daarom doe ik het dus ook niet.
en dan denk je, hé... ik kan die lange variabele beter even verplaatsen! En dan zie je een week later in je code ineens dit staan:
Da's ook wel een beetje raar! ;-)
Ik denk wel dat er plugins bestaan als je een goede IDE of teksteditor gebruikt die dat doen voor jouw. Ik dacht aan Sublime Text en bijvoorbeeld Eclipse.
Quote:
Tja, dan heb je het inderdaad erg druk! Heb je zelf 2 bedrijven?
Klopt! Ja ook dat klopt. Naast dat ik 40 uur voor een baas werk, werk ik in de avond uren nog aan mijn 2 bedrijven.
Ik vind beheerdertje spelen heel erg leuk, maar het bovenstaande heeft wel prio ;-)
Code (php)
Ik zou echter ook dit kunnen doen:
Code (php)
Ik gebruik dus voorbeeld 1. Wat vinden jullie handiger / mooier / duidelijker?
Jouw functie kun je gebruiken als:
$variable = Get( 'Sleutel' );
Ik had het mooier gevonden als je dit had kunnen schrijven:
$variable = $mySession->project_data->sleutel;
Als een gebruiker (of jezelf de dag na een avond zwaar stappen) de code leest zal hij in het eerste geval geen idee hebben waar het over gaat, en in het tweede geval het meteen snappen.
my 2 cents ..
Wat bedoel je met encapsulation?
Ik snap dat jouw voorbeeld ook een goede keuze is, maar daar gaat mijn vraag niet over. Mijn vraag is welke van de 2 functies prettiger is om te lezen, makkelijker om te begrijpen. Welke van die 2 voorbeelden heeft je voorkeur? En waarom?
Je pakt als het ware een oplossing van een probleem (in jouw geval het ophalen van een var uit de sessie) in een functie. Dat "inpakken" heet "encapsulation".
De functie stop je in een apart bestand, en je kijkt er niet meer naar om, je gebruikt de functie alleen maar.
Je kunt ook wisselen van voorbeeld 1 naar 2 en vice versa, zonder dat de rest van je programma er last van heeft. Het is een interne aangelegenheid.
Uiteindelijk is het niet belangrijk of je voor 1 of 2 gaat, belangrijk is hoe je de functie later gaat gebruiken, en hoe duidelijk dat dan is.
Dan praktisch: ik zou voor 1 gaan.
Oké, thanks voor je toelichting.
Voorbeeld 1 is korter, sneller, effectiever.
Eddy, waaom vind je voorbeeld 2 duidelijker? Klopt dat de return onderaan staat. Dat vind ik wel mooi, dat je maar 1 return hebt. Alleen kun je niet direct zien WAT er gereturned wordt, terwijl je dat in voorbeeld 1 wel kunt zien. Snap je wat ik bedoel?
In de Symfony documentation zorg ik ervoor dat we zo consistent mogelijke code hebben die het best leesbaar is voor de lezers. Dat doe ik onder anderen door bij elke code de Symfony coding standards toe te passen. Op de pagina zie je bijna een overkoepelend voorbeeld van de standards.
Zover de PHP coding standards. Het indenten van variabelen doe ik niet in PHP.
Qua JS hou ik me ook ong. de PHP coding standards aan. Alleen het uitlijnen van variabelen doe ik wel. Bijv:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
2
3
4
5
6
7
8
9
10
11
12
13
14
15
var foo = 'hello world',
foobar = 12
hello = ['a', 'b', 'c'];
// wordt
var foo = 'hello world',
foobar = 12,
hello = ['a', 'b', 'c'];
// of met hashtables:
var User = Base.extend({
id : 0,
name : '',
age : 0,
pass : '',
});
foobar = 12
hello = ['a', 'b', 'c'];
// wordt
var foo = 'hello world',
foobar = 12,
hello = ['a', 'b', 'c'];
// of met hashtables:
var User = Base.extend({
id : 0,
name : '',
age : 0,
pass : '',
});
In CSS gebruik ik idiomatic.css als richtlijn, ik hou me er niet volledig aan. Het uitlijnen van properties/values doe ik hier niet, behalve als ik overga op one line scripting, voor kleine blokken:
Code (php)
1
2
3
2
3
.alignright { float: right; }
.alignleft { float: left; }
.aligncenter { margin: 0 auto; }
.alignleft { float: left; }
.aligncenter { margin: 0 auto; }
Offtopic:
Het uitlijnen van dingen kun je in Vim heel makkelijk doen met Tabular.vim, een mooie plugin.
Voor Sublime Text 2 (aangezien dat de editor is waar iedereen verliefd op schrijnt te zijn) is er Sublime Alignment
Toevoeging op 31/08/2012 10:18:28:
p.s. wat is hier zo bijzonder aan? ziet er een beetje vaag uit?http://www.sublimetext.com/
Zend te volgen.
m.b.t. de if met 1 regel wijken we daarvan af, in die zin dat we de regel waar de sluithaak staat wit laten, en dan dus ook geen openeningshaak gebruiken. We vonden witruimte duidelijker dan de haak.
Maar ik geef meteen toe: het is subjectief en persoonlijk.
@wouter: We hebben daar lang over gesoebat wat we zouden doen :) Uiteindelijk hebben we ervoor gekozen om m.b.t. de if met 1 regel wijken we daarvan af, in die zin dat we de regel waar de sluithaak staat wit laten, en dan dus ook geen openeningshaak gebruiken. We vonden witruimte duidelijker dan de haak.
Maar ik geef meteen toe: het is subjectief en persoonlijk.
de eerste 2 voorbeelden. De 2e zou misschien iets duidelijker zijn, aangezien je mooi alles in kolommen hebt. Je kan je daardoor iets beter concentreren op elke column of regel apart. Je zou ook sneller kunnen zien welke values het allemaal heeft.
Maar aan de andere kant zou ik het niet doen, kost teveel tijd vind ik en met een beetje meer concentratie heb je hetzelfde effect.
Voorbeelden nr 2. 1e voorbeeld is duidelijker. Je hebt dan een goed overzicht van welke value het heeft als de conditie true is en welke value het anders heeft.
Voorbeeld 3, helemaal mee eens.
Voorbeelden 4. De eerste. Je hebt kunt dan meteen zien wat er geretourneerd wordt. Bij voorbeeld 2 moet je eerst lezen welke waarde $value heeft en daarna wat er met die waarde gebeurd.
Je zou het ook allemaal heel simpel kunnen uittekenen hoe je ogen zich verplaatsen, je kunt dan erg snel zien of iets efficiënt is of niet:
Dit is jou laatste voorbeeldje. Je ziet dat je in voorbeeld 1 als de conditie true (rood) of false (oranje) is in beide gevallen maar 3 keer met je oog naar een positie moet bewegen.
In voorbeeld 2 is dit voor een true conditie 7 stappen en voor een false 5.
Offtopic:
Wat er zo bijzonder aan is weet ik niet, alleen het is helemaal in om sublime text 2 te gebruiken, maar ik gebruik hem niet...
Oké, Maar aan de andere kant zou ik het niet doen, kost teveel tijd vind ik en met een beetje meer concentratie heb je hetzelfde effect.
Voorbeelden nr 2. 1e voorbeeld is duidelijker. Je hebt dan een goed overzicht van welke value het heeft als de conditie true is en welke value het anders heeft.
Voorbeeld 3, helemaal mee eens.
Voorbeelden 4. De eerste. Je hebt kunt dan meteen zien wat er geretourneerd wordt. Bij voorbeeld 2 moet je eerst lezen welke waarde $value heeft en daarna wat er met die waarde gebeurd.
Je zou het ook allemaal heel simpel kunnen uittekenen hoe je ogen zich verplaatsen, je kunt dan erg snel zien of iets efficiënt is of niet:
Dit is jou laatste voorbeeldje. Je ziet dat je in voorbeeld 1 als de conditie true (rood) of false (oranje) is in beide gevallen maar 3 keer met je oog naar een positie moet bewegen.
In voorbeeld 2 is dit voor een true conditie 7 stappen en voor een false 5.
Offtopic:
Wat er zo bijzonder aan is weet ik niet, alleen het is helemaal in om sublime text 2 te gebruiken, maar ik gebruik hem niet...
Wat betreft voorbeelden nr. 2... da's grappig. Zo deed ik het ook altijd (als het 1e voorbeeld)... maar manier 2 is toch ook wel fijn. Hangt een beetje van de situatie af denk ik. Als de value in 90% van de gevallen dezelfde waarde heeft, dan is dit zinvol:
Code (php)
1
2
3
4
5
6
2
3
4
5
6
<?php
$value = 'iets'
if ('er_gebeurt_iets_onverwachts') {
$value = 'andere waarde';
}
?>
$value = 'iets'
if ('er_gebeurt_iets_onverwachts') {
$value = 'andere waarde';
}
?>
Maar als je het niet weet, dan is een if/else beter denk ik. In voorbeeld 1 declareer je mogelijk onnodig een variabele met de verkeerde waarde die je vervolgens dan weer gaat overschrijven. Tja, wat is wijsheid.
Gewijzigd op 31/08/2012 10:56:15 door Ozzie PHP