Tämä saattaa olla hiukan typerä kysymys, mutta olen itse tottunut tekemään mahdollisimman selkeää koodia, esimerkkinä seuraava:
$haku = strpos( $str, strtolower( $hakusana ) );
Voinko huoletta merkata koodia noin, vai aiheuttavatko ylimääräiset välilyönnit
jotain ongelmia? Haluaisin vaan varmistaa asian. :)
Eivät aiheuta.
Kirjoitan itsekin koodini tuolla tyylillä, eikä se ole vielä millään tavalla haitannut ;)
Yleensä sillä ei ole väliä, mutta on joitakin pikkusia kieliä, joissa väleillä on väliä. Viimeks mihin törmäsin, oli kun tein Linuxin puolella pikkusen komentoscriptin, siinä ei muistaakseni saanut muuttujan määrittelyssä olla väliä =-merkkiä ennen tai sen jälkeen.
PHP:ssä voit vapaasti tunkea vaikka miljoona välilyöntiä ja tabia sinne ;p. Toi ny on mielestäni viel ihan OK, mutta oon törmänny sellaseen koodiin jos tungetaan jotain tabeja tonne joka väliin, joka ei kyl mielestäni ainakaan paranna luettavuutta.
Itse olen huomannut, että kun koodaan (=joudun koodaamaan) perus-notepadilla, niin tulee laitettua välejä enemmän. Kunnon syntaksivärityksellä varustetulla editorilla koodi pysyy luettavana, vaikka se olisi tiiviimpääkin.
Minulla myös jokseenkin samanlainen tyyli kirjoittaa, kuin tuossa, mutten laita noin paljon välejä:
<?php $haku = strpos($str, strtolower($hakusana));?>
Omasta mielestäni liiat välit hidastaa ja haittaa lukemista, mutta ratkaisevissa kohdissa välit parantavat sitä. Funktiokutsun, tai -määrittelyssä ei nimen jälkeen minulla tule väliä. Eri asia on blokit:
if (<expr>) { // ... } else if (<expr2>) { // ... } else { // ... }
Auditoin jonkin verran koodia työkseni eli luen mitä muut kirjoittavat. Olen samaa mieltä kuin edellinen kirjoittaja siinä kohtaa, että liiat välit hidastavat ja vaikeuttavat koodin lueantaa sekä tulkintaa. Liian tiukkaan kirjoitettu koodi taas on myös vaikeaa lukea myös. Edellisen kirjoittajan esittämä tapa lienee yksi parhaista sekä luettavuuden että tulkinnan kannalta.
-W-
Kun se kerran vaikuttaa auditointinopeuteen, niin eikö kannattaisi ajaa auditoitava koodi jäsentimen läpi? Vai onko ero niin pieni että ei kannata?
Grez kirjoitti:
Kun se kerran vaikuttaa auditointinopeuteen, niin eikö kannattaisi ajaa auditoitava koodi jäsentimen läpi? Vai onko ero niin pieni että ei kannata?
PHP on sinänsä jännä kieli, että syntakseja on monenlaisia ja jäsentimet (esim. Zend Studiossa on sellainen) voivat tehdä koodista vielä vaikeammin luettavaa.
Yleensä auditoinnissa en koske koskaan itse koodiin vaan työnnän sen takaisin koodareille virheiden kera jotka sitten tekevät korjaukset ja työntävät koodit takaisin versionhallintaan.
Ja kun koodipläjäykset ovat aika isohkoja kuitenkin (satojatuhansia rivejä), pitää auditoinnissakin keskittyä vain olennaisiin asioihin. Vaikea laji ja aina oppii jotain.
Ja jos oikein ymmärsin kysymyksesi, auditoinnissa ei ole kyse nopeudesta millään mittarilla, kyse on vain tietoturvasta. Koodin luettavuuden ja sen kommentointi ovat avaintekijöitä jotta tiedetään mitä koodari on ajanut takaa esim. luokkasuunnittelussa.
-W-
Wizard kirjoitti:
Ja jos oikein ymmärsin kysymyksesi, auditoinnissa ei ole kyse nopeudesta millään mittarilla, kyse on vain tietoturvasta. Koodin luettavuuden ja sen kommentointi ovat avaintekijöitä jotta tiedetään mitä koodari on ajanut takaa esim. luokkasuunnittelussa.
Oletan että jos koodi on vähemmän luettavaa ja vaikeampaa tulkita, niin siinä kestää kuemmin. En toki lähtenytkään siitä, että nopeus olisi tärkeintä, mutta aikaa voi käyttää olennaiseen enemmän, jos sitä menee vähemmän selvän ottamiseen.
Wizard kirjoitti:
PHP on sinänsä jännä kieli, että syntakseja on monenlaisia ja jäsentimet (esim. Zend Studiossa on sellainen) voivat tehdä koodista vielä vaikeammin luettavaa.
Sanoit kuitenkin että GoldenDragonin mallin mukainen koodi on helpointa lukea ja tulkita. Näin ollen en näe miten siitä voisi tulla vaikeampaa lukea jos sen jäsentäisi tuohon muotoon.
En tosin tiedä miten huono toi Zend Studion jäsennin on, että ehkä se ei saa aikaan toivottua lopputulosta.
GoldenDragon vs Tumettaja koodi esimerkeissä kyllä ensin mainitun esimerkki on helpompaa lukea. Isoissa koodeissa kun tuppaa joskus myös rivien pituudet kasvamaan joka tapauksessa silloin tällöin, on helpompaa lukea koodia kun metodien muuttujat ovat ilman välilyöntejä sekä joitakin tiettyjä yksittäisiä yleisiä tapoja koodata (kuten esim. php.net sivustolla on esimerkkejä manuaalissa).
Sinänsä koodin kirjoitustapa ei ole niin ratkaisevaa kuin kommentit ja esim. phpDoc tyyppiset @ -alkuiset avainsanat. On vaikea arvata mitä koodin pitäisi tehdä ja mitä sen pitäisi tuottaa jos hyvin oleelliset merkinnät puuttuvat.
Ja tietysti tämän päivän teeman mukaan toivomus olisi olio-ohjelmointi myös PHP:llä. Varsinkin hieman isommissa projekteissa helpottaa kummasti. :D
-W-
Aihe on jo aika vanha, joten et voi enää vastata siihen.