[alg] Slechtste programmeervoorbeelden deel 4 Vorige deel Overzicht Laatste deel

Dit topic is onderdeel van een reeks. Ga naar het meest recente topic in deze reeks.

Pagina: 1 ... 90 ... 103 Laatste
Acties:
  • 993.618 views

Acties:
  • 0 Henk 'm!

  • jip_86
  • Registratie: Juli 2004
  • Laatst online: 21-09 16:06
Jeldert schreef op woensdag 04 juli 2012 @ 15:11:
[...]

Daar heb je dan weer een architectuurdocument voor :)
Eh juist, dat word wel bijgehouden? Ik lees het liever in code dan dat ik en een document bij moet houden en daarna moet gaan doorzoeken of er iets over methode x staat. Dan liever gewoon zo:
C#:
1
2
3
4
5
public void RandomPropertyChanged()
{
   // je zou hier dit of dat verwachten maar dat gebeurt op plek x
   code;
}

Acties:
  • 0 Henk 'm!

  • avdongen
  • Registratie: November 2006
  • Laatst online: 20-09 23:08
MBV schreef op woensdag 04 juli 2012 @ 13:59:
[...]

Dit gaat gedeeltelijk over iets anders: uit je commentaar voor zo'n constructor wordt ook je documentatie en intellisense informatie gehaald. Als je dus Foo(), Foo(int count), en Foo(int count, MyEnum whatever) hebt is het wel handig om te weten welke van de 3 je nodig hebt zonder naar de code te kijken. "Create new instance of Foo without arguments" voegt dan niks toe, maar "Create instance of foo with index set to 0, and whatever set to Bar" wel.
In de aanroepen zie je dan dus var foo1 = new Foo(); var foo2 = new Foo(3); Wat is die 3 dan?

Maak je constructors private en bied in plaats daarvan static public methods aan:
static Foo CreateFoo() { return new Foo(); }
static Foo CreateFooWithCount(int count) { return new Foo(count); }

Daarmee wordt in de aanroep var foo = Foo.CreateFooWithCount(15);meteen duidelijk waar de numerieke waarde voor dient.
Bovendien: No "new"s is good news _/-\o_

Q: Why do developers like Dark Mode? A: Because light attracts bugs!


Acties:
  • 0 Henk 'm!

  • .oisyn
  • Registratie: September 2000
  • Laatst online: 16:37

.oisyn

Moderator Devschuur®

Demotivational Speaker

jip_86 schreef op woensdag 04 juli 2012 @ 21:53:
C#:
1
2
3
4
5
public void RandomPropertyChanged()
{
   // je zou hier dit of dat verwachten maar dat gebeurt op plek x
   code;
}
Of:
C#:
1
2
3
4
5
6
public void RandomPropertyChanged()
{
   // je zou hier dit of dat verwachten maar dat gebeurt op plek x
plek x:
   code;
}

Just to fuck with people :P

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


Acties:
  • 0 Henk 'm!

  • .oisyn
  • Registratie: September 2000
  • Laatst online: 16:37

.oisyn

Moderator Devschuur®

Demotivational Speaker

avdongen schreef op woensdag 04 juli 2012 @ 22:07:
[...]

In de aanroepen zie je dan dus var foo1 = new Foo(); var foo2 = new Foo(3); Wat is die 3 dan?
new Foo(count: 3)

Kan natuurlijk niet in alle talen, maar het is bovendien optioneel waardoor het dus ook achterwege gelaten kan (en dus zal) worden.

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


Acties:
  • 0 Henk 'm!

  • avdongen
  • Registratie: November 2006
  • Laatst online: 20-09 23:08
.oisyn schreef op woensdag 04 juli 2012 @ 22:09:
[...]

new Foo(count: 3)

Kan natuurlijk niet in alle talen, maar het is bovendien optioneel waardoor het dus ook achterwege gelaten kan (en dus zal) worden.
De standaard ruleset van ReRharper keurt dit ook af als het geheel redundant is, dit is vast om dezelfde reden.

Q: Why do developers like Dark Mode? A: Because light attracts bugs!


Acties:
  • 0 Henk 'm!

  • Caelorum
  • Registratie: April 2005
  • Laatst online: 00:17
RayNbow schreef op woensdag 04 juli 2012 @ 21:30:
[...] Tijd voor een IDE waarin de editor ook een canvas is? :p Misschien een Visual Studio Surface editie voor de Surface Pro? :+
Zoals dit?
Afbeeldingslocatie: http://i3.codeplex.com/Download?ProjectName=editorsamples&DownloadId=68961
What's shown in this sample:

- Drag & drop images from Solution Explorer or from outside Visual Studio to a code file
- Freely move around and resize the image, the text will automatically move to fit the image
Bovenstaande is voor VS2012 RC, maar er is er ook 1 voor VS2010 onder de naam "Image Insertion"

[ Voor 55% gewijzigd door Caelorum op 04-07-2012 23:59 ]


Acties:
  • 0 Henk 'm!

  • bwerg
  • Registratie: Januari 2009
  • Niet online

bwerg

Internettrol

Gomez12 schreef op woensdag 04 juli 2012 @ 21:42:
[...]

Tja, dat is nu eenmaal de dunne scheidslijn.

Bij prive projectjes heb ik over het algemeen zoiets van : als ik erover na moet denken heb ik comments nodig.
Maarja, dat heeft me in het verleden al meerdere keren opgebroken (na 3 dagen natuurkundige problemen ploep ik op de 4e dag er zomaar wat dingen uit zonder na te denken die ik een half jaar later niet meer 1-2-3 begrijp)
'T is niet dat ik puur geen zin heb in dat commentaar. Het is alleen dat er formules staan waar een uur rekenwerk en omschrijfwerk op papier in heeft gezeten. Uitleg waardoor je het snapt omvat dan dus vaak gewoon een hoofdstuk uit een natuurkundeboek, dat ga ik niet copy-pasten.

Mijn kladblok is dus documentatie. :P En als iemand anders zo nodig in die code wil gaan rommelen, dan zal hij alsnog het hele idee moeten snappen en dus gewoon het desbetreffende hoofdstuk uit het boek moeten gaan lezen en de formules zelf af gaan leiden, voordat er mee te rommelen is.

Maar goed, het meeste werk zit hem dan ook niet in de code schrijven maar gewoon in wiskunde. Geen wonder dat documentatie dan niet helpt, want als documentatie wiskunde duidelijker zou maken dan zouden colleges wiskunde/natuurkunde niet nog gewoon op een schoolbord met krijtjes zijn. :+

[ Voor 11% gewijzigd door bwerg op 05-07-2012 00:30 ]

Heeft geen speciale krachten en is daar erg boos over.


Acties:
  • 0 Henk 'm!

  • RayNbow
  • Registratie: Maart 2003
  • Laatst online: 21:38

RayNbow

Kirika <3

Met een canvas bedoelde ik meer iets als dat wat OneNote aanbiedt: direct met je pen kunnen kladden. :p

Ipsa Scientia Potestas Est
NNID: ShinNoNoir


Acties:
  • 0 Henk 'm!

  • MBV
  • Registratie: Februari 2002
  • Laatst online: 21:04
.oisyn schreef op woensdag 04 juli 2012 @ 21:24:
[...]

De enige comments die ik meestal schrijf zijn aannames en waarom iets gedaan wordt.
Dat zijn direct de meest waardevolle. En direct ook de moeilijkste comments om zo op te schrijven dat je ze over 3 weken ook nog snapt ;) Soms leg ik in comments ook het algoritme dat ik gebruik in het kort uit, als de implementatie 100 regels is en de omschrijving 5 regels.
avdongen schreef op woensdag 04 juli 2012 @ 22:07:
[...]

In de aanroepen zie je dan dus var foo1 = new Foo(); var foo2 = new Foo(3); Wat is die 3 dan?
bijvoorbeeld new Vector(25), en als je dan niet direct weet dat 25 het initiele aantal elementen is dan hoover je even over Vector heen en zie je het alsnog.

Verstoppen achter een verder nutteloze wrapper vind ik niet echt handig: dat is bij elke wijziging dubbel werk.

Acties:
  • 0 Henk 'm!

  • abeker
  • Registratie: Mei 2002
  • Laatst online: 05-05 11:32

abeker

...

MBV schreef op donderdag 05 juli 2012 @ 08:37:
[...]
bijvoorbeeld new Vector(25), en als je dan niet direct weet dat 25 het initiele aantal elementen is dan hoover je even over Vector heen en zie je het alsnog.
Maar waarom moet het aantal initiële elementen 25 zijn? Waarom niet 26? De reden voor die keuze kun je in commentaar zetten.

the less one forgets, the less one remembers


Acties:
  • 0 Henk 'm!

  • Kanarie
  • Registratie: Oktober 2000
  • Laatst online: 00:14

Kanarie

תֹ֙הוּ֙ וָבֹ֔הוּ

abeker schreef op donderdag 05 juli 2012 @ 08:59:
[...]

Maar waarom moet het aantal initiële elementen 25 zijn? Waarom niet 26? De reden voor die keuze kun je in commentaar zetten.
Of imo nog beter: zonder commentaar maar met een duidelijke variabele of constante naam.
Comments rotten zonder dat je het door hebt.

We're trapped in the belly of this horrible machine. And the machine is bleeding to death.


Acties:
  • 0 Henk 'm!

  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 21-09 02:21

Janoz

Moderator Devschuur®

!litemod

Ik wilde reageren, maar Kanarie zei al precies wat ik wilde zeggen :) . Magic constants are bad mkay

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'


Acties:
  • 0 Henk 'm!

  • .oisyn
  • Registratie: September 2000
  • Laatst online: 16:37

.oisyn

Moderator Devschuur®

Demotivational Speaker

Inderdaad. Zo dus:
C#:
1
2
3
const int cTwentyFive = 25;

var v = new ArrayList(cTwentyFive);


:+

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


Acties:
  • 0 Henk 'm!

  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 21-09 02:21

Janoz

Moderator Devschuur®

!litemod

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'


Acties:
  • 0 Henk 'm!

  • Feyd-Rautha
  • Registratie: November 2001
  • Laatst online: 02-08 23:34
Intentional Programming ?
Wikipedia: Intentional programming

I must not fear. Fear is the mind-killer. Fear is the little-death that brings total obliteration. I will face my fear. I will permit it to pass over me and through me. Where the fear has gone there will be nothing. Only I will remain.


Acties:
  • 0 Henk 'm!

  • MBV
  • Registratie: Februari 2002
  • Laatst online: 21:04
Janoz schreef op donderdag 05 juli 2012 @ 09:29:
Ik wilde reageren, maar Kanarie zei al precies wat ik wilde zeggen :) . Magic constants are bad mkay
Het was *&(#^%$*(&# een voorbeeldje 8)7 Ik ga geen compleet enterprise-framework neerzetten om een voorbeeld neer te zetten :X

En bij een vector zou ik als commentaar erbij zetten dat na uitgebreid experimenteren is gebleken dat de meeste instanties niet groter worden dan 25.

Ik zal nog eens wat neerzetten hier...

[ Voor 4% gewijzigd door MBV op 05-07-2012 11:27 ]


Acties:
  • 0 Henk 'm!

  • .oisyn
  • Registratie: September 2000
  • Laatst online: 16:37

.oisyn

Moderator Devschuur®

Demotivational Speaker

Geez, don't get your panties in a knot. 't Is niet alsof je niet wist hoe het er in deze topic aan toeging 8)7

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


Acties:
  • 0 Henk 'm!

  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 21-09 02:21

Janoz

Moderator Devschuur®

!litemod

@MBV: Was niet een opmerking over je code, maar bijval voor de opmerking over het bezwaar van abeker die een in mijn ogen onjuiste reden voor commentaar gevonden had ;)

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'


Acties:
  • 0 Henk 'm!

  • Jeldert
  • Registratie: Juni 2001
  • Niet online

Jeldert

Rozijntjes

Keeper schreef op woensdag 04 juli 2012 @ 17:19:
[...]

Code spreekt natuurlijk altijd de waarheid, dat is namelijk wat wordt uitgevoerd ;-).

Daarnaast kan je dan in je versiebeheer kijken welke van de 2 out-of-date is, mocht het belangrijk zijn.
Ik doelde meer op verschil in edge-cases, waar de code en commentaar elkaar tegenspreken, en niet meteen duidelijk is wat het correcte gedrag zou moeten zijn.

Immers, als code altijd de waarheid spreekt, zijn er blijkbaar nooit onjuist geïmplementeerde functies.
.oisyn schreef op donderdag 05 juli 2012 @ 09:33:
Inderdaad. Zo dus:
C#:
1
2
3
const int cTwentyFive = 24;

var v = new ArrayList(cTwentyFive);


:+

Juist


Acties:
  • 0 Henk 'm!

  • .oisyn
  • Registratie: September 2000
  • Laatst online: 16:37

.oisyn

Moderator Devschuur®

Demotivational Speaker

Maar dat is het voordeel van een constante he, dat je 'm makkelijk aan kunt passen :Y)

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


Acties:
  • 0 Henk 'm!

  • R4gnax
  • Registratie: Maart 2009
  • Laatst online: 06-09 17:51
MBV schreef op donderdag 05 juli 2012 @ 11:26:
En bij een vector zou ik als commentaar erbij zetten dat na uitgebreid experimenteren is gebleken dat de meeste instanties niet groter worden dan 25.
C#:
1
2
3
4
5
6
7
8
9
10
11
/// <summary>
/// Initializes a new instance of the <see cref="Vector"/> class,
/// using a default initial capacity of 25 elements.
/// </summary>
/// <remarks>
/// An initial capacity of 25 elements has been proven an efficient
/// default value for most use cases.
/// </remarks>
public Vector() {
  // ...
}


Kijk, daar heb je dus API commentaar bij default constructors voor. :9

Acties:
  • 0 Henk 'm!

  • HeSitated
  • Registratie: April 2009
  • Laatst online: 03-12-2024
.oisyn schreef op donderdag 05 juli 2012 @ 12:15:
Maar dat is het voordeel van een constante he, dat je 'm makkelijk aan kunt passen :Y)
Maaaaarrrrr aan constantes zit ook een (heel groot) risico....

Men neme een dll met een daarin een public constante en programma waarin die constante wordt aangeroepen.

Niets aan het handje zou je zeggen....

Nu wordt de dll vervangen door een andere met dezelfde API, maar een andere waarde voor die constante.....

Welke waarde zal het aanroepende programma gebruiken? })

Overigens geldt dit ook voor optional parameters in een method....

Daarom private constantes prima, voor public "constantes" gebruik ik readonly properties...

Acties:
  • 0 Henk 'm!

  • Kwistnix
  • Registratie: Juni 2001
  • Laatst online: 22-09 15:24
Ligt er aan. In Java wordt de constante tijdens compilatie in de constant pool van de .class file van de aanroepende code overgenomen.

Acties:
  • 0 Henk 'm!

  • Jegorex
  • Registratie: April 2004
  • Laatst online: 03-09 23:24
FallenAngel666 schreef op donderdag 05 juli 2012 @ 20:53:
Ligt er aan. In Java wordt de constante tijdens compilatie in de constant pool van de .class file van de aanroepende code overgenomen.
Alleen als de constante final en dus readonly is.

Acties:
  • 0 Henk 'm!

  • Webgnome
  • Registratie: Maart 2001
  • Laatst online: 21:49
Een constante is toch altijd final? Althans dat lijkt me het doel van een constante. Een immutable variable die gedurende de loop van de applicatie altijd hetzelfde is.

Strava | AP | IP | AW


Acties:
  • 0 Henk 'm!

  • Mitchell
  • Registratie: Juni 2012
  • Laatst online: 22-09 13:27

Mitchell

Ondertitel

PHP:
1
2
3
4
5
6
7
8
9
10
11
    while ($r = mysql_fetch_array($sql_struct)){
        $ts_of_the_day_we_are_currently_up_to_in_the_sql_data=getDaysTS($r['transdate'])
        if($ts_of_the_day_we_are_currently_up_to_in_the_sql_data>=$tsDaysAgo){
            if($ts_of_the_day_we_are_currently_up_to_in_the_sql_data==$currDay){
                $dailyTot+=$r['amount'];
            }else{
                $currDay=$ts_of_the_day_we_are_currently_up_to_in_the_sql_data;
                $dailyTot=$r['amount'];
            }
        }
    }

Deze vond ik net online. Ik krijg er spontaan hoofdpijn van.

Signature


Acties:
  • 0 Henk 'm!

  • Hydra
  • Registratie: September 2000
  • Laatst online: 21-08 17:09
bwerg schreef op woensdag 04 juli 2012 @ 21:21:
Ik vind dat alle programmeurs een keer een programma moeten schrijven dat een moeilijk natuurkundig probleem oplost, dan hoor je nooit meer dat gezeur over dat alle code voor zichzelf moet kunnen spreken. :+
Dat is een heel ander issue en ik denk dat vrijwel niemand wil beweren dat uitleggen wat je aan het doen bent in de code, als dat de onderhoudbaarheid ten goede komt, nuttig is. Maar een functie "getId()" met als commentaar "returns the ID" is natuurlijk compleet nutteloze tijdsverspilling.
Webgnome schreef op donderdag 05 juli 2012 @ 23:20:
Een constante is toch altijd final? Althans dat lijkt me het doel van een constante. Een immutable variable die gedurende de loop van de applicatie altijd hetzelfde is.
Java kent uberhaupt geen "const" keyword o.i.d. (tenzij er in 1.7 iets veranderd is), dus in princiepe heeft Java geen 'constants'. Als een java dev het over een constante heeft, is het meestal een static final classmember.

[ Voor 29% gewijzigd door Hydra op 06-07-2012 11:19 ]

https://niels.nu


Acties:
  • 0 Henk 'm!

  • Zarc.oh
  • Registratie: November 2000
  • Laatst online: 16-05 16:24

Zarc.oh

heeft een HD van 20 YottaByte

Rara, hoeveel </html>-tags kun je gebruiken?

HTML:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</html>
</html>
<html>
<head>
      <title>*KNIP*</title>
      <LINK REL="SHORTCUT ICON" HREF="*KNIP*">
      
<script>
<!--

var url  = window.parent.location+"*KNIP*";

// ---------------------------------------------------------------------------\\

var path = "<#MODULENAME>/";
if (path.indexOf("MODULENAME") == -1)
{  blank  = path+"wpmBlank"
   border = path+"wpmBorder"
} else
{  blank  = "Blank.html"
   border = "Border.html"
}

//----------------------------------------------------------------------------\\
start = '<frameset  rows="*,25">'
      + '  <frame name="base" src="'+url+'" marginwidth=0 marginheight=0 scrolling=no frameborder=0 noresize>'
      + '  <frameset  cols="2,*,2">'
      + '    <frame name="border" src="'+border+'" marginwidth="0" marginheight="0" scrolling="no" frameborder="0" noresize>'
      + '    <frameset  rows="2,*,2">'
      + '      <frame name="border" src="'+border+'" marginwidth="0" marginheight="0" scrolling="no" frameborder="0" noresize>'
      + '      <frame name="blank"  src="'+url+'wpmFooter" marginwidth="0" marginheight="0" scrolling="no" frameborder="0" noresize>'
      + '      <frame name="border" src="'+border+'" marginwidth="0" marginheight="0" scrolling="no" frameborder="0" noresize>'
      + '    </frameset>'
      + '    <frame name="border" src="'+border+'" marginwidth="0" marginheight="0" scrolling="no" frameborder="0" noresize>'
      + '  </frameset>'
      + '</frameset>';
// -->
document.write(start);
</script>
</head>
<noframes>
   <br><br><br>
   Uw internet-browser ondersteunt geen frames. Neem contact op met <a href="mailto:<#ADMINISTRATOREMAIL>">de beheerder</a>
</noframes>

</html>
</html>

Zoek wat je niet eerder vond


Acties:
  • 0 Henk 'm!

  • king_charles
  • Registratie: Maart 2008
  • Laatst online: 15-08-2023
Ik geloof niet dat we dit nog html moeten noemen :P

Acties:
  • 0 Henk 'm!

  • EddoH
  • Registratie: Maart 2009
  • Niet online

EddoH

Backpfeifengesicht

Jeej, een code review voor code uit india!
Een klein voorbeeldje:

code:
1
private static final String CALBAK_LOGFILE = "CallbackLog.txt";

Acties:
  • 0 Henk 'm!

  • Freeaqingme
  • Registratie: April 2006
  • Laatst online: 23:15
EddoH schreef op vrijdag 06 juli 2012 @ 16:48:
Jeej, een code review voor code uit india!
Seriously? Is dat niet mega frusterend?

No trees were harmed in creating this message. However, a large number of electrons were terribly inconvenienced.


Acties:
  • 0 Henk 'm!

  • EddoH
  • Registratie: Maart 2009
  • Niet online

EddoH

Backpfeifengesicht

Ja.

Ik kan eigenlijk de hele code wel in dit topic posten...

code:
1
2
3
4
    protected Dialog onCreateDialog(int id) 
    {
        switch (id) {
            case CAPTURE_DILOG_KEY: {


Dit zijn natuurlijk alleen de most obvious dingen. Over de structuur etc zal ik het maar niet hebben...

[ Voor 65% gewijzigd door EddoH op 06-07-2012 16:55 ]


Acties:
  • 0 Henk 'm!

  • Apache
  • Registratie: Juli 2000
  • Laatst online: 22-09 09:01

Apache

amateur software devver

Freeaqingme schreef op vrijdag 06 juli 2012 @ 16:49:
[...]


Seriously? Is dat niet mega frusterend?
Ach, meestal is wat vooraf gaat aan de code die geschreven moet worden nog veel frustrerender :P

Zo heb ik ooit voor een label property change van een button een Indische "collega" moeten doorverwijzen naar onze business analist, deze heeft na 1,5h ook opgegeven en de chatlog van hem en deze indische collega bezorgd aan zijn bazen ... natuurlijk met weinig effect, want ze zijn toch o zo goedkoop, de 2h die ik er had ingestoken en de 1,5h onze ba niet meegerekend uiteraard.

De doorverwijzing naar de ba was ook het enige vredevolle alternatief, ik was tijdens dat ik hem uitleg aan het verschaffen was al dusdanig opgefokt dat ik naar prijzen aan het kijken was van een vliegtuigticket naar india om hem dat even in volle fysieke aanwezigheid ostentatief uit te leggen met mijn vinger op het scherm welke knop het nieuwe label zou moeten krijgen en welke andere knop het label van de oude knop moest krijgen.

Hij heeft trouwens ook een tijdje in brussel zelf gewerkt, toen was hij nog sysadmin, maar ze hadden hem beloofd dat hij ooit kon doorgroeien naar developer ... zo'n belofte hadden ze dan ook beter niet gemaakt.

Nu werk ik met een hele chain aan lokale mensen, wat een verademing, kost misschien iets meer, bespaart niet enkel tijd, communicatie problemen, maar ook mensen die heel erg meedenken richting het eind product, onze testers doen niet gewoon hun job uitstekend, ze denken ook nog mee na!

If it ain't broken it doesn't have enough features


Acties:
  • 0 Henk 'm!

  • cpf_
  • Registratie: Februari 2011
  • Laatst online: 20-07-2022
Voor momenten als dat: VNC, TeamViewer, etc... Komt dicht in de buurt met die vinger waarover je het had.
Aan de andere kant: Kan je het meteen misschien zelf doen, mabon, dat buiten beschouwing.

For the record: Ik werk hier ook samen met Indische mensen (1 developer, 1 tester)
Beiden doen hun job goed, misschien zijn ze de uitzondering?

[ Voor 27% gewijzigd door cpf_ op 06-07-2012 17:06 ]


Acties:
  • 0 Henk 'm!

  • EddoH
  • Registratie: Maart 2009
  • Niet online

EddoH

Backpfeifengesicht

cpf_ schreef op vrijdag 06 juli 2012 @ 17:05:
For the record: Ik werk hier ook samen met Indische mensen (1 developer, 1 tester)
Beiden doen hun job goed, misschien zijn ze de uitzondering?
Dat ligt er maar net aan wat je referentie is natuurlijk :Y)

Seriously, er zullen vast goeie tussen zitten

Acties:
  • 0 Henk 'm!

  • CodeCaster
  • Registratie: Juni 2003
  • Niet online

CodeCaster

Can I get uhm...

Als ik de voorgaande discussies in diverse topic op GoT negeer en moet afgaan op de vragen van Indiërs en hun profielen die ik op Stack Overflow tegenkom, zijn ze zonder uitzondering inherent slecht.

Zo zie ik erg vaak mensen die claimen een bachelor of zelfs master in CompSci te bezitten/zijn, samen met twee of meer jaren werkervaring, en dan nog fundamentele begrippen niet begrijpen. 't Zijn ook stuk voor stuk mensen die letterlijk met PHP aan het prutsen zijn (en dan doel ik voor de verandering op hun kunde, niet op de taal).

Natuurlijk is dat niet alles wat de markt te bieden heeft, maar het zegt wel iets over het niveau van degenen die zich op internet begeven.

[ Voor 11% gewijzigd door CodeCaster op 06-07-2012 17:30 ]

https://oneerlijkewoz.nl
Op papier is hij aan het tekenen, maar in de praktijk...


Acties:
  • 0 Henk 'm!

  • Avalaxy
  • Registratie: Juni 2006
  • Laatst online: 22:53
Ach, CS is ook maar heel erg theoretisch (als we het over universiteitsniveau hebben), die zullen je vast de complexiteit van een algoritme uit kunnen leggen, maar netjes codes leert men daar over het algemeen niet.

Acties:
  • 0 Henk 'm!

  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 21-09 02:21

Janoz

Moderator Devschuur®

!litemod

Om de complexiteit van een algoritme uit te kunnen leggen zul je iig moeten weten wat de flow door dat algoritme is.

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'


Acties:
  • 0 Henk 'm!

Verwijderd

Alsof er in een vak als dit waar kwaliteitsboeken zo toegankelijk zijn nog een excuus is voor de allerhande meuk die voorbij komt in dit topic. En dan mag het natuurlijk geen fluit uitmaken dat je uit India komt...

Acties:
  • 0 Henk 'm!

  • RayNbow
  • Registratie: Maart 2003
  • Laatst online: 21:38

RayNbow

Kirika <3

Avalaxy schreef op vrijdag 06 juli 2012 @ 17:32:
Ach, CS is ook maar heel erg theoretisch (als we het over universiteitsniveau hebben), die zullen je vast de complexiteit van een algoritme uit kunnen leggen, maar netjes codes leert men daar over het algemeen niet.
Netjes code kloppen wordt er wel ingehamerd tijdens de practicumuren, hoor. :p

(en helemaal tijdens het vak Software Kwaliteit en Testen)

Ipsa Scientia Potestas Est
NNID: ShinNoNoir


Acties:
  • 0 Henk 'm!

  • R4gnax
  • Registratie: Maart 2009
  • Laatst online: 06-09 17:51
Avalaxy schreef op vrijdag 06 juli 2012 @ 17:32:
Ach, CS is ook maar heel erg theoretisch (als we het over universiteitsniveau hebben), die zullen je vast de complexiteit van een algoritme uit kunnen leggen, maar netjes codes leert men daar over het algemeen niet.
Elke goede CS opleiding zal ook het vakgebied Software Engineering behandelen. Daarnaast dien je met een universitaire graad in CS ook zeker aangeleerd te hebben gekregen om op eigen initiatief je kennis niveau bij te werken. Het wordt er redelijk ingehamerd en na het eerste jaar zal het voor de meesten duidelijk zijn dat zelfstanding kennis opdoen een vereiste is om een CS opleiding op universitair niveau af te ronden. Dat is ook het moment waarop de meesten afhaken; niet bereid de extra moeite er in te steken of kunnen het simpelweg niet bolwerken.

Kan me indenken dat het niveau van de gemiddeld universitaire CS opleiding in India wellicht wat lager ligt dan de goed geregeldeopleidingen in bijv. Nederland, waar de kwaliteit gewaarborgd wordt. Daardoor zou je wellicht makkelijker jezelf met copy&paste en broddelwerk kunnen redden.

Acties:
  • 0 Henk 'm!

  • Spockz
  • Registratie: Augustus 2003
  • Laatst online: 21-09 10:08

Spockz

Live and Let Live

R4gnax schreef op vrijdag 06 juli 2012 @ 22:20:
[...]
Kan me indenken dat het niveau van de gemiddeld universitaire CS opleiding in India wellicht wat lager ligt dan de goed geregeldeopleidingen in bijv. Nederland, waar de kwaliteit gewaarborgd wordt.
Helaas... Ik heb van dichtbij mee mogen maken hoe in veel gevallen de normering maar wordt aangepast omdat veel studenten het vak anders niet zouden halen. Puur en gewoon omdat ze hun huiswerk niet doen. Dit wordt dan of op de docent afgeschoven of op andere dingen. Maar ik zou zeker niet durven te stellen dat de kwaliteit gewaarborgd is op Nederlandse universiteiten.

C'est le ton qui fait la musique. | Blog | @linkedin
R8 | 18-55 IS | 50mm 1.8 2 | 70-200 2.8 APO EX HSM | 85 1.8


Acties:
  • 0 Henk 'm!

  • Sebazzz
  • Registratie: September 2006
  • Laatst online: 20:50

Sebazzz

3dp

RayNbow schreef op vrijdag 06 juli 2012 @ 20:56:
[...]

Netjes code kloppen wordt er wel ingehamerd tijdens de practicumuren, hoor. :p

(en helemaal tijdens het vak Software Kwaliteit en Testen)
Is dat software, kwaliteit en testen of softwarekwaliteit en testen?

[Te koop: 3D printers] [Website] Agile tools: [Return: retrospectives] [Pokertime: planning poker]


Acties:
  • 0 Henk 'm!

  • RayNbow
  • Registratie: Maart 2003
  • Laatst online: 21:38

RayNbow

Kirika <3

Sebazzz schreef op vrijdag 06 juli 2012 @ 22:43:
[...]

Is dat software, kwaliteit en testen of softwarekwaliteit en testen?
"Softwarekwaliteit en testen". De onjuiste spatie sloop erin door de afkorting SKT die vaak gebruikt werd. :p

Ipsa Scientia Potestas Est
NNID: ShinNoNoir


Acties:
  • 0 Henk 'm!

  • farmertjes
  • Registratie: Maart 2010
  • Laatst online: 02-06 20:29
Misschien moet ik 't toch maar eens posten ...

Een jaar terug werkte ik bij een bedrijf dat had besloten om hun eigen software te ontwikkelen en database te onderhouden omdat dit goedkoper zou zijn dan standaardpakketten op maat te laten maken en te laten onderhouden. Normaal gezien allemaal geen probleem ware het niet dat alle mensen op posities waar de belangrijke beslissingen genomen werden op die positie waren gekomen door leeftijd en niet vanwege kennis. Hier begint dan ook eigenlijk het verhaal.

Het bedrijf is namelijk eigenlijk een samenvoeging van een 3-tal kleinere bedrijven die besloten te fuseren. Er waren dus vele softwarepakketten om dezelfde taak te verrichten en daarom werd besloten om te proberen dit zoveel mogelijk uniform te maken. Gelukkig hadden alledrie de bedrijven hetzelfde personeelsadministratie programma dus hiervoor hoefde alleen maar de drie databases samengevoegd te worden. Simpel ...

Ware het niet dat een van de bedrijven had besloten om zelf tabellen toe te voegen aan deze "gesloten" database en om bestaande tabellen uit te breiden. Veel hoofdpijn werk dus om te migreren. Na 3 maanden inventariseren en testen hadden we alle afhankelijke applicaties in beeld en de script klaarstaan en wilde we de knop indrukken toen we ineens een telefoontje kregen van de projectleider ... een specialist op BTW vlak. Nu vraag je je misschien af wat een specialist op BTW vlak als hoofd van een dergelijk IT project doet ... deze arme man wilde nog voor zijn pensioen een prestigieus project leiden en heeft al zijn credits en goodwill ingezet om dit voor elkaar te krijgen .. gelukt dus.

Deze man vertelde ons dat we er wel rekening mee moesten houden dat de unique identifiers in de database een extra betekenis hebben. Ik zal dit even toelichten met een voorbeeld ... Je bent een groot bakkerij bedrijf en om snel in je database te kunnen zien wat voor een bakker een werknemer is sorteer je ze op unique identifier ... alle broodbakker zitten in de range 0-10, de pattisiers 11-20, de zoete broodjes bakkers 21-30 ...
Het probleem zie je misschien al wel aankomen, de ranges begonnen vol te raken (meer dan 10 broodbakkers) en dit systeem moest kosten wat kost gehandhaafd blijven. Er moest dus ruimte gemaakt worden in de samengevoegde database en er werd door de specialist op gebied van BTW besloten om iedereen die voor 2010 uit dienst was te verwijderen uit de database.

Op dat moment gingen bij ons alle bellen rinkelen ... dit was namelijk een op z'n zachtst gezegd onwijs besluit. Er waren namelijk een hoop software pakketten afhankelijk van de personeelsdatabase. Het verwijderen van personen uit de database betekend dat de historie van deze andere pakketten nooit meer de betreffende persoon terug kan vinden ... sterker nog ... omdat de unique identifiers herbruikt zouden worden zou deze historie aan de volledig verkeerde persoon hangen. Op dat moment hebben wij dan ook aangegeven dat dit besluit niet de juiste was en zeker 3 maanden extra werk voor 2 man op zou leveren (je wil namelijk wel even testen of het loonadministratie systeem loon overmaakt naar de juiste persoon).

Gelukkig is het zo dat mensen zonder verstand van IT in deze branch altijd erg open staan voor goede ideeen ... dus moest deze persoon even laten zien hoe groot z'n kleine vriend wel niet was en dus dit idee er doorheen drukken.

De enige oplossing die ons restte was het maken van 3 historie databases voor iedereen die voor 2010 uit dienst was en ingewikkelde script die ervoor moesten zorgen dat alle software de juiste database zou kiezen voor de juiste persoon.

En zo is het gekomen dat er na 6 maanden fulltime werk ... door 4 man ... van 3 databases ... uiteindelijk 4 zijn gemaakt.

(het was natuurlijk geen bakkerij zoals je misschien wel begrijpt maar ik had wat voorbeelden nodig)

flickr


Acties:
  • 0 Henk 'm!

  • Avalaxy
  • Registratie: Juni 2006
  • Laatst online: 22:53
Dat sommige mensen een baan mogen hebben |:(

Acties:
  • 0 Henk 'm!

  • Webgnome
  • Registratie: Maart 2001
  • Laatst online: 21:49
Zucht.. Dit soort voorbeelden doen mij echt nadenken over waar de prioriteiten liggen bij bepaalde mensen.

1. Goedkope ICT
2. Goede ICT

Dit is maar weer eens een leuk voorbeeld van puntje 1.

Strava | AP | IP | AW


Acties:
  • 0 Henk 'm!

  • bwerg
  • Registratie: Januari 2009
  • Niet online

bwerg

Internettrol

Als die bepaalde mensen verstand hebben van zaken, dan weten ze dat "goedkoop is duurkoop" heel erg van toepassing is in de ICT en dan lijken beide opties misschien best wel op elkaar. Als ze geen verstand van zaken hebben, dan wordt het slecht én duur...

Heeft geen speciale krachten en is daar erg boos over.


Acties:
  • 0 Henk 'm!

  • MBV
  • Registratie: Februari 2002
  • Laatst online: 21:04
Avalaxy schreef op vrijdag 06 juli 2012 @ 17:32:
Ach, CS is ook maar heel erg theoretisch (als we het over universiteitsniveau hebben), die zullen je vast de complexiteit van een algoritme uit kunnen leggen, maar netjes codes leert men daar over het algemeen niet.
Nee, CS in landen buiten Nederland (o.a. Turkije) is meer het HBO hier: erg toegepast. Dat weet ik van internationale studenten die hun master in Eindhoven deden. Hetzelfde begreep ik ook van de Indiers waar ik mee heb gewerkt.
Over het niveau: er zaten tussen de 10 developers uit India (Infosys) 2 of 3 'mindere goden' zoals je ze ook in Nederland wel tegenkomt: als je het goed uitlegt krijgen ze het zelf voor elkaar, en ze durven je af en toe te vragen hoe ze verder moeten. De rest was beneden alle peil.
1 developer heb ik 3 of 4 weken lang begeleid (25-50% van mijn tijd) om iets te implementeren. Ik ben toen naar mijn baas gegaan, en heb gezegd dat het eind nog niet in zicht was, en dat ik het in 2 dagen zelf zou doen i.p.v. nog 2 weken begeleiden. Ik kon er echt niet meer tegen. En inderdaad: wat haar in 3 weken niet was gelukt had ik in 2 dagen werkend :X
RayNbow schreef op vrijdag 06 juli 2012 @ 20:56:
[...]

Netjes code kloppen wordt er wel ingehamerd tijdens de practicumuren, hoor. :p

(en helemaal tijdens het vak Software Kwaliteit en Testen)
Ik had een collega-student bij CSE in Eindhoven die echt geen code kon schrijven. Ja, een stukje pseudo-code van maximaal 1 A4. Maar zodra het meer dan 1 pagina tekst werd was ze het overzicht compleet kwijt. En volgens mij is het enige mastervak waarvoor je C/C++ of Java (of een andere imperatieve programmeertaal) hoeft te kennen Visualisation, en zelfs daar kom je weg met een maatje die voor jouw programmeert als jij het verslag schrijft.
Functioneel programmeren, een bachelor-vak waarin je moet programmeren in Haskell, op papier, tijdens een examen, hadden veel mensen 5 examenzittingen voor nodig voor ze doorhadden dat ze daarvoor moeten oefenen. Ik had dat na de eerste keer al door ;)
Webgnome schreef op zaterdag 07 juli 2012 @ 10:33:
Zucht.. Dit soort voorbeelden doen mij echt nadenken over waar de prioriteiten liggen bij bepaalde mensen.

1. Goedkope ICT
2. Goede ICT

Dit is maar weer eens een leuk voorbeeld van puntje 1.
Klinkt meer als een voorbeeld van puntje 3:
3. ICT zoals ik het wil, ongeacht de kosten

Acties:
  • 0 Henk 'm!

  • LEDfan
  • Registratie: Juni 2012
  • Laatst online: 22:20
@Bramt, nog even over het stukje OOP.

Ik heb dus één grootte class aangemaakt, en daar in allemaal functies zoals login, register, changeprofile. Die roep ik dan aan vanuit andere bestanden.
In die class heb ik een ook een functie inzitten die kijkt of er $con bestaat, zo ja dan returnt die gewoon $con, zo niet returnt die een PDO connectie.
Een __construct ga ik waarschijnlijk ook nog gebruiken, ik ben niet echt een copy paster, alleen voor echte scripts die iets groots doen (Uitgebreid upload script o.i.d.). (En uit mijn eigen code natuurlijk) Ik ben een Engels PHP boek aan het lezen, en daar gaat wordt OOP ook in behandeld. (Zit nu in dat deel).

Acties:
  • 0 Henk 'm!

  • Voutloos
  • Registratie: Januari 2002
  • Niet online
1 grote class maakt nog geen OO. Je hebt dan een verzamelbak wat net zo goed functies hadden kunnen zijn. Het wordt met OO als je echt in objecten denkt. Dus voor de door jouw genoemde acties kom je al minstens op een User en een Session uit.

{signature}


Acties:
  • 0 Henk 'm!

  • Avalaxy
  • Registratie: Juni 2006
  • Laatst online: 22:53
LEDfan schreef op zaterdag 07 juli 2012 @ 23:22:
@Bramt, nog even over het stukje OOP.

Ik heb dus één grootte class aangemaakt, en daar in allemaal functies zoals login, register, changeprofile. Die roep ik dan aan vanuit andere bestanden.
In die class heb ik een ook een functie inzitten die kijkt of er $con bestaat, zo ja dan returnt die gewoon $con, zo niet returnt die een PDO connectie.
Een __construct ga ik waarschijnlijk ook nog gebruiken, ik ben niet echt een copy paster, alleen voor echte scripts die iets groots doen (Uitgebreid upload script o.i.d.). (En uit mijn eigen code natuurlijk) Ik ben een Engels PHP boek aan het lezen, en daar gaat wordt OOP ook in behandeld. (Zit nu in dat deel).
Klinkt als een nominatie voor dit topic. Één groot slecht programmeervoorbeeld :P

Acties:
  • 0 Henk 'm!

  • MBV
  • Registratie: Februari 2002
  • Laatst online: 21:04
Het kan erger: ik heb ooit een stuk PHP-bagger wat door 3 studenten was geschreven moeten verbeteren. Daarin zaten 3 heeeele grote classes, met namen die een stuk functionaliteit suggereerden, terwijl ze beter de 3 namen van de studenten hadden kunnen krijgen :'(

En ik zou je aanraden de topic-waarschuwing te lezen. Iedereen heeft het ooit moeten leren ;)

Acties:
  • 0 Henk 'm!

  • Firesphere
  • Registratie: September 2010
  • Laatst online: 03:16

Firesphere

Yoshis before Hoshis

Voutloos schreef op zaterdag 07 juli 2012 @ 23:43:
1 grote class maakt nog geen OO. Je hebt dan een verzamelbak wat net zo goed functies hadden kunnen zijn. Het wordt met OO als je echt in objecten denkt. Dus voor de door jouw genoemde acties kom je al minstens op een User en een Session uit.
User (add/edit/remove)
UserLevel (Admin/Mod/User)
Session (login-session => start/stop)
Preferences (Site-settings/theme/etc)
Connect (Wut? in je user-handling een db-connect functie??)

Afhankelijk van wat je wilt, kun je eeuwig opsplitsen in classes.

Hoewel enig logisch nadenken helpt, is inderdaad de vergaarbak een slecht idee.


LEDfan:
Het is leuk je eigen systeem een paar keer te schrijven, maar dit vraagt nog wel om enige ehhh, finetuning.

Probeer eens alle objecten te herkennen als object, en je krijgt een vele malen logischere structuur en code.

offtopic:
Even een edit n.a.v. MBV's post:
Ik bedoel dit absoluut niet als belachelijk maken o.i.d., maar als hulpmiddel om LEDfan een beetje de juiste richting in te helpen.

[ Voor 8% gewijzigd door Firesphere op 08-07-2012 00:54 ]

I'm not a complete idiot. Some parts are missing.
.Gertjan.: Ik ben een zelfstandige alcoholist, dus ik bepaal zelf wel wanneer ik aan het bier ga!


Acties:
  • 0 Henk 'm!

  • Avalaxy
  • Registratie: Juni 2006
  • Laatst online: 22:53
Misschien begrijp ik je verkeerd, maar een User class die add/edit/remove methods heeft? In mijn ogen is een User een entity zonder verdere kennis, een Repository zorgt er voor dat die wordt toegevoegd, verwijderd, etc.

Acties:
  • 0 Henk 'm!

  • Firesphere
  • Registratie: September 2010
  • Laatst online: 03:16

Firesphere

Yoshis before Hoshis

Avalaxy schreef op zondag 08 juli 2012 @ 00:55:
Misschien begrijp ik je verkeerd, maar een User class die add/edit/remove methods heeft? In mijn ogen is een User een entity zonder verdere kennis, een Repository zorgt er voor dat die wordt toegevoegd, verwijderd, etc.
Ik vermoed inderdaad miscommunicatie ;)

Als ik zie dat er een login-procedure is, betekend dat automatisch (voor mij) dat er een user-object moet zijn.
De controller van dat object, moet dus de add (registratie), edit (bewerken), remove (unregister/verwijderen) afhandelen en doorzetten naar het betreffende model, om het object aan te maken/bewerken/verwijderen dus.
Ik heb het verkort neergezet, ietwat onduidelijk merk ik ook bij mezelf.

Hoewel *edit* ik eerlijk toegeef, dat ik nog wel eens de controller in het model zelf zet.
Vooral als een object op tientallen plaatsen wordt aangesproken, gebruik ik graag een algemeen systeem, dus in het model, danwel in een generic extension, om de boel af te handelen, zodat ik niet op een hele hoop plekken dezelfde aanpassing hoef uit te voeren.
Hoewel dit natuurlijk niet volledig MVC is, scheelt het wel een hoop "ow shit, ben ik dat vergeten" momenten ;)
Bij voorkeur trouwens, gebruik in een extension op de controller, maar soms ben ik lui ;)

[ Voor 26% gewijzigd door Firesphere op 08-07-2012 01:05 ]

I'm not a complete idiot. Some parts are missing.
.Gertjan.: Ik ben een zelfstandige alcoholist, dus ik bepaal zelf wel wanneer ik aan het bier ga!


Acties:
  • 0 Henk 'm!

  • Caelorum
  • Registratie: April 2005
  • Laatst online: 00:17
Firesphere schreef op zondag 08 juli 2012 @ 00:59:
[...]Als ik zie dat er een login-procedure is, betekend dat automatisch (voor mij) dat er een user-object moet zijn.
De controller van dat object, moet dus de add (registratie), edit (bewerken), remove (unregister/verwijderen) afhandelen en doorzetten naar het betreffende model, om het object aan te maken/bewerken/verwijderen dus.
Ik heb het verkort neergezet, ietwat onduidelijk merk ik ook bij mezelf.
[...]
Een repository is ook niet een controller en hoort, IMO, ook gewoon bij het model. Het is deel van de data access layer waarbij vanuit de datastore het User dataobject kan worden verkregen en waarbij een User object kan worden opgeslagen in de datastore.
Ik zou het zelf meer in de trant doen van de logincontroller vraagt aan de authenticator oid om de user met een bepaalde naam en password in te loggen of wellicht doet de logincontroller dat zelf wel. Die kan dan aan de user repository vragen of die user bestaat en zo ja die user inloggen.

[ Voor 15% gewijzigd door Caelorum op 08-07-2012 10:49 ]


Acties:
  • 0 Henk 'm!

  • LEDfan
  • Registratie: Juni 2012
  • Laatst online: 22:20
Ik begrijp wel, dat men stukje OOP nog niet volledig OOP is, en er is altijd nog ruimte voor verbetering Ik ga het nog wel bekijken hoor, en het stukje OOP in mijn boek nog eens herlezen. (Maar vrees niet meteen het ergste van mijn code :P ).

EDIT: ik denk dat het eerder het probleem is dat ik wel weet hoe OOP werkt met de objecten, methods maar dat het zonder een uitgebreid voorbeeld te zien, moeilijk is om zeker te zijn van de bedoeling van het gebruik van methods, objecten en dergelijke. Ik ga dan ook wat voorbeelden zoeken. (Niet van een login systeem.)

[ Voor 40% gewijzigd door LEDfan op 08-07-2012 11:02 ]


Acties:
  • 0 Henk 'm!

  • Caelorum
  • Registratie: April 2005
  • Laatst online: 00:17
Zover ik weet is het zend framework wel een goed voorbeeld van OOP in php. Je zou eventueel even de package kunnen downloaden en er naar kunnen kijken.

Acties:
  • 0 Henk 'm!

  • LEDfan
  • Registratie: Juni 2012
  • Laatst online: 22:20
Even een updateje, ik heb mijn code nog eens bekeken, en heb de manier van verbinden nu niet meer in een functie gegoten, maar in de __construct gezet, de waardes worden bij het definiëren van de class opgegeven. Ook wordt er in de __construct een functie aangeroepen die gaat kijken of er een session is, zoniet start die er een, zoja doet die niks. De connectie variable is nu een private property.
Alle input velden van de forms worden via $_POST uitgelezen, nu vraag ik mij af of ik hier ook propertys van moet maken?

Acties:
  • 0 Henk 'm!

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 09-09 13:58

NMe

Quia Ego Sic Dico.

Topicstarter
Als je daar nou eens een nieuw topic over opent volgens De Quickstart dan kunnen we het hier ontopic houden. ;)

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


Acties:
  • 0 Henk 'm!

  • LEDfan
  • Registratie: Juni 2012
  • Laatst online: 22:20
Ik dacht al dat dit niet de plaats was om deze discussie te voeren, heb zoals je voreg een nieuw topic aangemaakt.

Acties:
  • 0 Henk 'm!

  • Down
  • Registratie: Februari 2005
  • Laatst online: 22:33
Avalaxy schreef op zondag 08 juli 2012 @ 00:55:
Misschien begrijp ik je verkeerd, maar een User class die add/edit/remove methods heeft? In mijn ogen is een User een entity zonder verdere kennis, een Repository zorgt er voor dat die wordt toegevoegd, verwijderd, etc.
Sommigen zijn van mening dat dit een Anemic Domain Model is. Zelf geef ik ook de voorkeur aan een repository (al dan niet icm een IoC container).

Mother north, how can they sleep while their beds are burning?


Acties:
  • 0 Henk 'm!

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 09-09 13:58

NMe

Quia Ego Sic Dico.

Topicstarter
LEDfan schreef op zondag 08 juli 2012 @ 15:48:
Ik dacht al dat dit niet de plaats was om deze discussie te voeren, heb zoals je voreg een nieuw topic aangemaakt.
d:)b

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


Acties:
  • 0 Henk 'm!

  • Davio
  • Registratie: November 2007
  • Laatst online: 06-01 16:46
MBV schreef op zondag 08 juli 2012 @ 00:43:
Het kan erger: ik heb ooit een stuk PHP-bagger wat door 3 studenten was geschreven moeten verbeteren. Daarin zaten 3 heeeele grote classes, met namen die een stuk functionaliteit suggereerden, terwijl ze beter de 3 namen van de studenten hadden kunnen krijgen :'(

En ik zou je aanraden de topic-waarschuwing te lezen. Iedereen heeft het ooit moeten leren ;)
Ach, een collega van mij houdt ervan om zowel zijn excepties, events en eigenlijk alle meuk in één klasse te gooien.

Visual Studio heeft gewoon moeite met het genereren van een lijstje van alle methodes en properties in de balk bovenaan de klasse.

Acties:
  • 0 Henk 'm!

  • Matis
  • Registratie: Januari 2007
  • Laatst online: 22-09 14:14

Matis

Rubber Rocket

Wat ik wilde: Een stukje code (synchronisatie tussen twee databases) mocht maar een keer per dag uitgevoerd worden en wel tussen 3 en 4 uur 's nachts.
Ik had onderstaande check toegevoegd aan een stukje code dat iedere 30 minuten uitgevoerd wordt (het herstarten van session)
C#:
1
2
3
4
if ((DateTime.Now.Hour != _previousHour) && (DateTime.Now.Hour == 3))
{
  _previousHour = DateTime.Now.Hour;
}

En ik vind het maar wat vreemd dat de synchronisatie maar een keer na het starten van de applicatie uitgevoerd werd en daarna nooit meer :$

Nu de toewijzing buiten de check gehaald en alles werkt nu een stuk beter :+

If money talks then I'm a mime
If time is money then I'm out of time


Acties:
  • 0 Henk 'm!

  • Coca-Cola
  • Registratie: Maart 2001
  • Laatst online: 22:58
Matis schreef op maandag 09 juli 2012 @ 12:06:
Wat ik wilde: Een stukje code (synchronisatie tussen twee databases) mocht maar een keer per dag uitgevoerd worden en wel tussen 3 en 4 uur 's nachts.
Ik had onderstaande check toegevoegd aan een stukje code dat iedere 30 minuten uitgevoerd wordt (het herstarten van session)
C#:
1
2
3
4
if ((DateTime.Now.Hour != _previousHour) && (DateTime.Now.Hour == 3))
{
  _previousHour = DateTime.Now.Hour;
}

En ik vind het maar wat vreemd dat de synchronisatie maar een keer na het starten van de applicatie uitgevoerd werd en daarna nooit meer :$

