Thread: [Java] Gebruik van this
-
02-02-2010, 19:47 #31Approved 9-lifer
- Registered
- 21/08/08
- Location
- Hasselt
- Posts
- 2,653
- iTrader
- 8 (100%)
- Mentioned
- 0 Post(s)
- Reputation
- 5/46
Ik heb nergens gezegd dat MIJN conventie een "$" bevat, lees mijn vorige posts maar eens terug. Een conventie is net een afspraak die je maakt/opgelegd krijgt. Als wij een project moeten maken starten we altijd eerst met het afspreken van conventies. Niet enkel code-gewijs, maar ook de manier van documenteren en communiceren, ja beste jongen, ook dat hoort bij conventies

Wat je zegt over code die door heel veel mensen gelezen wordt, dat is waar, dat zei ik ook. Maar jij vergeet 1 belangrijk aspect. Code binnen een bedrijf zal 99% van de gevallen binnen dat bedrijf blijven, en dus binnen diens conventies
Nieuwe lezers moeten zich daar evenzeer aanhouden.
Zolang iets leesbaar is, is het leesbaar! En als een bepaald bedrijf beslist dat "$" voor een membervariabele leesbaar is, dan moet gij een "$" schrijven voor die variabelen, zo simpel is dat.
Als ik morgen op een bedrijf kom waar ze me vertellen dat ik een "O_°" achter al mijn functies moet zetten dan zal ik dat doen.
Aan de unief leert ge ook flexibel zijn, maar jullie reageren als authisten wanneer iemand komt zeggen dat zijn proffen "$" gebruiken. Maarja, al die proffen zijn amateurs natuurlijk
Waarmee ik natuurlijk niet wil zeggen dat de standaardconventie niet goed is natuurlijk. Die wordt overigens voor 95% ook gewoon gebruikt.
Nu, welke vrijwilliger wil me kapot bashen als ik het volgende zeg: er is niets mis met "m_" voor membervariabelen!no votes
-
-
02-02-2010, 20:08 #32
Als de enige eis is dat je code leesbaar moet zijn, zal je weinig consequente code krijgen.
Als je iets doet, moet er een geldige reden zijn waarom je het zo doet. Niet enkel 'omdat we het kunnen'. Zo zijn ook de algemeen geldende conventies opgebouwd.
En zeker in de tijd waar we nu in leven - van open-source hier, outsourcing daar en collaboration overal - is het idioot om je als bedrijf aan een eigen huisstijl te houden die mijlenver van de algemeen geldende conventie ligt.
Wat je laatste zin betreft, er is an sich inderdaad niets mis aan m_ voor je membervariabelen te plaatsen, maar waarom zou je het doen? Als je enige reden 'omdat je dan kan zien dat het membervariabelen zijn' is, ga je beter een deftige IDE gaan gebruiken.no votes
-
02-02-2010, 20:19 #33Approved 9-lifer
- Registered
- 21/08/08
- Location
- Hasselt
- Posts
- 2,653
- iTrader
- 8 (100%)
- Mentioned
- 0 Post(s)
- Reputation
- 5/46
@Panakra: waar begint gij nu over, natuurlijk is dat niet de enige eis waaraan je code moet voldoen, maar daar gaat het toch helemaal niet over man :')
Er trouwens al aangedacht dat niet iedereen met dezelfde IDE werkt?
Zelfs in de grootste bedrijven zijn er mensen die nog met notepad/vim werken 
Als je enige reden 'iedereen moet maar een goede IDE hebben' is, ga je beter eens verder moeten nadenken.no votes
-
02-02-2010, 20:33 #34
Juist! En in Java is de conventie om de Java Code Conventie te gebruiken.
Bullshit. Als je een hoop programmeurs vraagt om tesamen een code conventie op te stellen dan eindigd dat in heilige oorlogen. Ik heb dit al effectief gezien in een bedrijf, waarbij ze uiteindelijk toch besloten dat elke programmeur in zijn code vrij was om de conventie te gebruiken die hij/zei wou (was in C). Tegen de tijd dat je een conventie bent overeengekomen heb ik mijn Java applicatie al lang geschreven. Simpel, effectief, leesbaar voor iedereen, volgens de algemene conventie.
Leuk om te zien dat er effectief juniors zijn die in dat soort van ontgroeningsmopjes inlopen 
Op onze unif leerden de assistenten ons de Java Conventions, zoals het hoort dus.
Wees een man en geef toch gewoon toe dat het volgen van de standaard Java Conventie het beste is.
In C++ wordt dat idd veel gedaan
.
no votes
-
02-02-2010, 20:35 #35
Jawel. Jij zegt dat je gerust $'s en |'s en ¿'s mag gebruiken, zolang je code maar leesbaar blijft. De conventie zegt dat je die dingen best niet gebruikt, net omdat je er dan meer voordelen uit kan halen dan enkel 'het is leesbaar'.
Je moet al een ongelooflijke geitenneuker zijn om nog te willen werken met notepad/vim als er véél betere alternatieven beschikbaar zijn, zowel gratis als betalend. En dan heb ik het over dagdagelijkse software development, niet één lijntje gaan aanpassen.
En je moet trouwens eens leren niet altijd naar de 'grote bedrijven' te kijken. Het is niet omdat ze groot zijn, dat alles wat zij doen correct en efficiënt is. Het is ondermeer door zo'n redeneringen dat we nog steeds met Cobol opgezadeld zitten.no votes
-
02-02-2010, 21:05 #36Approved 9-lifer
- Registered
- 21/08/08
- Location
- Hasselt
- Posts
- 2,653
- iTrader
- 8 (100%)
- Mentioned
- 0 Post(s)
- Reputation
- 5/46
@kwitters & Panakra: In vele bedrijven heb je niet eens de mogelijkheid om zelf software te installeren, en dus zijn programmeurs daar genoodzaakt met de huissoftware te werken, hoe oud/lelijk die ook is. Dat geldt voor kleinere bedrijven natuurlijk in veel mindere mate, daar zijn dan ook minder regels op dat vlak. Grote bedrijven werken inderdaad vaak niet efficiënt maar dat is nu eenmaal de realiteit (op de KBC maken ze user interfaces met perl, vet zo).
Verder mogen jullie me één bedrijf zoeken dat zich voor 100% aan jouw almachtige Java-conventie houdt, dat GEEN eigen conventies en regels heeft of waar men "ontgroeningsmopjes" uithaalt met nieuwelingen zodat ze onnodig tijd en dus geld verliezen. Volgens mij werken jullie op belachelijke bedrijfjes, kan dat?
Dat moet ik ook concluderen uit het volgende:
Op elk deftig bedrijf heb je immers een teamleader (kennen jullie dat begrip?). Die beslist zulke dingen en de werknemers onder hem moeten daar naar luisteren/hem overtuigen van eventuele fouten/opstappen. Het is die teamleader die zulke beslissingen neemt, al dan niet beïnvloed van bovenaf.Bullshit. Als je een hoop programmeurs vraagt om tesamen een code conventie op te stellen dan eindigd dat in heilige oorlogen. Ik heb dit al effectief gezien in een bedrijf, waarbij ze uiteindelijk toch besloten dat elke programmeur in zijn code vrij was om de conventie te gebruiken die hij/zei wou (was in C). Tegen de tijd dat je een conventie bent overeengekomen heb ik mijn Java applicatie al lang geschreven. Simpel, effectief, leesbaar voor iedereen, volgens de algemene conventie.
Sedert welke datum hangt de conventie waaraan je je moet houden af van enkel en alleen de progammeertaal? Volgens mij wordt die dus bepaald door uw werkgever maar soit, jullie werken in zo bedrijven waar ze elkaar pesten met ontgroeningsmopjes en waar ze met elkaar ruzie maken om te beslissen welke regeltjes ze moeten gebruikenJuist! En in Java is de conventie om de Java Code Conventie te gebruiken.
.
Misschien is het eens tijd voor jullie om eens buiten jullie bedrijf te denken en gewoon te aanvaarden dat conventies niet altijd hetzelfde zullen zijn.
Er zijn trouwens verschillende redenen waarom een bedrijf zich niet aan een bepaalde conventie houdt.
* onwetendheid
* gewoonte
* sneller aan te leren (sommige onbelangrijke conventies gewoon achterwege laten)
* vrijheid
* complexheid van de code (heel korte simpele programmatjes die waarschijnlijk nooit meer bekeken worden kunnen wel eens walgelijk slecht geschreven worden, zo is de wereld jongens)
* ...
Ik raad natuurlijk niet aan de conventies aan je laarzen te lappen, maar ik wil maar zeggen dat niet alle bedrijven je almachtige Java-conventie afdrukt en uitdeelt.
Binnen een aantal jaar zal je me wel gelijk geven vermoed ik.no votes
-
02-02-2010, 21:14 #37
Wat zit jij toch altijd in 'bedrijven' te denken. Haast iedereen hier is nog een student, jij inclusief.
En van je originele punt schiet niet veel meer over. Jij zei dat een dollarteken voor een variabele geen probleem is omdat men zich in bepaalde bedrijven ook niet aan de algemeen geldende conventie houdt (die redenering slaat al nergens op), daarna heb je proberen te bewijzen dat bedrijven wel degelijk een eigen huisstijl hebben (iets dat vanzelfsprekend is, maar waar het hier niet over gaat) en nu geef je zélf toe dat een eigen huisstijl niet altijd voordelig is, waardoor je oorspronkelijk punt in het gedrang gebracht wordt.no votes
-
02-02-2010, 21:27 #38

