Archief - [Prog] [Java] Java advies voor studenten

Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.

.Acku.

Legacy Member
Naar aanleiding van deze thread (en een paar andere), wil ik best eens een project onder handen nemen die jullie voor school (eindproject e.a, zaken met meer dan twee klassen).

Advies over leesbaarheid van code en dergelijke, niet het toevoegen van vereiste functionaliteit. Je kan daar best een paar puntjes met winnen ;)

Laat maar komen.

Tyfius

Legacy Member
Het is misschien handig om op bvb gamedesign.be eens artikels te voorzien over de algemene code guidelines, kwa indentiatie en andere tips om de leesbaarheid van de code te vergemakkelijken en toch snelle en optimale code te behouden.

Bubbling Zombie

Legacy Member
.Acku. zei:
Naar aanleiding van deze thread (en een paar andere), wil ik best eens een project onder handen nemen die jullie voor school (eindproject e.a, zaken met meer dan twee klassen).

Advies over leesbaarheid van code en dergelijke, niet het toevoegen van vereiste functionaliteit. Je kan daar best een paar puntjes met winnen ;)

Laat maar komen.

Misschien is het beter om gewoon advies te geven, en eventueel een link naar waar dat advies is op gebaseerd (of een kort voorbeeld ofzo). Anders gaan ze u gewoon gebruiken als huiswerkdump ze :)

.Acku.

Legacy Member
Bubbling Zombie zei:
Misschien is het beter om gewoon advies te geven, en eventueel een link naar waar dat advies is op gebaseerd (of een kort voorbeeld ofzo). Anders gaan ze u gewoon gebruiken als huiswerkdump ze :)

Ja nee, inderdaad, enkel advies met wat voobeelden. Huiswerkdump eindwerk-Java ben ik al genoeg geweest :baard:

passero

Legacy Member
Koop gewoon een boek over UML en dat lukt ook :)

en troost u... eens je in de wijde programmeerwereld terecht ben gekomen dan worden die regels toch nie gebruikt...

Bij ons op de hogeschool verloren we ook altijd punten als de naamgeving niet volgens bepaalde regels waren. Dan kom ik op mijn stage en krijg ik enkele projecten onder mijn neus geduwd en vind ik amper herkenbare paterns terug... de meeste developers hadden er nog niet echt van gehoord. Naamgeving was ook soms ver te zoeken enzo nog een aantal van die dingen.
Wat is het nut dan?

Ik kan ook altijd tips geven btw, ik gebruik wel de "regels" als ik programmeer en probeer ook wat patterns te introduceren indien mogelijk ;)

Bubbling Zombie

Legacy Member
er moet natuurlijk ooit iemand beginnen met patterns enzo :p

.Acku.

Legacy Member
passero zei:
Bij ons op de hogeschool verloren we ook altijd punten als de naamgeving niet volgens bepaalde regels waren. Dan kom ik op mijn stage en krijg ik enkele projecten onder mijn neus geduwd en vind ik amper herkenbare paterns terug... de meeste developers hadden er nog niet echt van gehoord. Naamgeving was ook soms ver te zoeken enzo nog een aantal van die dingen.
Wat is het nut dan?

Ik kan ook altijd tips geven btw, ik gebruik wel de "regels" als ik programmeer en probeer ook wat patterns te introduceren indien mogelijk ;)

Interessant, waar werk je?

killgore

Legacy Member
passero zei:
Koop gewoon een boek over UML en dat lukt ook :)

en troost u... eens je in de wijde programmeerwereld terecht ben gekomen dan worden die regels toch nie gebruikt...

Bij ons op de hogeschool verloren we ook altijd punten als de naamgeving niet volgens bepaalde regels waren. Dan kom ik op mijn stage en krijg ik enkele projecten onder mijn neus geduwd en vind ik amper herkenbare paterns terug... de meeste developers hadden er nog niet echt van gehoord. Naamgeving was ook soms ver te zoeken enzo nog een aantal van die dingen.
Wat is het nut dan?

