Kumpi parempi koodaustyyli?
Xcode, Mac OS X Server sekä muuta hauskaa ja hyödyllistä
Kumpi parempi koodaustyyli?
Kumpi mielestänne on oikea/parempi (koskee ainakin C/C++/ObjectiveC)?
1)
if(foo==1) {
bar = 1;
}
2
if(foo==1)
{
bar = 1;
}
Minusta tuo 2) on vaan luettavampi, näkee nopeammin mistä alkaa ja loppuu esim. if-ehtolause. Xcode pukkaa automaattisest tuota 1) vaihtoehtoa.
1)
if(foo==1) {
bar = 1;
}
2
if(foo==1)
{
bar = 1;
}
Minusta tuo 2) on vaan luettavampi, näkee nopeammin mistä alkaa ja loppuu esim. if-ehtolause. Xcode pukkaa automaattisest tuota 1) vaihtoehtoa.
Viimeksi muokannut amanita, 14.1.2013 klo 16.16. Yhteensä muokattu 1 kertaa.
Syy: Otsikko kuvaavammaksi
Syy: Otsikko kuvaavammaksi
MacBook Pro13" mid 2012 16GB 480GB SSD
MacBook3.1 | 2.2GHz Intel Core 2 Duo | 4GB | 640GB | 12/2007
iPhone 5S 32GB + iPad2 32 GB Wi-Fi 3G + iPod Nano 3gen ja 6gen + ATV3
MacBook3.1 | 2.2GHz Intel Core 2 Duo | 4GB | 640GB | 12/2007
iPhone 5S 32GB + iPad2 32 GB Wi-Fi 3G + iPod Nano 3gen ja 6gen + ATV3
Re: koodaustyyli
Eiköhän nämä ole makuasioita; käytän kans tuota jälkimmäistä (iffin perään tietysti välilyönti ja bar-sijoitusrivi sisennettynä). Xcode tuottakoon mitä tykkää, sen jälkiä en kyllä jaksa korjailla.
Kohti länttä, kohti itää
Suomen suuren seistä pitää!
Kesken kahden vieraan verta
tohdi itses olla kerta!
–Eino Leino, Tähtiharha
Suomen suuren seistä pitää!
Kesken kahden vieraan verta
tohdi itses olla kerta!
–Eino Leino, Tähtiharha
Re: koodaustyyli
Riippuu miksi ja kelle koodaa. Jos itselle, niin ainoa oikea ja paras tyyli on ihan tarkkaan se mika itsea miellyttaa ja mika itselle on helpoin lukea.
Jos muille, niin silloin noudatetaan niiden muiden code style -ohjeita, tai tehdaan edelleen kuten itse tykkaa. Kuten jo mainittu, nama on ihan makuasioita ja netti on pullollaan tappeluja asiasta milla ei ole yhtikas mitaan merkitysta.
Jos muille, niin silloin noudatetaan niiden muiden code style -ohjeita, tai tehdaan edelleen kuten itse tykkaa. Kuten jo mainittu, nama on ihan makuasioita ja netti on pullollaan tappeluja asiasta milla ei ole yhtikas mitaan merkitysta.
Re: Kumpi parempi koodaustyyli?
Sisennykset noihin kumpaankin barin eteen. Minusta 1) vaihtoehto on selkeämpi, koska siitä sisennyksestä näkee, että mistä se "kohta" alkaa ja säästetään yksi rivi.
iMac 5K 2019 | Air 13" M1 | Pro 16" M1 Max | iP 13 Pro Max | AirPods Pro 2.Gen | FTTH-netti
http://www.youtube.com/watch?v=5GZcCLfeH28
http://www.youtube.com/watch?v=5GZcCLfeH28
Re: Kumpi parempi koodaustyyli?
Kuten jo mainittu, ihan turha tahan on ihmisten vastailla aanestyksella, se riippuu ihan siita mita tekee ja kenelle. Ja on mielipide asia. Ainoa oikea koodaustyyli on tasan tarkkaan se, joka auttaa koodin luettavuutta. Tuossa Dellin suosimassa tavassa voi olla ehka osin helpompi lukea kun on valjempaa, mutta tuo aiheuttaa ihan jarkyttavan tuhlaamisen vertikaalisesti, joka aiheuttaa koodin kontekstin sekaantumisen, eli paljonko koodia mahtuu ruudulle kerrallaan. Silla yhdella { -merkilla rivilla ei tee mitaan koodin ymmartamisen kannalta. Asiaan liittyen http://kotaku.com/5975610/the-exception ... t=56177550 on hyva artikkeli ja analysointi mika on hyvaa koodia.
Re: Kumpi parempi koodaustyyli?
Joo, siis sisennykset tein, mutta jostain syystä eivät tulleet näkyviin.
MacBook Pro13" mid 2012 16GB 480GB SSD
MacBook3.1 | 2.2GHz Intel Core 2 Duo | 4GB | 640GB | 12/2007
iPhone 5S 32GB + iPad2 32 GB Wi-Fi 3G + iPod Nano 3gen ja 6gen + ATV3
MacBook3.1 | 2.2GHz Intel Core 2 Duo | 4GB | 640GB | 12/2007
iPhone 5S 32GB + iPad2 32 GB Wi-Fi 3G + iPod Nano 3gen ja 6gen + ATV3
Re: Kumpi parempi koodaustyyli?
Itse pidän taas tuosta 2) vaihtoehdosta. Joskus voi kätevästi kommentoida tuon if-lauseen pois jos tarvii testata ehtoa, ilman että ehto täyttyy
// if (foo)
{
....bar = 1;
}
Joskus sijoitan koodia kaarisulkeisiin ilman mitään ehtoja tai silmukoita
// kommenttia kohtaan 1:
{
....bar = 1;
}
// kommenttia kohtaan 2:
{
....bar = 2;
}
// if (foo)
{
....bar = 1;
}
Joskus sijoitan koodia kaarisulkeisiin ilman mitään ehtoja tai silmukoita
// kommenttia kohtaan 1:
{
....bar = 1;
}
// kommenttia kohtaan 2:
{
....bar = 2;
}
Mac Book Pro 15" i9 (2019) 16GB, 512GB SSD
iPhone 11 Pro Max 256GB Silver
iPhone 11 Pro Max 256GB Silver
Re: Kumpi parempi koodaustyyli?
Kakkonen on ykkönen. Tässähän oli siis kyse XCoden snipeteistä? Muutenhan sen sulkeen sijoituksen voi itse päättää.
Täällä tarinaa, kuinka XCoden snipetitkin saadaan vaihtamaan tyyliä: http://stackoverflow.com/questions/2613 ... ated-files
edit: toisaalta yhden rivin iffeissä itse käytän myös:
Täällä tarinaa, kuinka XCoden snipetitkin saadaan vaihtamaan tyyliä: http://stackoverflow.com/questions/2613 ... ated-files
edit: toisaalta yhden rivin iffeissä itse käytän myös:
Koodi: Valitse kaikki
if (something)
doSomething();
else
doSomethingElse();
Viimeksi muokannut spiidi78, 20.1.2013 klo 14.32. Yhteensä muokattu 1 kertaa.
Re: Kumpi parempi koodaustyyli?
minustakin. ja mniusta tuntuu että ANSI C kirja (se tunnettu jonka tarkkaa nimeä muista mutta on hyllyssäni kun ainoa C kirja jonka tajusin jotenkin) aikoinaan ANSI C kanssa käytti tuota tyyliä. Ehtisi vaan koodamaan pitäs myös gui työkalujen käyttöön tutustua miten tehdä monen ikkunan ohjelma jossa kaikki ei ole kerralla auki. ja puhun mäkistä ja toki muistakin alustoista jolle tekee mielikoodata jossa ikkunointi.(kahdessa ei ole eli C64 ja Vic20...). Niille muille en ole vaan GUI editoria oikein löytänyt.mommmmi kirjoitti:Sisennykset noihin kumpaankin barin eteen. Minusta 1) vaihtoehto on selkeämpi, koska siitä sisennyksestä näkee, että mistä se "kohta" alkaa ja säästetään yksi rivi.
Re: Kumpi parempi koodaustyyli?
Nyt on pakko kommentoida kun on tullut aiheesta luettua aika paljon lähiaikoina ja Kotakun jutussa oli muutama kohta jotka tökkivät aika pahasti. Ensinnäkään, en tuota artikkelia suosittelisi kenellekään aloittelevalle ohjelmoijalle. Jos ei muuta niin ihan siitä syystä ettei artikkelin kirjoittaja mielestäni ymmärrä olio-ohjelmoinnista mitään, ja siten suosittelee älyvapaita käytäntöjä. Artikkelissa on hyviä pointteja, mutta ilman jonkinmoista ymmärrystä aiheesta lukija saattaa helposti poimia ne huonoimmat käytännöt.mikian kirjoitti:Kuten jo mainittu, ihan turha tahan on ihmisten vastailla aanestyksella, se riippuu ihan siita mita tekee ja kenelle. Ja on mielipide asia. Ainoa oikea koodaustyyli on tasan tarkkaan se, joka auttaa koodin luettavuutta. Tuossa Dellin suosimassa tavassa voi olla ehka osin helpompi lukea kun on valjempaa, mutta tuo aiheuttaa ihan jarkyttavan tuhlaamisen vertikaalisesti, joka aiheuttaa koodin kontekstin sekaantumisen, eli paljonko koodia mahtuu ruudulle kerrallaan. Silla yhdella { -merkilla rivilla ei tee mitaan koodin ymmartamisen kannalta. Asiaan liittyen http://kotaku.com/5975610/the-exception ... t=56177550 on hyva artikkeli ja analysointi mika on hyvaa koodia.
Tuntuu että jutun kirjoittaja ei ymmärrä olio-ohjelmointia ollenkaan, vaan on puhdas proceduraalinen ohjelmoija. Tähän viittaa se että kapselointi (encapsulation) uhrataan koodin luettavuuden ja rivi määrän minimoimisen takia (Ks. kappale otsikolla Remnants of C). (kirjoituksessa siis sanotaan että get ja set funktiot ovat turhia, parempi vaihtoehto on määritellä luokan muuttujat julkisiksi (public) yksityisen (private) sijasta.) Okei, tuossa on pointtina se että jos muuttujalla on get ja set funktiot niin periaatteessa sitä voi muokata ihan samalla tavalla kuin muuttujaa suoraan muokkaamalla. Asia ei mielestäni ole kuitenkaan näin yksinkertainen. Get/Set funktiolla ei tule niin helposti ongelmaa siinä että tieto tallennetaan vahingossa väärään muuttujaan. Käsittääkseni myös olio-ohjelmoinnin paradigman mukaisesti muuttujia kannattaisi käyttää luonnollisesti, metodien kautta. Vrt. Luokalla ihminen on metodi vanhene(), eikä sen luokan ilmentymää vanhennuteta tyyliin olio.setIkä(olio.getIkä()+1). Jos haluaa kirjoittaa C-koodia niin silloin kannattaa kirjoittaa C-koodia, ei raiskattua C++:ssaa.
Kirjoittajan asenteena tuntuu olevan että C on oikea ohjelmointikieli ja C++ vaan siihen semmoinen pieni tyylillinen lisä. (Mikä taas osoittaa ettei kirjoittaja tajua C++:n olevan ihan oma ohjelmointikielensä).
Disclaimer: Minulla on 14 vuotta ohjelmointikokemusta, mutta olio-ohjelmointi ei ole vahvuuksiani vaan olen vasta sitä alkanut opettelemaan kunnolla. Saatan olla ylläkirjoittamassani väärässä, ja siinä tapauksessa toivon että minua valistetaan asiasta (lähteiden kanssa).
Tässä vielä pari mielestäni hyvin ketjun aiheeseen sopivaa linkkiä:
http://www.joelonsoftware.com/articles/Wrong.html
http://net.tutsplus.com/tutorials/html- ... able-code/
Jukka Vuorinen
Re: Kumpi parempi koodaustyyli?
Itse tykkään vaihtoehdosta 2, sillä erotuksella että
If (1==foo)
Silloin ei yhden merkin unohdus tuo ylläriä. Mikäs se olikaan kuuluisin moka tähän liittyen?
If (1==foo)
Silloin ei yhden merkin unohdus tuo ylläriä. Mikäs se olikaan kuuluisin moka tähän liittyen?
Vitutuksesta voimavara!
Re: Kumpi parempi koodaustyyli?
Tuota olenkin miettinyt, mistä tuo kyseinen tyyli on peräisinLare kirjoitti:Itse tykkään vaihtoehdosta 2, sillä erotuksella että
If (1==foo)
Silloin ei yhden merkin unohdus tuo ylläriä. Mikäs se olikaan kuuluisin moka tähän liittyen?
Re: Kumpi parempi koodaustyyli?
Minä käytän aina tuota 1-vaihtoehtoa. Joskus kun pitää muokata toisten tekemää koodia, niin "korjaan" sen 1-vaihtoehdon mukaiseksi. En enää muista, olenko joskus aikoinaan tehnyt jotain analyysia siitä, kumpi vaihtoehto on parempi. Ehkä opin sen 1-vaihtoehdon jostain Kernighan & Ritchiestä.
Palaa sivulle “Ohjelmointi, skriptit ja palvelimet”
Hyppää
- Yleiset aiheet
- ↳ Ajankohtaista Apple-maailmasta
- ↳ Käyttöjärjestelmät
- ↳ Ohjelmat
- ↳ Yleiskeskustelu
- Mac ja oheislaitteet
- ↳ Yleiskeskustelu laitteista
- ↳ MacBook, MacBook Pro ja MacBook Air
- ↳ iMac
- ↳ Mac mini
- ↳ Mac Pro ja Mac Studio
- ↳ Ongelmia Macin kanssa?
- iPhone, iPad ja Apple Watch
- ↳ iPhone-, iPad- ja Apple Watch -laitekeskustelu
- ↳ iPhone-, iPad- ja Apple Watch -ohjelmat sekä iOS
- ↳ Ongelmia iPhonen, iPadin tai Apple Watchin kanssa?
- Huviksi ja hyödyksi
- ↳ Off-topic
- ↳ Kuva ja graafinen suunnittelu
- ↳ Audio ja musiikki
- ↳ Video, televisio ja elokuvat
- ↳ Pelit ja pelaaminen
- ↳ Ohjelmointi, skriptit ja palvelimet
- ↳ Tietoturva ja varmuuskopiointi
- ↳ Verkot, mobiilidata ja muut puhelimet
- ↳ Retronurkka
- ↳ Foorumin ylläpito
- Kauppapaikka
- ↳ Myydään Mac
- ↳ Myydään iPhone, iPad ja iPod
- ↳ Myydään muut Applen tuotteet
- ↳ Myydään muuta tietotekniikkaa
- ↳ Ostetaan Mac
- ↳ Ostetaan iPhone, iPad ja iPod
- ↳ Ostetaan muut Applen tuotteet
- ↳ Ostetaan muuta tietotekniikkaa
- ↳ Vaihdetaan, annetaan, työtä haetaan ja tarjotaan
- ↳ Kauppapaikan keskustelu ja hintavinkit