Wel grappig dat een student zoiets zegt tegen mensen die het diploma al hebben gehaald, en ondertussen jaren ervaring hebben opgedaan op verschillende bedrijven (groot en klein, als intern en als consultant).
De reden waarom veel bedrijven de standaard conventies (voor Java) niet volgen komt waarschijnlijk door pippo's zoals gij zelf.
Ook vond ik het grappig om te verzwijgen dat een van mijn beste maten op EDM werkt en daar ook zijn PhD heeft gehaald... rara wie...
. Misschien moet hij u nog wel punten geven
. Soms vertelt hij mij verhalen over de studenten, en sommige zaken beginnen nu echt wel duidelijk te worden
no votes
-
02-02-2010, 21:43 #39Approved 9-lifer
- Registered
- 21/08/08
- Location
- Hasselt
- Posts
- 2,653
- iTrader
- 8 (100%)
- Mentioned
- 0 Post(s)
- Reputation
- 5/46
@Parnakra: als je een beetje deftig kon lezen zag je dat ik redenen geef waarom je de algemene conventie niet zou volgen. Inderdaad, ik ben student, maar binnen 2.5 jaar niet meer, daarop ga ik +- 40 jaar werken in een BEDRIJF, dus het is wel belangrijk in die richting te denken of course. Nog voor een informatica-student afstudeert komen bedrijven al eens piepekoe zeggen dus uw argument slaat op geen ballen