Ik kan ook altijd tips geven btw, ik gebruik wel de "regels" als ik programmeer en probeer ook wat patterns te introduceren indien mogelijk ;)
1. Buiten naamgeving zijn er enkele std dingen zoals intendatie. Zou me sterk verbazen moesten ze in een deftig bedrijf geen ietwat standaard lay-out gebruiken.
2. Naamgeving is naar mijn mening eigenlijk vooral belangerijk als je een variabele over een zeer lang stuk code gaat gebruiken. Binnen bv. 5 regels is het meestal vrij duidelijk leesbaar zonder dat je er een ellenlange naam aan moet geven ;). Natuurlijk moet je niet cst met variabelen a,b,c,d werken, maar kortere, mssch wat onduidelijkere namen kunnen in dit geval wel ;).

Als je over 80 regels code de variabele a gaat gebruiken en die moet bv. een ip-address bevatten, dan ben je slecht bezig. Als je een aanpassing wilt maken rond 30e regel omdat er klein bugje inzit moet je al heel dat algoritme gaan lezen omdat je hoogst wrsch niet meer exact weet wat a is.

.Acku.

Legacy Member
Leve moderne IDe's en autocomplete. CTRl-spatrie en je var heeft de naam van het Object dat het vertegenwoordigd.

Massis

Legacy Member
indentatie:

als het ergens in genest is schuift ge nen tab op en uw acculades sluit ge op zelfde hoogte als de regel waar ge ze sloot... da lijkt mij zo wa de meest logische uitleg...

bijv

Code:
while ( max > 0 && max < 50 ){
     for(i = 0;  i < max ;i ++){
          doe hier wat dingen
     }
}


en namen moet ge gewoon logisch houden en liefst in't engels...

dJeez

Legacy Member
Indentatie is toch kwestie van gewoonte, ik gebruik doorgaans volgende manier aangezien ik ze nog net iets overzichterlijker vind :
Code:
while ( max > 0 && max < 50 )
{
     for(i = 0;  i < max ;i ++)
     {
          doe hier wat dingen
     }
}
Je ziet dan direct de accolades mooi onder elkaar staan, alle code mooi in blokken afgelijnd. Die gewoonte ligt wellicht aan 't feit dat ik veel met Pascal gewerkt heb (tot op de dag van vandaag trouwens).

wlibaers

Legacy Member
dJeez zei:
Indentatie is toch kwestie van gewoonte, ik gebruik doorgaans volgende manier aangezien ik ze nog net iets overzichterlijker vind :
Code:
while ( max > 0 && max < 50 )
{
     for(i = 0;  i < max ;i ++)
     {
          doe hier wat dingen
     }
}
Je ziet dan direct de accolades mooi onder elkaar staan, alle code mooi in blokken afgelijnd. Die gewoonte ligt wellicht aan 't feit dat ik veel met Pascal gewerkt heb (tot op de dag van vandaag trouwens).

Dat is ook in C een van de meest gebruikte stijlen, na K&R.
http://catb.org/~esr/jargon/html/I/indent-style.html

Vich

Legacy Member
passero zei:
Koop gewoon een boek over UML en dat lukt ook :)

en troost u... eens je in de wijde programmeerwereld terecht ben gekomen dan worden die regels toch nie gebruikt...
Da's een generalisering waar niks van klopt. Elk zelfrespecterend software-ontwikkelend bedrijf zal UML schema's maken van zodra het ontwerp van de code een ietwat structuur van objecten bevat.

Bij ons op de hogeschool verloren we ook altijd punten als de naamgeving niet volgens bepaalde regels waren. Dan kom ik op mijn stage en krijg ik enkele projecten onder mijn neus geduwd en vind ik amper herkenbare paterns terug... de meeste developers hadden er nog niet echt van gehoord.
De meeste developers die jíj kent. Iedere programmeur bij ons op het bedrijf schrijft gestructureerde en duidelijke code. Ik heb het hier over een 25-tal collega's.

.Acku. zei:
Interessant, waar werk je?
What he says!

Kn0t

Legacy Member
Inderdaad passero ik denk dat ge een vertekend beeld hebt door je stageplaats / eerste job te gaan beschouwen als "de wijde programmeerwereld".

Ik ben net als u vorig jaar afgestudeerd van het bbme en kan er idd van meespreken dat daar wel belang werd gehecht aan code style, ontwerp, naamgeving, patterns, unit testing etc.. En ik ben daar eerlijk gezegd wel blij om. Bij mij was dat zowel op mijn stage, als op mijn huidige job ook een belangrijk punt.

Het ant build script op mijn werk gebruikt junit, code coverage en checkstyle plugins dus er gaat niets de deur uit wat niet voldoende getest of waar de codestyle niet voldoet aan de voorgeschreven regels :)