Nu de toewijzing buiten de check gehaald en alles werkt nu een stuk beter :+
Is dat niet een beetje tricky? Wat als het uur veranderd tussen de check en toewijzing (toegegeven, niet heel waarschijnlijk) :+ ?

Acties:
  • 0 Henk 'm!

  • Davio
  • Registratie: November 2007
  • Laatst online: 06-01 16:46
Het kan zelfs binnen de check nog wijzigen.

Acties:
  • 0 Henk 'm!

  • Matis
  • Registratie: Januari 2007
  • Laatst online: 22-09 14:14

Matis

Rubber Rocket

Coca-Cola schreef op maandag 09 juli 2012 @ 12:21:
Is dat niet een beetje tricky? Wat als het uur veranderd tussen de check en toewijzing (toegegeven, niet heel waarschijnlijk) :+ ?
Ik doe de toewijzing voor het uitvoeren van de synchronisatie. Het kan zomaar zijn dat de synchronisatie langer duurt dan 30 minuten.
Davio schreef op maandag 09 juli 2012 @ 12:23:
Het kan zelfs binnen de check nog wijzigen.
Dat is ook de reden dat ik meteen de toewijzing doe. En met een sampletijd van een halve periode, heb je altijd een edge te pakken.

If money talks then I'm a mime
If time is money then I'm out of time


Acties:
  • 0 Henk 'm!

  • CodeCaster
  • Registratie: Juni 2003
  • Niet online

CodeCaster

Can I get uhm...

Een stukje code (synchronisatie tussen twee databases) mocht maar een keer per dag uitgevoerd worden en wel tussen 3 en 4 uur 's nachts.
The right tool for the right job: waarom geen taakplanner / cron gebruiken?

https://oneerlijkewoz.nl
Op papier is hij aan het tekenen, maar in de praktijk...


Acties:
  • 0 Henk 'm!

  • BarôZZa
  • Registratie: Januari 2003
  • Laatst online: 17:10
Javascript pareltje van Daisycon:

code:
1
if(sLink == aDomains[iDomains].substr(0, aDomains[iDomains].length)){


_o_

Acties:
  • 0 Henk 'm!

  • Wijnbo
  • Registratie: December 2002
  • Laatst online: 22-09 14:46

Wijnbo

Electronica werkt op rook.

BarôZZa schreef op maandag 09 juli 2012 @ 23:29:
Javascript pareltje van Daisycon:

code:
1
if(sLink == aDomains[iDomains].substr(0, aDomains[iDomains].length)){


_o_
==
code:
1
if(sLink == aDomains[iDomains]){
?

edit, oh nee, dit knalt er natuurlijk altijd uit omdat strings zero-based zijn en de index altijd net 1 te hoog is...

[ Voor 17% gewijzigd door Wijnbo op 11-07-2012 09:32 ]


Acties:
  • 0 Henk 'm!

  • Soundless
  • Registratie: November 2008
  • Laatst online: 24-07 14:19
Wijnbo schreef op woensdag 11 juli 2012 @ 09:31:
[...]


==
code:
1
if(sLink == aDomains[iDomains]){
?

edit, oh nee, dit knalt er natuurlijk altijd uit omdat strings zero-based zijn en de index altijd net 1 te hoog is...
*lompe reactie*

[ Voor 15% gewijzigd door Soundless op 18-07-2012 13:47 ]


Acties:
  • 0 Henk 'm!

  • Enfer
  • Registratie: Februari 2004
  • Laatst online: 18-09 16:32
Ik kwam net dit stukje tegen op PHP.net.. ( http://www.php.net/manual/en/language.exceptions.php#104791 )

PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
To continue the execution code after throw new Exception, goto operator can be used, like this:
<?php
try {
    echo 'one';
    throw new Exception('-error-'); a:
    echo 'two';
} catch (Exception $e) {
    echo $e->getMessage();
    goto a;
}
//output: one-error-two
?>
But, goto operator can NOT be evaluate or get a value:
<?php
eval('goto a;'); //Fatal error: 'goto' to undefined label 'a'
$b = 'a';
goto $b; //Parse error: syntax error, unexpected T_VARIABLE, expecting T_STRING
?>


Whyyyyyyyyy...

Acties:
  • 0 Henk 'm!

  • .oisyn
  • Registratie: September 2000
  • Laatst online: 16:37

.oisyn

Moderator Devschuur®

Demotivational Speaker

Simpel
goto => evil
eval() => evil
goto + eval() => world domination >:)

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


Acties:
  • 0 Henk 'm!

  • CodeCaster
  • Registratie: Juni 2003
  • Niet online

CodeCaster

Can I get uhm...

Maar dat is dus gewoon een implementatie van On Error Resume Next? :)

https://oneerlijkewoz.nl
Op papier is hij aan het tekenen, maar in de praktijk...


Acties:
  • 0 Henk 'm!

  • kluyze
  • Registratie: Augustus 2004
  • Niet online
En dan gaat de code op regel 6 een exception throwen ...

Acties:
  • 0 Henk 'm!

  • CodeCaster
  • Registratie: Juni 2003
  • Niet online

CodeCaster

Can I get uhm...

Ik snap het niet. Psuedo, waarbij WebBrowser een component is dat de IE-engine implementeert:

C#:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
foreach (var uri in GoogleAPI.GetResults("site:.nl"))
{
    this.WebBrowser.NavigateTo(uri);

    if (this.WebBrowser.CookieContainer.Cookies.Where(c => !c.CookieDomain.Contains(uri.Host)).Any())
    {
        this.SitesWithThirdPartyCookies.Add(uri);
    }
}

foreach (var uri in this.SitesWithThirdPartyCookies)
{
    StuurBozeMail("info@" + uri.Host);
}


Dit heb je letterlijk in een half uurtje in elkaar gedraaid. Moet daar een afstudeerder op worden gezet?

Met een simpele crawler kom je er niet, omdat die lastig JavaScript kunnen uitvoeren, terwijl 99% van de thirdparty cookies door advertentiescripts worden gezet die bestaan uit, jawel, JavaScript.

Dan kun je tien weken besteden aan het implementeren van V8, of je smijt er gewoon een stapel hardware tegenaan en laat een aantal PC's doen alsof ze IE zijn en in een paar maanden het hele Nederlandse web afstruinen.

Voor de duidelijkheid, dit is dus geen "ontopic"-post met een slecht programmeervoorbeeld. Ik vraag me gewoon serieus af wat hier de moeilijkheid van is.

[ Voor 58% gewijzigd door CodeCaster op 13-07-2012 16:56 ]

https://oneerlijkewoz.nl
Op papier is hij aan het tekenen, maar in de praktijk...


Acties:
  • 0 Henk 'm!

  • djluc
  • Registratie: Oktober 2002
  • Laatst online: 21-09 14:28
Om het goed te doen met een juiste workflow, controle, eventuele controle van mensen en een goede schaalbaarheid is het lastig. Alleen dat stuk is nou juist op ervaring gebaseerd. Zeker als je dit vlot wilt doen als continu proces en doorlopend is een goed plan op basis van ervaring met het verwerken van grote hoeveelheden data juist zeer waardevol.

Het is niet denderend ingewikkeld maar met een constante database van sites die wijzigt dien je gewoon een goed systeem te hebben. De vacature is gericht vanuit het idee dat je dit met een simpel tooltje oplost. Vervolgens komen er problemen en dan komen wel de kosten. Of er komt een persbericht waarin staat dat de hoeveelheden onwerkbaar zijn, er personeel bij moet etc. Dat zijn zaken die je vooraf, bij invoering van zo'n wet reeds kunt aanpakken en oplossen. Dan heb je de boel geïnventariseerd, heb je een 0 punts meting gedaan waardoor je weet hoe het er voor stond voor invoering van de wet etc.

Acties:
  • 0 Henk 'm!

  • CodeCaster
  • Registratie: Juni 2003
  • Niet online

CodeCaster

Can I get uhm...

djluc schreef op vrijdag 13 juli 2012 @ 17:22:
Om het goed te doen met een juiste workflow, controle, eventuele controle van mensen en een goede schaalbaarheid is het lastig. Alleen dat stuk is nou juist op ervaring gebaseerd.
Precies, dus daar heeft een afstudeerder toch weinig te zoeken? De tooling zelf is zo geschreven, het gaat juist om de processen er omheen. Oh wacht, afstudeerders doen meer dan programmeren. :P

https://oneerlijkewoz.nl
Op papier is hij aan het tekenen, maar in de praktijk...


Acties:
  • 0 Henk 'm!

  • dcm360
  • Registratie: December 2006
  • Niet online

dcm360

Moderator Discord

HD7767 powered

Het lijkt mij echter wel interessant hoe de tool gaat bepalen of een cookie een tracking-cookie is, of dat de cookie een winkelmandje met producten bijhoud. Die laatste mogen namelijk gewoon zonder toestemming geplaatst worden.

Acties:
  • 0 Henk 'm!

  • Freeaqingme
  • Registratie: April 2006
  • Laatst online: 23:15
Het lijkt me dat je zoiets wel kan implementeren aan de hand van een mooi Bayes filter wat je in het begin een beetje moet trainen, maar daarna genoeg heuristieken heeft verzameld om enigzins fatsoenlijk z'n werk te doen?

No trees were harmed in creating this message. However, a large number of electrons were terribly inconvenienced.


Acties:
  • 0 Henk 'm!

  • Bv202
  • Registratie: Oktober 2006
  • Laatst online: 14-11-2021
Wat wordt er eigenlijk verstaan onder een "lastig verwijderbare cookie"?

EDIT:
Is het in Nederland trouwens de gewoonte om stagiairs te betalen?

[ Voor 34% gewijzigd door Bv202 op 13-07-2012 21:01 ]


Acties:
  • 0 Henk 'm!

  • MBV
  • Registratie: Februari 2002
  • Laatst online: 21:04
Ja, maar geen volwaardig loon (althans, in de IT). Ik geloof dat een bedrag tussen de 0 en 1500 euro per maand normaal is ;) meestal iets van 400/mnd, maar dat is geen vaste regel.

Acties:
  • 0 Henk 'm!

  • Afvalzak
  • Registratie: Oktober 2008
  • Laatst online: 31-08 12:02

Afvalzak

Zet jij mij even buiten?

Bv202 schreef op vrijdag 13 juli 2012 @ 20:58:
Wat wordt er eigenlijk verstaan onder een "lastig verwijderbare cookie"?

EDIT:
Is het in Nederland trouwens de gewoonte om stagiairs te betalen?
Zeker bij een afstudeerder is dat eerder regel dan uitzondering. (kans bestaat dat je hem wilt houden natuurlijk)

Last.fm | Code Talks


Acties:
  • 0 Henk 'm!

  • Caelorum
  • Registratie: April 2005
  • Laatst online: 00:17
MBV schreef op vrijdag 13 juli 2012 @ 21:27:
Ja, maar geen volwaardig loon (althans, in de IT). Ik geloof dat een bedrag tussen de 0 en 1500 euro per maand normaal is ;) meestal iets van 400/mnd, maar dat is geen vaste regel.
~350E/maand is de gebruikelijke vergoeding voor afstudeerders (227-454 volgens fnvjong (vakbond)), maar het is niet ongebruikelijk om bijv. 700E/maand of meer te krijgen bij de wat grotere bedrijven in de ICT. Er zijn daar ook uitschieters die volledig loon krijgen. Ik geloof wel dat het een aantal jaren geleden, voor de crisis, wel iets hoger lag in de IT.
In 2007 was het volgens stageplaza 500E/maand in de ICT, waar het gemiddelde van alle stagevergoedingen tussen de 200 en 300 zat. http://www.computable.nl/...hoge-stagevergoeding.html

[ Voor 16% gewijzigd door Caelorum op 13-07-2012 23:01 ]


Acties:
  • 0 Henk 'm!

  • jip_86
  • Registratie: Juli 2004
  • Laatst online: 21-09 16:06
Vandaag stuk code gezien van een collega die goto's gebruikt (C#) :X

Acties:
  • 0 Henk 'm!

  • Aloys
  • Registratie: Juni 2005
  • Niet online
En toen dacht jij goto 1980;? Of goto DeveloperWorld->hell;? :+

Acties:
  • 0 Henk 'm!

  • Caelorum
  • Registratie: April 2005
  • Laatst online: 00:17
jip_86 schreef op vrijdag 13 juli 2012 @ 23:12:
Vandaag stuk code gezien van een collega die goto's gebruikt (C#) :X
Zolang het alleen binnen switch statements gebeurd en het alleen is om case fall-through te 'implementeren' is het nog niet zo erg toch?

Acties:
  • 0 Henk 'm!

  • jip_86
  • Registratie: Juli 2004
  • Laatst online: 21-09 16:06
Caelorum schreef op zaterdag 14 juli 2012 @ 00:04:
[...]

Zolang het alleen binnen switch statements gebeurd en het alleen is om case fall-through te 'implementeren' is het nog niet zo erg toch?
Nee, dat was het niet. Switch/case is inderdaad nog wel overheen te komen.

Acties:
  • 0 Henk 'm!

  • Jan_V
  • Registratie: Maart 2002
  • Laatst online: 22:39
Ben druk bezig om een branch en de trunk terug te mergen. In beide is zo'n 6 maanden doorontwikkeld wat het allemaal al niet eenvoudiger maakt, maar dan worden ook nog dergelijke code constructies gebruikt:
C#:
1
title='<asp:Literal ID="SomeUniversalDateValue" runat="server" />'>


Eerst dacht ik dat TFS gewoon iets raars had gemerged, maar nu ik in de history kijk zie ik dat dit er altijd al in zat.
Moet toegeven, het is creatief.

Battle.net - Jandev#2601 / XBOX: VriesDeJ


Acties:
  • 0 Henk 'm!

  • EddoH
  • Registratie: Maart 2009
  • Niet online

EddoH

Backpfeifengesicht

jip_86 schreef op vrijdag 13 juli 2012 @ 23:12:
Vandaag stuk code gezien van een collega die goto's gebruikt (C#) :X
Noooooooh!! :+
En waarom is het zo slecht dan? Zonder context weinig van te zeggen.

Neem eens een kijkje in de linux kernel code zou ik zeggen...

Acties:
  • 0 Henk 'm!

Verwijderd

EddoH schreef op vrijdag 20 juli 2012 @ 14:33:
[...]


Noooooooh!! :+
En waarom is het zo slecht dan? Zonder context weinig van te zeggen.

Neem eens een kijkje in de linux kernel code zou ik zeggen...
Daarom

Acties:
  • 0 Henk 'm!

  • HuHu
  • Registratie: Maart 2005
  • Niet online
afvalzak schreef op vrijdag 13 juli 2012 @ 21:40:
[...]


Zeker bij een afstudeerder is dat eerder regel dan uitzondering. (kans bestaat dat je hem wilt houden natuurlijk)
Ligt volgens mij ook aan het opleidingsniveau. Op universitair niveau is het ontvangen van een vergoeding eerder de uitzondering.

Acties:
  • 0 Henk 'm!

  • Olaf van der Spek
  • Registratie: September 2000
  • Niet online
EddoH schreef op vrijdag 20 juli 2012 @ 14:33:
Neem eens een kijkje in de linux kernel code zou ik zeggen...
Dat is C, geen C#. Maar inderdaad, wat context is handig.

Acties:
  • 0 Henk 'm!

  • YopY
  • Registratie: September 2003
  • Laatst online: 13-07 01:14
if (complexiteitOfRegelsCodeMinderDoorGebruikVanGoto > 5) {
gotoIsWelOk = true;
}

:+

Acties:
  • 0 Henk 'm!

  • Grijze Vos
  • Registratie: December 2002
  • Laatst online: 28-02 22:17
HuHu schreef op vrijdag 20 juli 2012 @ 15:46:
[...]

Ligt volgens mij ook aan het opleidingsniveau. Op universitair niveau is het ontvangen van een vergoeding eerder de uitzondering.
Ligt eerder aan waar je afstudeert. Een bedrijf biedt bijna altijd wel een vergoeding, een universiteit niet. Onderzoeksinstituten weet ik niet.

(Dit gaat i.i.g. op voor IT.)

Op zoek naar een nieuwe collega, .NET webdev, voornamelijk productontwikkeling. DM voor meer info


Acties:
  • 0 Henk 'm!

  • EddoH
  • Registratie: Maart 2009
  • Niet online

EddoH

Backpfeifengesicht

Olaf van der Spek schreef op vrijdag 20 juli 2012 @ 16:33:
[...]

Dat is C, geen C#. Maar inderdaad, wat context is handig.
Dat snap ik. Maar de talen verschillen voor zover ik weet niet zo fundamenteel dat dat in dit geval uitmaakt.

Acties:
  • 0 Henk 'm!

  • MBV
  • Registratie: Februari 2002
  • Laatst online: 21:04
Niet? wel/geen garbage collector, wel/niet 'alles' in een pointer, wel/niet OOP, enzovoort. En het belangrijkste verschil tussen kernel-code en C# code: wel/niet heel erg low-level met veel performance impact op het hele systeem, en vaak expliciet rekening houden met wat andere threads doen.
Pagina: 1 ... 90 ... 103 Laatste

Dit topic is gesloten.

Let op:
Uiteraard is het in dit topic niet de bedoeling dat andere users en/of topics aangehaald worden om ze voor gek te zetten. Lachen om je eigen code, of over dingen die je "wel eens tegengekomen bent" is prima, maar hou het onderling netjes. :)