@kwitters: er lopen ook veel werkende informatici rond die er niets van kennen
Lees iets deftiger aub, ik zeg dat die conventies goed zijn, en dat vele bedrijven zich daar niet altijd aan houden wat geen probleem is op zich, zolang het bij kleine dingen blijft zoals een "$" gebruiken.
Over die beste maat van u die aan het EDM werkt. Dat kan ik me best voorstellen, daar lopen een paar figuren rond die vaak niet weten wat zeggen als het op leerstof aankomt. Ik denk dan aan vakken zoals computernetwerken en tms, waar we EDM-assistenten voor krijgen die we vaak moeten verbeteren, maar ik weet natuurlijk niet over wie ge het hebt. De enige 2 aan het EDM waarvan ik weet dat ze hun PhD reeds gehaald hebben en die ik persoonlijk ken zijn William Van Haevre naar wie ik natuurlijk op kijk (ook op het rugbyveld) en Patrick Monsieurs (iemand die altijd wel heel wazig is op evenementen van Filii Lamberti - met zijn fotokodak =D) maar die is geen referentie :').no votes
-
02-02-2010, 22:22 #40
Zoals ik al zei worden er dikwijls heilige oorlogen gevoerd over code conventions (een beetje zoals hier nu
). Iedereen heeft zijn mening en wijkt daar meestal niet van af. Mijn achtergrond is een beetje de volgende: De meeste programmeertalen hebben geen "officiele" code conventions, en meestal heeft ieder project zowat zijn eigen conventies, zoals je zelf ook aanhaalt. Soms kom je zelfs verschillende stijlen tegen in 1 project
.
Ik was heel blij om te zien dat Java zijn eigen officiele conventies heeft, en toen was ik nog naief genoeg om te denken dat iedereen zich daaraan ging houden. Daarmee dat ik mij ook soms iets te heftig kan opwinden als mensen zich daaraan niet houden (viel het op?
). Natuurlijk kan ieder project zijn eigen stijl kiezen, maar persoonlijk ben ik er voor om in Java de standaard te volgen.
Nu moet ik zeggen dat ik vroeger niet dezelfde mening had (zie maar naar mijn artikel: deWiTTERS Tao of Coding – Koonsolo Game Development). Dus ja, ik heb zelf ook niet altijd de Java Code Conventions gevolgd
. Maar momenteel ben ik van mening om dit wel te doen, en dit ook het meest professioneel overkomt bij collegas. Maar ja, iedereen heeft hier natuurlijk zijn eigen mening over.
Yep, 't is de William
. Heb bij hem in't middelbaar gezeten en we hebben daarna alletwee Informatica gedaan: hij in Limburg en ik in Antwerpen. Maar we zijn nog altijd goei maten. Fijn om te horen dat hij gerespecteerd wordt door de studenten
(wat ik eigelijk ook wel een beetje verwachtte).
Hij is natuurlijk meer vertrouwd met C++, maar k zal hem eens goed naar zijn voeten geven over die $ in Java
.
no votes
-
02-02-2010, 22:41 #41Approved 9-lifer
- Registered
- 21/08/08
- Location
- Hasselt
- Posts
- 2,653
- iTrader
- 8 (100%)
- Mentioned
- 0 Post(s)
- Reputation
- 5/46
Mocht ik zelf ooit kunnen beslissen over zulke conventie-regels kies ik natuurlijk ook voor de meest gebruikelijke, dat spreekt voor zich
!
De William hadden we vooral in het eerste jaar. Hij komt beter en volwassener over dan andere assistenten (is ook ouder denk ik?) en hoort inderdaad bij de gerespecteerde assistenten.
Zeg hem dan dat de dades Kris Luyten en Carin Koninckx zijn! (En anderen onder hun)no votes
-
02-02-2010, 22:46 #42Crew Member
- Registered
- 01/09/02
- Location
- Peutie
- Posts
- 7,664
- iTrader
- 0
- Mentioned
- 4 Post(s)
- Reputation
- 13/105
Bwa, dat ging bij ons toch redelijk vlot hoor. Ik heb er een opgesteld, mij zo goed mogelijk aan de MS conventies gehouden met wat aanpassingen. (m_ ipv overal this. gaan gebruiken en andere kleine dingen die vaag gebaseerd zijn op die van iDesign trouwens.) Veel reactie is daar niet op gekomen dus tegen de tijd dat we moesten beginnen was het zo en niet anders.
In Visual Studio is er standaard geen onderscheid in kleur tussen member en gewone variabelen. Dat verschil zie je dus niet. Je kan dan overal this gaan voorzetten, maar persoonlijk vind ik dat niet echt de beste alternatieve oplossing. Dan liever m_ (of my_, our_, the_) dan _,$ of een ander gaar middel.Vanaf nu gaan we verder op BeyondGaming!
In deze thread wordt uitgelegd hoe je jouw account kan migreren.no votes
-
02-02-2010, 23:12 #43Member
- Registered
- 30/09/02
- Location
- Mariakerke
- Posts
- 554
- iTrader
- 1 (100%)
- Mentioned
- 0 Post(s)
- Reputation
- 2/2
Is het zo belangrijk dit onderscheid te zien? Ik ben in mijn code, of die van collega's nog nooit echt problemen gehad doordat er geen kleurverschil is tss memeber en gewone variabelen. Overal m_ beginnen voortypen, lijkt me ook wel een mengeling van stijlen (hungarian notation). Wat me redelijk overbodig lijkt gezien de hulp die je krijgt met intellisense. En het is ook niet bepaald de lijn volgen die microsoft gebruikt in .NET
no votes
-
03-02-2010, 10:10 #44Crew Member
- Registered
- 01/09/02
- Location
- Peutie
- Posts
- 7,664
- iTrader
- 0
- Mentioned
- 4 Post(s)
- Reputation
- 13/105
Dan moet je wel een duidelijke conventie aannemen over hoe je die noemt. Als ik een klasse Person maak die een firstname en lastname member variabele moeten hebben, dan kan ik in mijn constructor al niet dezelfde naam gebruiken terwijl dat de meest logische naam voor die variabele is. Meestal begin je dan af te korten of vrij zinloze namen te gebruiken. Dat is dan ook weer niet echt de bedoeling.
In elk programma zit wel eens een (te) lange functie die soms moeilijk op te splitsen is in verschillende functies. Dan vind ik het wel handig om meteen te zien wat member variabelen zijn en wat lokale variabelen zijn.
De lijn die MS gebruikt is trouwens overal this. voorzetten. Maar als je echt eens in hun code van het .NET framework gaat neuzen dan merk je daar ook al snel verschillende stijlen op hoor.
Sommigen gebruiken _firstname, anderen ook m_firstname, anderen overal this. Zelf zijn ze dus ook niet echt consequent.
Vanaf nu gaan we verder op BeyondGaming!
In deze thread wordt uitgelegd hoe je jouw account kan migreren.no votes

