Permalänk
Medlem

Ungersk notation

Hur är det med nuförtiden? Har böcker som säger olika saker. Är det rekommenderat?

Permalänk
Medlem

Vet inte.. Men personligen skulle jag nog säga att jag tror det är dumt att lägga på typ-information i namnet, typ "iMoney", eftersom du kanske senare kommer på att det inte är bra att representera pengar med en int så du vill byta till en float... vilket blir jobbigt om du ska byta alla "iMoney" till "fMoney". Alternativet är att strunta i att ändra, men då har du istället felaktig dokumentation vilket är ännu värre.

Dock sånt som t.ex. "CClass" och "m_MemberVar" tycker jag är rätt ok, eftersom de inte ändras så ofta.

Visa signatur

Min hemsida: http://www.srekel.net
Pocket Task Force: http://ptf.srekel.net
Kaka e gott! http://kaka.srekel.net

Permalänk
Medlem

Inte en Microsoft använder det längre, tycker jag säger en hel del. CClass är bara fult och hjälper inte för 5 öre, däremot m_memVar kan jag gå med på. Tycker de flesta verkar vara emot ungersk notation nu

Permalänk
Medlem

Ungersk notation är egentligen bara användbart i ett löst typat språk.

Permalänk
Medlem

Kör alltid med ungersk notation men sen programmerar jag mest asp (vbs) och när man bara har en datatyp så är det hemskt bra att kunna speca vad man hade tänkt sig att variabeln skulle innehålla.

Visa signatur
Permalänk
Medlem
Citat:

Ursprungligen inskrivet av Ereinion
Inte en Microsoft använder det längre, tycker jag säger en hel del. CClass är bara fult och hjälper inte för 5 öre, däremot m_memVar kan jag gå med på. Tycker de flesta verkar vara emot ungersk notation nu

CClass finns det faktiskt en anledning till, och det är att en klass som börjar med ett C är en vanlig klass, men om det är en klass som börjar med ett I istället betyder det att det är ett interface, vilket kan vara trevligt att veta.

Visa signatur

Min hemsida: http://www.srekel.net
Pocket Task Force: http://ptf.srekel.net
Kaka e gott! http://kaka.srekel.net

Permalänk

Jag har aldrig använt det och kommer aldrig att göra det heller.

Permalänk
Medlem

Jag använder det ibland när jag skriver VBScript/VB, eftersom det är ett löst typat språk. Men annars brukar jag döpa variabler så man fattar vad det handlar om. En hitCounter-variabel innehåller ju rimligtvis ett integer värde, t.ex.

Permalänk
Medlem

Jag kör med det. Men prefixar inte typer, utan attribut. Som pekare, referens. Sen hjälper prefixen N, C, E (namespace, class, enum) en att lätt veta vad allt är i hierarkin (NFoo::NBar::CFoo::CBar::ETest), speciellt om man är flera programmerare. Det viktigaste prefixet må vara m_ för member.

Visa signatur

Perl - Made by Idiots, Java - Made for Idiots, C++ - Envied by Idiots

Permalänk
Medlem

På de flesta arbetsplatser jag har varit på används ungersk eller prefix/camel. Ungersk notation och prefixnotation är nog på utgående men med tanke på hur många programmerare som kodar så idag så lär det dröja ett bra tag innan vi får se något annat sätt. Det är ju som bekant svårt att lära gamla hundar att sitta.

Citat:

Ursprungligen inskrivet av Srekel
Vet inte.. Men personligen skulle jag nog säga att jag tror det är dumt att lägga på typ-information i namnet, typ "iMoney", eftersom du kanske senare kommer på att det inte är bra att representera pengar med en int så du vill byta till en float... vilket blir jobbigt om du ska byta alla "iMoney" till "fMoney". Alternativet är att strunta i att ändra, men då har du istället felaktig dokumentation vilket är ännu värre.

Då har det ju blivit fel tidigt i processen. Någonstans vid systemarkitekturen. Någon har inte tänkt rätt från början. Då tycker jag inte det är mer än rätt att man blir tvingad att gå tillbaka till ritbordet. Gör om. Gör rätt.
Tyvärr blir det allt vanligare med vilda västern utveckling där vi skjuter från höften och måste tömma hela revolvern istället för ett välriktat skott.
Till och med i starkt typade språk där man bestämmer typen tycker jag det är bra att "prefixa". Om du senare i koden måste ändra typ bara för en speciell funktion så kan man typjonglera. Om det är en mer generell ändring så är det tillbaka till ritbordet.

Citat:

Ursprungligen inskrivet av Pink Lemonade
Jag har aldrig använt det och kommer aldrig att göra det heller.

Låter som ett litet omoget ställningstagande. När man väl sitter i stora projekt med många utvecklare är det mycket lättare att följa en annan programmerares kod om denne märker ut typer. Det blir lättare att sätta sig in i hur den andre tänker/tänkte. Plus att man vill inte göra The Zenzai programmer vred

Visa signatur

10 RTFM
20 RTFAQ
30 STFW

Permalänk
Medlem

andrin: Jag håller med dig. I ett stort projekt slipper man gå tillbaka till deklarationen för att kolla vilken typ det var. När man rotar i andras windows-kod är det bra, särskilt för DWORD och LPSTR. G för globals är också bra.

Men vad säger standarden?

Permalänk
Medlem

Det finns ingen "standard" i den meningen med ISO eller så. De notationmetoder som finns idag är de-facto och ofta beror det på vilket som var det första programmeringsspråket man kom i kontakt med och när man gjorde det. Personer som börjar sin programmeringskarriär idag kommer att influeras mycket av .NET och av de författare som skriver böcker om .NET. På deras axlar vilar ett enormt ansvar och detta bara ur syntaxmässig synpunkt.

De flesta seriösa företag har en notations-guideline som antingen är en rak kopia/utökad/avskalad version av en redan etablerad notaionsmetod. Detta främst för att källkod är absolut men föränderlig och programmerare är föränderliga men absoluta. På ren svenska alltså: kod består medans programmerare går.

Visa signatur

10 RTFM
20 RTFAQ
30 STFW

Permalänk
Medlem

Finns det inget motsvarande ANSI? Borde man gå efter Stroustrups riktlinjer?

Permalänk
Medlem

Man borde vara flexibel och ta seden dit man kommer. Anamma den metod som företaget kör. Programmerar man för något open source-projekt så har de till 98% säkerhet en notationsmetod som man måste sätta sig in i först innan man börjar annars kan det vara svårt att få sin kod incheckad.

Kör man kör C++ så kan det ju vara bra att följa Bjarnes tips.

Visa signatur

10 RTFM
20 RTFAQ
30 STFW

Permalänk
Medlem
Citat:

Ursprungligen inskrivet av Srekel
CClass finns det faktiskt en anledning till, och det är att en klass som börjar med ett C är en vanlig klass, men om det är en klass som börjar med ett I istället betyder det att det är ett interface, vilket kan vara trevligt att veta.

Har du I för interface behöver du ju inte C längre.

Permalänk
Citat:

Ursprungligen inskrivet av andrin

Låter som ett litet omoget ställningstagande. När man väl sitter i stora projekt med många utvecklare är det mycket lättare att följa en annan programmerares kod om denne märker ut typer. Det blir lättare att sätta sig in i hur den andre tänker/tänkte. Plus att man vill inte göra The Zenzai programmer vred

I mitt fall är det inte frågan om ett omoget ställningstagande. Företaget jag jobbar för nu har faktiskt Ungersk Notation skrivet i sin "style guide" men jag har ändå valt att använda andra rekommendationer. Olika programmeringsspråk och plattformar kan ju ha sina egna dessutom.

Sist och slutligen är det väl en vanesak.

Permalänk
Medlem

I för interface använder jag, inget annat. Om det är så viktigt att betona vilka medlemmarna är kan man väl använda this->.

Visa signatur

:€

Permalänk

Det blir så många språk nu, men i Delphi var jag noga med ungersk notation, medan jag nu i Java slarvar lite mer. Variabler (strStrang, nHeltal, btnKnapp, osv) är jag hyffsat noggrann med, men vad som är klass och inte, det bryr jag mig sällan om att döpa, likadant med interface, det får dokumentationen sköta

Visa signatur

System.out.print(madness ? this.is.SPARTA : "");