Ik heb natuurlijk ook geen volledig beeld erover want kheb ook nog maar op 2 plaatsen gewerkt, maar het is alleszinds niet zo dat de regels overal aan de laars gelapt worden.

killgore

Legacy Member
.Acku. zei:
Leve moderne IDe's en autocomplete. CTRl-spatrie en je var heeft de naam van het Object dat het vertegenwoordigd.
De reden waarom ik korte namen gebruik voor vars die toch maar enkele regels lang nodig zijn ligt niet aan het typwerk, eerder omdat ik persoonlijk vind dat langere formules gewoon onleesbaarder worden. Het is dus puur persoonlijk.
En zoals ik zei, ik gebruik kortere, iets minder conventionele namen daarvoor, daarom nog niet compleet onduidelijke ;). Ik zorg er nog steeds voor dat iedereen men code vrij vlot kan lezen zonder dat ze 50 rare variabelenamen moeten onthouden :p.

over die intendatie: ik vind het natuurlijker dat uw accolades op zelfde intendatie staan. De K&R stijl is iets dat ik zelf zoveel mogelijk vermijd, maar zolang het leesbaar blijft heb ik niet echt iets op elke stijl. Enkel die GNU stijl uit wlibraers zen link vind ik kut, enige plaats waar ik eventueel code op zelfde intendatie van een accolade zou zetten is een switch statement, meer niet, kvind da zo onleesbaar/onnatuurlijk.
Kben al lang blij dat wij toestemming hebben om elke deftig leesbare stijl te hantere bij informatica :).

passero

Legacy Member
lol @Knot :) You know who i am right :)

Wel bij ons vegen ze dus vierkant hun voeten aan al die patterns die wij geleerd hebben, ik heb dat hier moeten introduceren maar aangezien ik momenteel heel veel debug werk doe lukt dat niet zo goed en het enige project waar ik me mag in uitleven is geschreven in de oude ASP dus ook nie veel OO aan ;)

De projecten die wel OO zijn, geschreven in asp.net hebben gelijk maar een basis OO... Het enige wat ik zie is dat er een data access layer is, een facade layer (layer tussen web en data acces layer), een object model en het web project.

Ik heb nergens in de code ook maar iets gevonden wat op een pattern wijst, naamgeving valt nog goed mee maar de structuur van de klassen is echt alles behalve OO. Het idee is dat elk object zijn eigen klasse heeft en erft van geen enkele andere klasse terwijl er heel veel gelijkaardigheden zijn wat dus veel copy paste werk is en ik heb zo al heel veel klassen moeten wijzigen, steeds op dezelfde plaatst omdat de copy paste code verkeerd was :s
Is toch niet handig? Met een deftig uitgewerkt model kon dit toch voorkomen worden?
De uitleg is hier dan: daar hebben we geen tijd voor, dat kost teveel geld. de analalyse (van de verkopers) komt binnen en er wordt onmiddellijk geprogrammeert.
Ik hoor hier dan van de mensen die al op meerdere bedrijven gewerkt hebben dat dit overal zo is...

Ik heb dan ook al eens het tegenovergestelde meegemaakt. Tijdens mijn stage ben ik gaan solliciteren bij een bedrijf dat enkel maar java programmeerde en daar op de sollicitatie kreeg ik een proef waarbij ik een klassediagram moest tekenen... natuurlijk volgens de OO manier.
Achteraf kreeg ik de oplossing en ik verschoot enorm... er waren heel veel patterns gebruikt voor dingen die ik eigenlijk niet zag. Zeer simpele dingen die nog eens opgesplitst werden. Dit was echt de theorie omgezet in de praktijk. Zijn er nog zo veel bedrijven die echt zo diep gaan of zijn er dan meer bedrijven zoals waar ik werk? waar het ontwerp enkel aanzien wordt als tijdsverlies... terwijl ze op lange termijn toch wel serieus wat kunnen winnen door een deftig ontwerp...
Om even mijn leraar OO te quoten van vorig jaar:

Later lui zijn door in het begin veel te werken

.Acku.

Legacy Member
Standaard patters worden sowieso gebruikt, ook al worden ze niet meteen op die manier naamgegeven. MVC met facades en DAO's zijn in elk geval een basisvereiste.
Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.
Terug
Bovenaan