Pagina 1 van 1

Code breed of lang?

Geplaatst: 26 jun 2007, 13:38
door dupondje
Widescreen is superhandig om te programmeren :) lekker breed scherm, want met alle toolbars enzo soms aan de zijkant van het scherm :)
//edit meon: dit stond oorspronkelijk in het "Nieuw scherm"-topic: http://www.userbase.be/forum/viewtopic.php?t=14738

Geplaatst: 26 jun 2007, 13:59
door crapiecorn
Code groeit meer in de lengte dan in de breedte. Voor een goed overzicht te bewaren kan je je widescreen beter kantelen.

Geplaatst: 26 jun 2007, 14:25
door ubremoved_539
crapiecorn schreef:Code groeit meer in de lengte dan in de breedte.
Bij het modulair coderen blijft de lengte nochtans ook beperkt... tijd voor een rewrite, ipv. nieuwe hardware :lol:

Geplaatst: 26 jun 2007, 14:30
door DarthDavy
crapiecorn schreef:Code groeit meer in de lengte dan in de breedte. Voor een goed overzicht te bewaren kan je je widescreen beter kantelen.
Tsjah, in de breedte ook hoor.

Dit is een standaard functie uit één van mijn projecten:

Code: Selecteer alles

<System.ComponentModel.DataObjectMethodAttribute(System.ComponentModel.DataObjectMethodType.Insert, True)> Public Function AddKlant(ByVal Code As Integer, ByVal Bedrijfsnaam As String, ByVal Naam As String, ByVal Straat As String, ByVal Postcode As String, ByVal Gemeente As String, ByVal Provincie As String, ByVal Land As String, ByVal Tel1 As String, ByVal Tel2 As String, ByVal Email As String, ByVal Fax As String, ByVal Opmerkingen As String, ByVal Status As Nullable(Of Integer), ByVal Cash_Credit_Code_Nu As Nullable(Of Integer), ByVal Credit_Limit As Nullable(Of Decimal), ByVal Balance As Nullable(Of Decimal), ByVal VAT_Number As String, ByVal Country_Code As String, ByVal Customer_Reference As String, ByVal Number_of_Volvo_Vehicles As Nullable(Of Integer), ByVal Number_of_NonVolvo_Vehicles As Nullable(Of Integer), ByVal CDB_Code As String, ByVal Web_Address As String, ByVal Additional_Phone_Number_1 As String, ByVal Additional_Phone_Number_2 As String, ByVal Additional_Phone_Number_3 As String, ByVal Natureza_Juridica As String, ByVal CGC_CPF_Number As String) As Boolean

Geplaatst: 26 jun 2007, 14:34
door meon
Dat kan je ook leesbaar onder mekaar zetten eh :-)

Code: Selecteer alles

