DevProTalk

DevProTalk (http://www.devprotalk.com/index.php)
-   PHP (http://www.devprotalk.com/forumdisplay.php?f=9)
-   -   Skraćenice i optimizacija (http://www.devprotalk.com/showthread.php?t=334)

nixa 06. 11. 2005. 05:24

Skraćenice i optimizacija
 
Nešto gledam i pitam se ko od vas sve koristi skraćenice zarad brzine a ko zarad optimizacije aplikacije

recimo ovo

PHP kôd:

<?=$var;?>

// umesto ovog 

<? echo $var?>

ili mozda ovako nesto

PHP kôd:

if ( isset( $nesto ) )
{
   
$var 'da';
}
else
{
  
$var 'ne';
}

//  ili  

$var = isset( $nesto) ? 'da' 'ne' 

ajde sad vi nesto ?

dinke 06. 11. 2005. 10:50

Što se tiče prvog primera, ne koristim ni jedan ni drugi. :)

Već ovako:
PHP kôd:

<?php echo $var?>

Slučaj koji si ti naveo radi samo ako je --enable-short-tags setovan na On.

Što se tiče drugog primera, uvek težim da koristim if-else petlju pre nego tzv "ternarni operator", pre svega zato što smatram da je onda kod čitljiviji.

Petar Marić 06. 11. 2005. 11:07

Prvu nikad ne koristim jer onda imam problema sa XML-om (<? je rezervisano za XML proccessing instrukcije). S obzirom da (gotovo uvek) šaljem XHTML 1.1, ne koristim istu.
Takođe, ne vidim kako si ubrzao ili optimizovao aplikaciju ako si izostavio 3 karaktera? Jedino ako misliš na nekog programera kome je mrsko otkucati dodatni "php" nakon "<?".
Naravno mogli bismo da počnemo o malom teoretskom ubrzanju koje se javlja kao posledica parsiranja manje datoteke, ali ajde da ne zalazimo tamo, važi?

Druga ti je standardni C-ovski ternarni operator ;) Postoje vremena kad ga treba koristiti, postoje vremena kad ne treba - obično se treba čuvati tzv "bočnih efekata" (side efects).

bluesman 06. 11. 2005. 17:46

Koliko znam, svi iole ozbiljni editori imaju code-completition pa kada ukucas <? odmah ti dodaje <?php i ?>. Bar je tako u homesite (doduse to sam ja namestio :)).

Ne, nikada na koristim shorthand tagove ni <? ni <?= ni slicno.

Ilija Studen 06. 11. 2005. 18:33

Mnogo koristim i prvi i drugi način skraćivanja. Prvi način skraćivanja koristim samo u templateima (u ostalim fajlovima koristim klasični <?php ... ?>), a drugi koristim gde god mogu i gde je to razumno (meni deluje čitkije).

Kôd:

ini_set('short_open_tag', 1);
Rešava stvar ako je su skraćeni tagovi isključeni na serveru. Ko je ikada rekao da si osuđen na ono što server admin misli da dobro i što je podesio? ;)

Što se tiče XML i XHTML dokumenta jednostavno rešenje:

Kôd:

<?= '<?xml version="1.0" encoding="UTF-8"?>' . "\n" ?>
Sa XMLom i XHTMLom radim uvek i u ovome nikad nisam video problem. Ne znam zašto bi ti to smetalo? Ako uhvatiš sebe da to previše puta kucaš / kopiraš promeni način rada jer to što radiš ne valja :p

Ne volim mnogo koda. Deluje mi zabacano... Zato ću se najverovatnije u neko dogledno vreme (kad me puste trenutne obaveze) i prebaciti na Ruby. Sa 5 puta manje koda postižeš 5 puta više. Prilično dobra ponuda ;)

nixa 06. 11. 2005. 18:52

A sta se desava kad imas microtime proveru izvresnja skripte

PHP kôd:

<?
for ($i=0$i 1000000$i++)
{
  echo(
'i='.$i.'<br/>');
}
?>

// vs 

<?
for ($i=0$i 1000000$i++)
{
?>
   i=<?=$i;?><br>
<?
}
?>


Petar Marić 11. 11. 2005. 23:29

nixa, za početak pogledaj ovaj unos.
Po mom skromnom mišljenju micro-benchmarci nemaju puno smisla. Vremenski najskuplje stvari u web programiranju su IIRC upiti ka bazi, fajl sistemu i mrežnim resursima (ne obavezno tim redosledom).

Najveće greške u optimizaciji (posle premature optimisation) nastaju kada neko odokativno počne da profiliše kod. Učili su me da je empirijski pokazano da se 5% koda izvršava 95% vremena. Tome služe profiling alati:
1. pomognu ti da nađeš uska grla,
2. pokažu ti realan dobitak u perfomansama nakon uklanjanja istih.

Što se tiče primera koje si dao, na stranu što nije realan, pre bih izabrao prvi: čitljiviji je, ako ništa drugo.

Ilija Studen 19. 03. 2006. 02:33

short_open_tag je po defaultu Off u 5.1.2... Debilno!

bluesman 19. 03. 2006. 02:39

Pa tako i treba da bude, you lazy ... :)

Ilija Studen 19. 03. 2006. 03:46

Ono što meni ne ide u glavu je ZAŠTO tako mora da bude? Fino je što postoji opcija da se takvo ponašanje uključi / isključi ali zašto mora biti off po defaultu? Ja ne vidim razlog za to.

PS: Kratko otvaranje tagova koristim samo za brz echo. Umesto <?php echo $variable ?> kucam <?= $variable ?>. Za otvaranje i zatvaranje fajlova, blokova PHP koda itd koristim klasičan <?php ... ?>


Vreme je GMT +2. Trenutno vreme je 16:46.

Powered by vBulletin® Verzija 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Copyright © DevProTalk. All Rights Reserved.

Mišljenja, saveti, izjave, ponude ili druge informacije ili sadržaji nastali na Sajtu su vlasništvo onoga ko ih je kreirao, a ne DevProTalk.com, tako da ne morate da se oslanjate na njih.
Autori poruka su jedini odgovorni za ovakve sadržaje. DevProTalk.com ne garantuje tačnost, kompletnost ili upotrebnu vrednost informacija, stavova, saveta ili datih izjava. Ne postoje uslovi pod kojima bi mi bili odgovorni za štetu ili gubitak koji je posledica bilo čijeg oslanjanja na nepouzdane informacije, ili bilo kakve informacije nastale kroz komunikaciju između registrovanih članova.
Web sajt može sadržavati linkove na druge web sajtove na Internetu ili neke druge sadržaje. Ne kontrolišemo niti podržavamo te druge web sajtove, niti smo pregledali bilo kakve sadržaje na takvim sajtovima. Mi nećemo biti odgovorni za legalnost, tačnost ili prikladnost bilo kog sadržaja, oglasa, proizvoda, usluga ili informacije lociranim na ili distribuiranih kroz druge web sajtove, niti za bilo kakvu štetu nastalu kao posledica takvih informacija. DevProTalk.com drži i čuva druga prava vlasništva na web sajtu. Web sajt sadrže materijale zaštićene copyright-om, zaštitne znakove i druge informacije o pravu vlasništva ili softver. Članovi mogu poslatu informacije zaštićene pravima vlasništva njihovih nosilaca i ona ostaju zaštićena bez obzira da li su oni koji prenose te informacije to naveli ili ne. Osim informacija koje su u javnom vlasništvu ili za koje dobijete dozvolu, nemate pravo da kopirate, modifikujete ili na bilo koji način menjate, objavljujete, prenosite, distribuirate, izvršavate, prikazujete ili prodajte bilo koju informaciju zaštićenu pravima vlasništva. Slanjem informacija ili sadržaja na bilo koji deo DevProTalk.com, Vi automatski dozvoljavate i predstavljate garanciju da imate pravo da dozvolite DevProTalk.com ili članovima DevProTalk.com bespovratnu, kontinualnu, neograničenu, globalnu dozvolu da koriste, kopiraju, izvršavaju, prikazuju i distribuiraju takve informacije i sadržaje i da iz takvih sadžaja koriste bilo koji deo u bilo koje svrhe, kao i pravo i dozvolu da koriste gore navedene sadržaje. Svi zaštitni znakovi (trademarks), logotipi, oznake usluga, firme ili imena proizvoda koji se pominju na ovom web sajtu su vlasništvo kojim raspolažu njihovi vlasnici.