Koda saīsināšana
Ievietoja koko Ceturtdien, 2008.gada 10. aprīlī, 17:57:43
Es jau diezgan ilgi programmēju (kodēju jau noteikti jāsaka) PHP programmēšanas valodā, kuru noteikti visi zina un visi māk - sintakse salikta kopā no kaut kādiem perliem, c, un vēlnezkautkā utt... Lab, lab - vēsturi zinu, bet nav par to.
Programmēšanas procesu vienmēr girbēs nedaudz saīsināt ne tikai nekomentējot kodu, bet arī maksimāli saīsinot, kas nav pareizākais variants, jo parseris vienalga to kodu interpretē sākumā pa savam, bet koda lasāmība tikai pasliktinās, toties man tāda kaite ir un tur es neko nepadarīšu. Tāpēc padalīšos ar 2 lietām, kas varbūt jauniņajiem nav zināmas.
1) if, esle, esleif saīsināšana. if ($nigga==='white') {Pirmais saīsināšanas veids ir tāds: ja if vai elseif, vai else blokos ir tikai viena darbība, tad figūriekavas "{", "}" bloku atvēršanai un azivēršanai nav nepieciešamas:
echo 'that is not nigga!';
} elseif ($nigga==='yellow') {
echo 'That is indian';
} else {
echo 'It is nigga!';}if ($nigga==='white') Un tagad mans mīļākais pieraksts:
echo 'that is not nigga!';
elseif ($nigga==='yellow')
echo 'That is indian';
else
echo 'It is nigga!';echo $nigga==='white' ? 'that is not nigga!' : ($nigga==='yellow' ? 'That is indian' : 'It is nigga!');
2) Jūsu priekam piedāvāju arī kaut ko tādu, ko atklāju tikai šodien: $j = 1;Var mierīgi saīsināt uz:
for ($i = 0; $i<=10; $i += $j) {
$j++;
print $j;
}for ($i = 0, $j = 1; $i <= 10; $i +=$j, print ++$j);Par ++ operatora pirmsinkrementēšanos un pēcinkrementēšanos es jau sen zināju, bet par for cikla saīsināšanu nebiju nojautis. Tā ir, ka tādām itkā pašsaprotamām struktūrām specifikāciju nekad neviens nelasa :D
Ceru, ka jūs saīsinājumus nelietosiet un rakstīsiet ļoti labu dokumentāciju.
Pievienot komentāru
1. komentēja mobix, vietne
10.04.2008 @ 20:04:37
Hehe, par to for saīsināšanu nebiju ieskatījies :D
Bet vispār man nav tāda slimība kā Tev :P
2. komentēja Anonīms
10.04.2008 @ 20:05:36
Dīvaini, ka tu to sauc par "saīsināšanu".
Parasti jau vairums coding-gaidlainos ir teikts, ka nedrīkst izlaist figūriekavas if/for/while konstrukcijām arī ja pat tajos ir tikai viena rindiņa. Jo vēlāk kāds aizmirsīs tās pielikt, bet pierakstīts otro rindiņu, tādējādi radot bugu.
2) punktā $j=1 un $j++ ienešana tā for iekavās ir ļoti normāla padarīšana. C valodā tā bieži vien raksta.
Protams gan to print konstrukciju likt iekš iekavām gan ir slimīgi.
3. komentēja iivs, vietne
10.04.2008 @ 23:19:35
tas peedeejais man patika, nebiju iedomaajies for ciklaa iekavaas iebaazt print. Anonīms, nav taisniiba, ka nedriixt. Driixt visu ko. Tik un taa, ja viena rindinja, tad iekavas ir labaak likt, un turklaat oficiaali pareizi skaitas iekavu likt apaxhaa nevis blakaam.
4. komentēja extropy
11.04.2008 @ 11:54:12
Nu es negribu būt tas kuram šādā saīsinātā kodā pēc tam būtu jāmeklē kļūdas.
Bet nu katrs pats savas bedres racējs.
5. komentēja KAC, vietne
11.04.2008 @ 12:39:34
Tavu pēdējo prieku var nosīsināt uz
for ($i = 2; $i <= 6; $i++) print $i;
kas ir uzskatāmāks
6. komentēja Mārcis Balodis, vietne
12.04.2008 @ 11:47:08
Nu par otro punktu - neesi kārtīgi lasījis manuāli, ja tikai tagad atklāj :)
Es atkal noskatījos no wordpress dzinēja un pārgāju uz:
if (bla = 1):
else :
endif;
7. komentēja koko, vietne
12.04.2008 @ 21:48:08
Man jau tas ar endif galā kaut kā nepatīk, jo lielākā daļa php kodē standartvariantā un, ja parādās vairākas notācijas, tad paliek nelasāmi.
Vēl man visiem jāatgādina viena rinda no mana teksta: "bet koda lasāmība tikai pasliktinās". Laikam bija jāieliek tas viss boldā :)
8. komentēja Roberts
13.04.2008 @ 23:07:55
Labrīt :) principā var jau tā saīsināt, bet diezgan nederīgi tas ir (vismaz tavā piemērā).
Izmantojot for ciklu var diezgan eleganti iterēt pār kolekciju (gan jau ka pē-hā-pē tādas ir :))
for (Iterator iter = myList.iterator(); iter.hasNext();) { System.out.println(iter.next());
}
9. komentēja koko, vietne
14.04.2008 @ 13:01:58
Mēs runājam dažādās valodās :D Es runāju PHP, bet, kā izskatās, tad Tu runā Javā :D
10. komentēja Roberts
14.04.2008 @ 15:16:52
apķērīgs gan tu esi :D