Public Function AddKlant(
 ByVal Code As Integer, 
 ByVal Bedrijfsnaam As String, 
 ByVal Naam As String, 
 ByVal Straat As String, 
 ByVal Postcode As String, 
 ByVal Gemeente As String, 
 ByVal Provincie As String, 
 ByVal Land As String,
 ...
Je kan quasi elke taal (oké, geen VB) op 1 regel schrijven als ge wilt ...

Geplaatst: 26 jun 2007, 14:35
door DarthDavy
Op die manier ben je dan weer geen gebruik aan het maken van je widescreen scherm :p

Geplaatst: 26 jun 2007, 17:24
door nogChoco
Beetje offtopic, maar DarthDavy: kon je geen (nested) class gebruiken om al die parameters als 1 object te bundelen? ('t Is maar een suggestie)

Geplaatst: 26 jun 2007, 17:33
door crapiecorn
meon schreef:Dat kan je ook leesbaar onder mekaar zetten eh :-)

Code: Selecteer alles

Public Function AddKlant(
 ByVal Code As Integer, 
 ByVal Bedrijfsnaam As String, 
 ByVal Naam As String, 
 ByVal Straat As String, 
 ByVal Postcode As String, 
 ByVal Gemeente As String, 
 ByVal Provincie As String, 
 ByVal Land As String,
 ...
Je kan quasi elke taal (oké, geen VB) op 1 regel schrijven als ge wilt ...
Niet een paar underscores vergeten ? ;-)

Geplaatst: 26 jun 2007, 17:38
door crapiecorn
DarthDavy schreef:[

Tsjah, in de breedte ook hoor.

Dit is een standaard functie uit één van mijn projecten:

Code: Selecteer alles

<System.ComponentModel.DataObjectMethodAttribute(System.ComponentModel.DataObjectMethodType.Insert, True)> Public Function AddKlant(ByVal Code As Integer, ByVal Bedrijfsnaam As String, ByVal Naam As String, ByVal Straat As String, ByVal Postcode As String, ByVal Gemeente As String, ByVal Provincie As String, ByVal Land As String, ByVal Tel1 As String, ByVal Tel2 As String, ByVal Email As String, ByVal Fax As String, ByVal Opmerkingen As String, ByVal Status As Nullable(Of Integer), ByVal Cash_Credit_Code_Nu As Nullable(Of Integer), ByVal Credit_Limit As Nullable(Of Decimal), ByVal Balance As Nullable(Of Decimal), ByVal VAT_Number As String, ByVal Country_Code As String, ByVal Customer_Reference As String, ByVal Number_of_Volvo_Vehicles As Nullable(Of Integer), ByVal Number_of_NonVolvo_Vehicles As Nullable(Of Integer), ByVal CDB_Code As String, ByVal Web_Address As String, ByVal Additional_Phone_Number_1 As String, ByVal Additional_Phone_Number_2 As String, ByVal Additional_Phone_Number_3 As String, ByVal Natureza_Juridica As String, ByVal CGC_CPF_Number As String) As Boolean
Volgens de meeste conventions moet je zo functie opsplisen in meerdere lijnen, dit is totaal onleesbaar.

Geplaatst: 26 jun 2007, 19:24
door Beostar
nogChoco schreef:Beetje offtopic, maar DarthDavy: kon je geen (nested) class gebruiken om al die parameters als 1 object te bundelen? ('t Is maar een suggestie)
Inderdaad lijkt mij een beter idee dan alles als parameter meegeven. Beetje refactoring toepassen ;)

Geplaatst: 27 jun 2007, 11:43
door DarthDavy
nogChoco schreef:Beetje offtopic, maar DarthDavy: kon je geen (nested) class gebruiken om al die parameters als 1 object te bundelen? ('t Is maar een suggestie)
Om dan maar helemaal off-topic te gaan, maar jah, die function bestaat ook met als parameter een klasse die een klant-object aanvaardt, maar er zijn een boel situaties waarbij AddKlant moet uitgevoerd worden waarbij de klasse Klant helemaal geen nut heeft en dan kan ik de keuze gaan maken door voor iedere van die situaties een eigen overloaded AddKlant te gaan schrijven of ik schrijf 1 generieke AddKlant die met alle situaties overweg kan (let erop dat al mijn parameters nullable objecten zijn, behalve de strings omdat die niet nullable kunnen zijn en dan als Nothing doorgegeven worden).

Ik heb dus de keuze gemaakt om 1 generieke functie te schrijven, maar dat is natuurlijk ook niet alles omdat je dan aanroepen krijgt, die parameters als Nothing of als New Nullable(Of Integer) doorgeven.

Als ik eens de tijd heb, ga ik wel eens een klasse schrijven die deze situaties omzeilt. Erg prioritair staat dit niet op het programma, omdat het ding doet wat het moet doen (klant maalt niet om 'dirty' code).
crapiecorn schreef:
Volgens de meeste conventions moet je zo functie opsplisen in meerdere lijnen, dit is totaal onleesbaar.
Ik was maar een voorbeeldje aan het geven dat widescreen wel handig kan zijn. En deze functie is opgesplitst met underscores in verschillende lijnen.

Mental note: geen stukjes code meer posten... 8)

Geplaatst: 27 jun 2007, 12:36
door BungaMan
met de juiste ide kan je ook de pagina in 2 schermen opsplitsen en dan komt een breedbeeld ook goed van pas.

Geplaatst: 27 jun 2007, 13:03
door crapiecorn
r2504 schreef:
crapiecorn schreef:Code groeit meer in de lengte dan in de breedte.
Bij het modulair coderen blijft de lengte nochtans ook beperkt... tijd voor een rewrite, ipv. nieuwe hardware :lol:
Modulair coderen verhoogt de leesbaarheid niet altijd. Bv als je van een for lus en een daarin geneste lus 1 lus maakt. ipv die geneste lus gebruik je dan een berekening voor de 2de waarde. De volgende die dit leest zal er niet zo vlot overgaan. Ook ternaire operatoren vind ik niet zo vlot lezen.

Geplaatst: 27 jun 2007, 15:34
door DarthDavy
Wat zijn ternaire operatoren?

Geplaatst: 27 jun 2007, 15:51
door ubremoved_539
DarthDavy schreef:Wat zijn ternaire operatoren?
Verkorte versie van IF/ELSE toestanden, ook wel eens de IIF.

Wat de opmerking van de lus betreft ben ik trouwens niet mee... van twee lussen één maken (evenals ternaire operatoren) heeft wat mij betreft niets te maken met modulair programmaren.

En van de functie AddKlant hierboven krijg ik helemaal kriebels (en gaat tegen alle regels van elementair object oriented design in).

Geplaatst: 27 jun 2007, 16:19
door crapiecorn
Heeft niets met de essentie van Modulair te maken, maar wordt soms gebruikt om modules klein te houden. Al zijn "modules" tegenwoordig wel verleden tijd.

Geplaatst: 27 jun 2007, 16:58
door DarthDavy
De IIF is wel trager dan de conventionele IF...ELSE... constructie. Zeker in VB.

In C bestaat die ook, maar ik ken die eerder als de conditionele operator:

Code: Selecteer alles

expressie 1 : expressie 2 ? expressie 3
voorbeeld:

Code: Selecteer alles

int min, a, b;
    a = 5;
    b = 3;
    min = a < b ? a : b;
Zeker handiger dan schrijven:

Code: Selecteer alles

if a < b
min = a;
else
min = b;

Geplaatst: 27 jun 2007, 19:07
door wem
maar ook minder leesbaar vind ik persoonlijk.

Geplaatst: 27 jun 2007, 19:59
door Ofloo
Persoonlijk ben ik zo verbose mogelijk en wrap ik zo weinig mogelijk, ik vind het makkelijker om achteraf dan iets terug te vinden, indien het verkeerd is, trouwens ik vind dat ik op deze manier ook minder fouten maak.

Geplaatst: 27 jun 2007, 20:30
door BungaMan
DarthDavy schreef:De IIF is wel trager dan de conventionele IF...ELSE... constructie. Zeker in VB.
het gaat hier dan ook niet over hetzelfde. IFF is een functie en het zou me niet verwonderen als daar bij vb nog wat extra validatie achter steekt.

expressie 1 : expressie 2 ? expressie 3
zal dan weer wel naar dezelfde bytecode compileren als
if (expressie 1)
expressie 2
else
expressie 3
gewoon een andere schrijfwijze dus

Geplaatst: 28 jun 2007, 08:57
door GeertAki
Ik vind die verkorte if-structuur anders leesbaarder dan de lange vorm, omdat je met heel weinig te lezen alles weet.

In java:

Code: Selecteer alles

int min = (a < b) ? a : b;
Voor de rest vind ik dat bij elk code-blok (ook al is het slechts één lijn) accolades horen. Dat verkleint de kans op bugs, aangezien het telkens duidelijk afgescheiden is en als je een if-hebt met slechts één statement in en nadien komt er een tweede statement bij (door een andere programmeur of door jezelf), dan kan je die accolades wel eens vergeten toevoegen, zeker als je code niet goed geformatteerd was.

Ik stel mijn instellingen hier ook wel op 120 karakters per regel ipv de standaard 80. Dat werkt prettiger vind ik.

Geplaatst: 28 jun 2007, 12:40
door crapiecorn
GeertAki schreef:Ik vind die verkorte if-structuur anders leesbaarder dan de lange vorm, omdat je met heel weinig te lezen alles weet.

In java:

Code: Selecteer alles

int min = (a < b) ? a : b;
Voor de rest vind ik dat bij elk code-blok (ook al is het slechts één lijn) accolades horen. Dat verkleint de kans op bugs, aangezien het telkens duidelijk afgescheiden is en als je een if-hebt met slechts één statement in en nadien komt er een tweede statement bij (door een andere programmeur of door jezelf), dan kan je die accolades wel eens vergeten toevoegen, zeker als je code niet goed geformatteerd was.

Ik stel mijn instellingen hier ook wel op 120 karakters per regel ipv de standaard 80. Dat werkt prettiger vind ik.
Daarom vind ik talen als python, vb ook minder leesbaar. Als je bv hebt leren programmeren met een C like syntax en dan moet je VB leren , not cool. Ik kan de keren niet meer tellen dat ik set methods typ ipv bla.property =

Geplaatst: 28 jun 2007, 13:26
door SantaSCSI
Brede code is mijns inziens niet leesbaar. Ik probeer toch qua overzicht niet teveel op 1 lijn te zetten.

Ik gebruik liever breedbeeld om in HTML meerdere paginas op het scherm te displayen. Vooral in combinatie met Javascript en XML is multiwindow wel fijn werken.

Geplaatst: 28 jun 2007, 13:55
door DarthDavy
crapiecorn schreef: Daarom vind ik talen als python, vb ook minder leesbaar. Als je bv hebt leren programmeren met een C like syntax en dan moet je VB leren , not cool. Ik kan de keren niet meer tellen dat ik set methods typ ipv bla.property =
Dan pak je toch gewoon C# ipv VB, net hetzelfde.

Ik heb ooit ook een project in Python gedaan. Ik vond het best een leutige taal zo zonder declaraties en code-blokken door netjes te indenteren. Python verplicht je wel van goed te indenteren en dat vind ik wel goed (als ik zo soms de code van sommige C-programmeurs zie... jeeeees... hun accolades staan er wel, maar de indentatie springt van links naar rechts... ook niet echt leesbaar hoor).

Geplaatst: 28 jun 2007, 14:43
door GeertAki
Is toch kwestie van de formatting functie van uw IDE te gebruiken?

Geplaatst: 28 jun 2007, 19:28
door nogChoco
Voor mij hebben accolades en consoorten (de parenthesis hel van LISP, bijvoorbeeld) enkel nut bij scripting talen. Voor loutere programmeertalen vind ik het logischer dat de IDE de layout regelt, niet de taal zelf.

Als de layout deel uitmaakt van de taal, bestaat de kans dat er fouten tegen gemaakt worden, wat nogal overbodig is, vind ik.

Geplaatst: 29 jun 2007, 10:49
door DarthDavy
Jullie spreken allemaal over IDE's en tegenwoordig kan ik ook niet meer zonder, maar toen ik leerde progammeren was toch maar meestal gewoon in notepad (allez, en iets meer geavanceerde versie natuurlijk) en van IDE's en formatting functies was er nog geen sprake.

En ik programmeer nu nog altijd vaak in geavanceerde teksteditors zoals UltraEdit of Notepad++.

Geplaatst: 29 jun 2007, 10:52
door ubremoved_539
DarthDavy schreef:maar toen ik leerde progammeren
Toen... tja, toen had m'n computer ook maar 1 KB geheugen, en later hadden we een Pascal compiler en editor tesamen die slechts 32 KB groot was. Vandaag de dag is het splashscreen al groter dan 32 KB :lol:

Geplaatst: 29 jun 2007, 12:03
door DarthDavy
Splashscreens zijn zoooooo 2002 :lol: