Catbert | vrijdag 7 oktober 2011 @ 12:14 |
Hier verder...  |
Bill_E | vrijdag 7 oktober 2011 @ 12:20 |
doe eens koppelen die topics! |
Godtje | vrijdag 7 oktober 2011 @ 12:23 |
Zet de OP er dan ook in. |
ursel | vrijdag 7 oktober 2011 @ 12:26 |
Goed topic  |
raptorix | vrijdag 7 oktober 2011 @ 12:31 |
In tegenstelling tot veel collega's vind ik XSLT erg fijn werken, ok leesbaarheid is soms wat vervelend als je er niet heel bekend mee bent, maar om 1 of andere reden vind ik het een mooie taal. |
Catbert | vrijdag 7 oktober 2011 @ 12:34 |
quote: Heb ik gedaan, maar om een of andere reden gaat dat soms verkeerd :S
quote: Het ging al lang niet meer over de OP.
quote: Op vrijdag 7 oktober 2011 12:31 schreef raptorix het volgende:In tegenstelling tot veel collega's vind ik XSLT erg fijn werken, ok leesbaarheid is soms wat vervelend als je er niet heel bekend mee bent, maar om 1 of andere reden vind ik het een mooie taal. Best veel gedaan, en het is prima bruikbaar, maar 'loops' maken is enorm omslachtig. |
thabit | vrijdag 7 oktober 2011 @ 12:37 |
quote: Bij hem heb ik ook ooit een vak over functioneel programmeren gevolgd. Zeer vermakelijk om colleges te volgen van zo'n knettergekke figuur. |
Litpho | vrijdag 7 oktober 2011 @ 12:47 |
quote: Die is ondertussen (Rails 3) goed stabiel, maar in eerste instantie was het wel echt een openbare beta-test, ja . Waarbij de boeken tussen schrijven en drukken dus ook al verouderd waren. Meer een issue voor Rails dan Ruby trouwens. Ruby 1.9 heeft ook dingen doorgevoerd die niet backwards compatible zijn (oa. iterators voor String). |
raptorix | vrijdag 7 oktober 2011 @ 13:20 |
quote: Vind je?
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 | <xsl:for-each select="$items"> <div id="slide-{position()}" class="slide clearfix"> <figure> <xsl:if test="./visual !=''"> <img alt="slide" src="/ImageGen.ashx?image={umbraco.library:GetMedia(./visual, 'false')/umbracoFile}" /> </xsl:if> <xsl:if test="name(.) = 'BrandBox'"> <figcaption> <xsl:value-of select="./onderTitel"/> </figcaption> </xsl:if> </figure> <xsl:if test="name(.) = 'BrandBox'"> <section class="text-box-brandbox"> <h1> <xsl:value-of select="./headerTekst"/> </h1> <p> <xsl:value-of select="./tekst"/> </p>
<a class="meer-btn" href="{umbraco.library:NiceUrl(./leesMeerUrl)}"> <xsl:value-of select="./leesMeerTekst"/> </a> </section> </xsl:if> </div> </xsl:for-each> |
|
minibeer | vrijdag 7 oktober 2011 @ 13:53 |
Ergens vind ik het jammer dat er zo veel programmeertalen zijn: om een expert te worden in een bepaalde taal moet je toch echt wel een jaar ervaring hebben. Dus je kan nooit een allround-expert worden die in elk project ingezet kan worden. Natuurlijk kan je wel een goede basis hebben, maar je mist altijd een groot deel, of dat nou de syntax of de standaardlibrary is (ik betwijfel trouwens of er mensen zijn die de hele standaardlibrary van talen als c#.net uit hun hoofd kennen ). |
Catbert | vrijdag 7 oktober 2011 @ 14:04 |
quote: Nu eentje waar je gewoon 10 iteraties wil doen (die bedoel ik). het is al weer een tijdje terug (4 jaar ofzo) dus ik ben kwa XSLT enorm roestig 
quote: Op vrijdag 7 oktober 2011 13:53 schreef minibeer het volgende:Ergens vind ik het jammer dat er zo veel programmeertalen zijn: om een expert te worden in een bepaalde taal moet je toch echt wel een jaar ervaring hebben. Dus je kan nooit een allround-expert worden die in elk project ingezet kan worden. Natuurlijk kan je wel een goede basis hebben, maar je mist altijd een groot deel, of dat nou de syntax of de standaardlibrary is (ik betwijfel trouwens of er mensen zijn die de hele standaardlibrary van talen als c#.net uit hun hoofd kennen  ). Kunnen programmeren is niet echt taal afhankelijk. En een "allround" programmeur heeft gewoon veel ervaring in een paar gangbare talen.
Ik vind een jaar nogal overdreven overigens. |
SecurityException | vrijdag 7 oktober 2011 @ 14:04 |
quote: Op vrijdag 7 oktober 2011 13:53 schreef minibeer het volgende:Ergens vind ik het jammer dat er zo veel programmeertalen zijn: om een expert te worden in een bepaalde taal moet je toch echt wel een jaar ervaring hebben. Dus je kan nooit een allround-expert worden die in elk project ingezet kan worden. Natuurlijk kan je wel een goede basis hebben, maar je mist altijd een groot deel, of dat nou de syntax of de standaardlibrary is (ik betwijfel trouwens of er mensen zijn die de hele standaardlibrary van talen als c#.net uit hun hoofd kennen  ). Sowieso is het uit je hoofd kennen van hele talen, frameworks, e.d. onnodig, daar heb je goede IDEs met Intellisense / autoaanvulling voor. Vooral PHP`en zonder goede IDE is ellende, vanwege het welbekende $needle,$haystack / $haystack,$needle probleem. Beter weet je waar je oplossingen kunt zoeken, in plaats van onnodige zaken uit je kop je gaan knallen. |
raptorix | vrijdag 7 oktober 2011 @ 14:05 |
quote: Op vrijdag 7 oktober 2011 13:53 schreef minibeer het volgende:Ergens vind ik het jammer dat er zo veel programmeertalen zijn: om een expert te worden in een bepaalde taal moet je toch echt wel een jaar ervaring hebben. Dus je kan nooit een allround-expert worden die in elk project ingezet kan worden. Natuurlijk kan je wel een goede basis hebben, maar je mist altijd een groot deel, of dat nou de syntax of de standaardlibrary is (ik betwijfel trouwens of er mensen zijn die de hele standaardlibrary van talen als c#.net uit hun hoofd kennen  ). Een taal is wat anders als een Library natuurlijk, je kan .NET namelijk via een hele berg talen aanspreken Wel is het zo dat wanneer je een OO taal goed beheerst je relatief makkelijk switched, mijn ervaring is dat goede java developers redelijk makkelijk overstappen naar C#
En of iemand die hele library kent? Nou ik had wel een collega waarbij het aardig in de buurt kwam, maar die was dan ook beetje autistisch  |
raptorix | vrijdag 7 oktober 2011 @ 14:05 |
quote: Op vrijdag 7 oktober 2011 14:04 schreef Catbert het volgende:[..] Nu eentje waar je gewoon 10 iteraties wil doen (die bedoel ik). het is al weer een tijdje terug (4 jaar ofzo) dus ik ben kwa XSLT enorm roestig  [..] Kunnen programmeren is niet echt taal afhankelijk. En een "allround" programmeur heeft gewoon veel ervaring in een paar gangbare talen. Ik vind een jaar nogal overdreven overigens. Bedoel je niet recusief? Dat kan idd lastig zijn in XSLT  |
Catbert | vrijdag 7 oktober 2011 @ 14:06 |
quote: Op vrijdag 7 oktober 2011 14:05 schreef raptorix het volgende:En of iemand die hele library kent? Nou ik had wel een collega waarbij het aardig in de buurt kwam, maar die was dan ook beetje autistisch  "Je weg kunnen vinden" is nogal wat anders dan "alles uit je hoofd weten"  |
raptorix | vrijdag 7 oktober 2011 @ 14:07 |
quote: Als je een component noemde, wist ie de hele namespace op te dreunen  |
raptorix | vrijdag 7 oktober 2011 @ 14:07 |
Hier stukje recursieve xslt die ik laatst moest schrijven 
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 | <xsl:template name="renderItems"> <xsl:param name="items"/> <xsl:param name="offset"/> <ul class="clearfix"> <xsl:for-each select="$items"> <xsl:if test="position()=number($offset) or position()=number($offset + 1)"> <li class="object-listitem-medium"> <figure> <xsl:if test="./icoon !=''"> <img width="75" height="74" alt="" src="/ImageGen.ashx?image={umbraco.library:GetMedia(./icoon, 'false')/umbracoFile}" /> </xsl:if> <figcaption> <h3> <a href="{$uspPagina}#a{@id}"> <xsl:value-of select="./titel"/> </a> </h3> <p> <xsl:value-of select="./intro"/> </p> </figcaption> </figure> </li> </xsl:if> </xsl:for-each> </ul> <xsl:if test="$offset < count($items)"> <xsl:call-template name="renderItems"> <xsl:with-param name="items" select="$items"/> <xsl:with-param name="offset" select="$offset+1"/> </xsl:call-template> </xsl:if> </xsl:template> </xsl:stylesheet> |
Resultaat zie je onderin op citybox.nl die slider met die usp's |
Catbert | vrijdag 7 oktober 2011 @ 14:08 |
quote: Niet zo nuttig m.i. Kan hier ook wel random spul gaan posten maar daar heeft niemand wat aan. |
raptorix | vrijdag 7 oktober 2011 @ 14:09 |
quote: Mwoah, gewoon om aan anderen te laten zien wat een ramp XSLT eigenlijk is  |
SecurityException | vrijdag 7 oktober 2011 @ 14:21 |
Ik vind dat XSLT qua complexiteit wel meevallen eigenlijk. Maar goed, dit komt dan ook van iemand die nog aan Ikonboards (CGI en Perl) geknutseld heeft zo'n 12 jaren geleden.  |
raptorix | vrijdag 7 oktober 2011 @ 14:31 |
quote: Op vrijdag 7 oktober 2011 14:21 schreef SecurityException het volgende:Ik vind dat XSLT qua complexiteit wel meevallen eigenlijk. Maar goed, dit komt dan ook van iemand die nog aan Ikonboards (CGI en Perl) geknutseld heeft zo'n 12 jaren geleden.  Het is niet zo zeer complex, wel vinden veel developers die er voor eerst naar kijken de structuur wazig  |
Litpho | vrijdag 7 oktober 2011 @ 15:01 |
quote: Sinds Oracle iedere keer de J2EE Javadoc onder nieuwe URL's verstopt, zijn dat soort mensen veel meer waard geworden . |
minibeer | vrijdag 7 oktober 2011 @ 15:05 |
quote: Op vrijdag 7 oktober 2011 14:04 schreef Catbert het volgende:Kunnen programmeren is niet echt taal afhankelijk. En een "allround" programmeur heeft gewoon veel ervaring in een paar gangbare talen. Ik vind een jaar nogal overdreven overigens. Nee tuurlijk is programmeren niet taal afhankelijk, maar het is niet zo als allround programmeur aan elk project gelijk mee kan doen (er worden altijd programmeurs met ervaring in ... gezocht), en dat vind ik jammer. En een jaar is inderdaad een beetje uit de lucht gegrepen, maar het hangt er natuurlijk van af wat je een expert noemt en hoeveel je in dat jaar met die taal bezig bent. En ik reken de library globaal kennen ook wel een beetje onder de kennis van een taal (hoewel dat strikt gesproken natuurlijk niet bij de taal hoort). Ik ben ook eigenlijk voor zo veel mogelijk zelf programmeren, als je niet zeker wat er in de standaardlibrary gebeurt kan je wat mij betreft beter zelf iets programmeren (wel binnen bepaalde grenzen natuurlijk). |
raptorix | vrijdag 7 oktober 2011 @ 15:58 |
quote: Op vrijdag 7 oktober 2011 15:05 schreef minibeer het volgende:[..] Nee tuurlijk is programmeren niet taal afhankelijk, maar het is niet zo als allround programmeur aan elk project gelijk mee kan doen (er worden altijd programmeurs met ervaring in ... gezocht), en dat vind ik jammer. En een jaar is inderdaad een beetje uit de lucht gegrepen, maar het hangt er natuurlijk van af wat je een expert noemt en hoeveel je in dat jaar met die taal bezig bent. En ik reken de library globaal kennen ook wel een beetje onder de kennis van een taal (hoewel dat strikt gesproken natuurlijk niet bij de taal hoort). Ik ben ook eigenlijk voor zo veel mogelijk zelf programmeren, als je niet zeker wat er in de standaardlibrary gebeurt kan je wat mij betreft beter zelf iets programmeren (wel binnen bepaalde grenzen natuurlijk). Ik wens je veel succes met het schrijven van een snellere generics library in .net  |
minibeer | vrijdag 7 oktober 2011 @ 17:23 |
quote: ik zeg toch, binnen bepaalde grenzen  |
Luchtkoker | vrijdag 7 oktober 2011 @ 18:51 |
Interessant topic, iemand linkje naar deel 1? |
Luchtkoker | vrijdag 7 oktober 2011 @ 18:52 |
Laat maar, al gevonden. Ik moet niet zo lui zijn. Binnekort ff doornemen  |
Devv | vrijdag 7 oktober 2011 @ 19:15 |
quote: Ik wil niet opscheppen, maar ik denk dat ik heel veel .NET types uit mijn hoofd kan benoemen (inclusief de volledige naam van de assembly waar deze deel van uit maakt). |
minibeer | vrijdag 7 oktober 2011 @ 19:42 |
quote: Op vrijdag 7 oktober 2011 19:15 schreef Devv het volgende:[..] Ik wil niet opscheppen, maar ik denk dat ik heel veel .NET types uit mijn hoofd kan benoemen (inclusief de volledige naam van de assembly waar deze deel van uit maakt). Ik denk niet dat veel mensen jaloers op je zijn. Eigenlijk. |
Devv | vrijdag 7 oktober 2011 @ 20:05 |
quote: Dat maakt niet uit hoor. Ik verdien er mijn geld mee, dus het is dagelijkse routine. Ik kan .NET bijna dromen. En dat is best wel handig. |
minibeer | vrijdag 7 oktober 2011 @ 20:38 |
quote: Op vrijdag 7 oktober 2011 20:05 schreef Devv het volgende:[..] Dat maakt niet uit hoor. Ik verdien er mijn geld mee, dus het is dagelijkse routine. Ik kan .NET bijna dromen. En dat is best wel handig. Ja, dat punt probeerde ik ook al te maken. Ik bedoel, er zal best wel wat tijd overheen gegaan zijn voordat je die library kende, of niet? Ik kan me heel goed voorstellen dat het handig is, het bevalt me alleen niet zo dat je een groot deel van de library uit je kop moet kennen voordat je optimaal gebruik kan maken van de mogelijkheden van een taal. |
ralfie | vrijdag 7 oktober 2011 @ 22:06 |
quote: Op vrijdag 7 oktober 2011 20:38 schreef minibeer het volgende:[..] Ja, dat punt probeerde ik ook al te maken. Ik bedoel, er zal best wel wat tijd overheen gegaan zijn voordat je die library kende, of niet? Ik kan me heel goed voorstellen dat het handig is, het bevalt me alleen niet zo dat je een groot deel van de library uit je kop moet kennen voordat je optimaal gebruik kan maken van de mogelijkheden van een taal. Nee hoor. .Net (visual studio) heeft een ongelooflijk lekker werkende code aanvuller. Je hoeft geen enkele 'library uit je kop te kennen' om optimaal van de taal gebruik te kunnen maken. En voor de rest is er google. Ja, het werkt nèt even wat sneller als je meteen weet welke functies of classes in welke assembly zitten, maar via msdn zie je dat ook. |
minibeer | vrijdag 7 oktober 2011 @ 22:12 |
quote: Op vrijdag 7 oktober 2011 22:06 schreef ralfie het volgende:[..] Nee hoor. .Net (visual studio) heeft een ongelooflijk lekker werkende code aanvuller. Je hoeft geen enkele 'library uit je kop te kennen' om optimaal van de taal gebruik te kunnen maken. En voor de rest is er google. Ja, het werkt nèt even wat sneller als je meteen weet welke functies of classes in welke assembly zitten, maar via msdn zie je dat ook. Als je weet welke klasse je moet hebben, maar je bent de naam even vergeten wel, maar anders kan het wel eens een tijd duren voordat je vindt wat je bedoelt. Er zijn niet voor niks veel van die topics van 'hoe doe ik ... met c#/vb .net? op programmeerforums. |
SecurityException | vrijdag 7 oktober 2011 @ 23:54 |
Het .NET framework is dan ook veel te omvangrijk om uit je hoofd te gaan leren. Belangrijker is als je maar weet waar je de oplossing moet zoeken wanneer je vast hangt. Zo heb ik van de week ook weer even op Internet moeten spieken hoe precies om te gaan met Serialization en de wijze van het omzetten naar XML. Heb ik al veel vaker mee gewerkt, maar als je het een tijdje niet gebruikt dan is een geheugensteuntje wel zo makkelijk. Sites als StackOverflow zit ik sowieso wekelijks wel een keer op te spieken.
Ook is het handig om bepaalde terminologie te kennen om dat zoeken eenvoudiger te maken. Ik krijg nog steeds vaak rare gezichten als ik programmeurs vraag waarom ze zo veel 'boxen', of waarom ze geen 'ternary operators' gebruiken voor eenvoudige condities. 
Overigens is het .NET framework naar mijn mening erg logisch ingedeeld (nogmaals, mits je op de hoogte bent van hoe bepaalde zaken benoemd worden). Wil je met grafiekjes gaan freubelen? Dan weet je dat je in System.Drawing.BlaBla moet zoeken. Behoefte aan meertaligheid? System.Globalization.  |
Litpho | zaterdag 8 oktober 2011 @ 13:20 |
quote: Ternaire operators worden bij ons in de stijlregels gevlagd met lage prioriteit. Ja, ze kunnen nuttig zijn zolang de conditie heel eenvoudig is, maar zo gauw het iets complexer wordt (en zeker zo gauw je gaat nesten) zijn if/else constructies beter leesbaar en om de onderhoudbaarheid beter te maken wordt dus aangemoedigd om direkt maar met die if/else constructies te beginnen. Net zoals je bijv. bij 1-regel blocks achter een if ze toch verplicht met een accolade moet schrijven.
Allemaal overbodig als je de luxe hebt om met alleen maar briljante seniors te werken die nooit een off-day hebben. Dat is bij ons helaas niet altijd de realiteit . |
Devv | zaterdag 8 oktober 2011 @ 13:35 |
Het blijft over het algemeen een kwestie van de gulden middenweg kiezen. Je wilt esthetische code, maar het moet voor anderen wel leesbaar blijven. Vooral met dat laatste heb ik wel eens moeite, omdat ik behoorlijk diep in de materie zit. Ik gebruik in mijn code heel veel korte notities, expressies en extension methods. |
Core2 | zaterdag 8 oktober 2011 @ 21:28 |
quote: Op vrijdag 7 oktober 2011 12:37 schreef thabit het volgende:[..] Bij hem heb ik ook ooit een vak over functioneel programmeren gevolgd. Zeer vermakelijk om colleges te volgen van zo'n knettergekke figuur. Dit is wel behoorlijk lang geleden dan, hij werkt al een hele tijd bij microsoft. Maar vet dat je colleges van hem gehad hebt, ik ben jaloers  |
Fleischmeister | zaterdag 8 oktober 2011 @ 23:17 |
Ik zit nu veel met Objective-C te werken, want iOS jeweet.
In het begin heb je soms weleens "wat een kut taal, waarom moeten ze het nou weer anders doen", maar intussen vind ik het eigenlijk best leuk om mee te werken. Dat hele message passing en named parameters werkt best goed en maakt de code leesbaarder. Alleen jammer dat ze bij Apple ervoor gekozen hebben om de dot-notatie in Objective-C 2.0 te gooien, dus waarden aan object properties toewijzen kan op twee manieren:
1 2 3 4 5 | // manier 1 [object setProperty:@"whatever"];
// manier 2 object.property = @"whatever"; |
En de laatste is niet efficiënter ofzo, die wordt intern gewoon vertaald naar de eerste. Mijn missie is om de dot-notatie er compleet uit te stampen bij alle iOS developers, het zal er vast zijn ingezet om developers die andere talen gewend zijn het naar de zin te maken... maar uiteindelijk krijg je er meer rommelige code voor terug. Je doet aan message passing, of je gaat maar met een andere taal werken.
Binnenkort ook maar eens kijken hoe de Android SDK werkt... Java en Eclipse e.d. ken ik al, dus dat moet wel vrij vlot te doen zijn.
[ Bericht 1% gewijzigd door Fleischmeister op 08-10-2011 23:23:45 ] |
minibeer | zaterdag 8 oktober 2011 @ 23:41 |
quote: Heb ik ook wel wat positieve geluiden over gehoord. Misschien ook maar een beetje proberen als ik wat meer tijd heb . |
SecurityException | zondag 9 oktober 2011 @ 00:02 |
quote: Op zaterdag 8 oktober 2011 13:20 schreef Litpho het volgende:[..] Ternaire operators worden bij ons in de stijlregels gevlagd met lage prioriteit. Ja, ze kunnen nuttig zijn zolang de conditie heel eenvoudig is, maar zo gauw het iets complexer wordt (en zeker zo gauw je gaat nesten) zijn if/else constructies beter leesbaar en om de onderhoudbaarheid beter te maken wordt dus aangemoedigd om direkt maar met die if/else constructies te beginnen. Net zoals je bijv. bij 1-regel blocks achter een if ze toch verplicht met een accolade moet schrijven. Allemaal overbodig als je de luxe hebt om met alleen maar briljante seniors te werken die nooit een off-day hebben. Dat is bij ons helaas niet altijd de realiteit  . Ik ben zelf fervent voorstander van leesbare en duidelijke code dus gebruik ternary operators alleen voor hele eenvoudige condities. In een class waar heel veel van die eenvoudige condities zitten kan het gebruik van ternary operators heel wat regeltjes schelen. |
Devv | zondag 9 oktober 2011 @ 00:28 |
quote: Op zondag 9 oktober 2011 00:02 schreef SecurityException het volgende:[..] Ik ben zelf fervent voorstander van leesbare en duidelijke code dus gebruik ternary operators alleen voor hele eenvoudige condities.  In een class waar heel veel van die eenvoudige condities zitten kan het gebruik van ternary operators heel wat regeltjes schelen. De term leesbaar is ook maar relatief. Het ligt er meer aan hoe bereidwillig de persoon is die het moet lezen om dieper in de materie te duiken. Vaak is de capaciteit er wel om het te kunnen begrijpen, maar wordt het uit gemakzucht nooit gebruikt.
Ik merk dit bijvoorbeeld op mijn werk. Daar gebruiken collega's nog heel veel de C# syntax van .NET 2.0 terwijl ik mijn syntax voor een groot gedeelte op .NET 4 richt. Daar is niets mis mee, maar het kan weleens tot Babylonische spraakverwarring leiden. En mijn collega's zijn echt geen beginners. Dit zijn programmeurs met ruime ervaring. |
minibeer | zondag 9 oktober 2011 @ 00:32 |
quote: Op vrijdag 7 oktober 2011 23:54 schreef SecurityException het volgende:Het .NET framework is dan ook veel te omvangrijk om uit je hoofd te gaan leren. Belangrijker is als je maar weet waar je de oplossing moet zoeken wanneer je vast hangt. Zo heb ik van de week ook weer even op Internet moeten spieken hoe precies om te gaan met Serialization en de wijze van het omzetten naar XML. Heb ik al veel vaker mee gewerkt, maar als je het een tijdje niet gebruikt dan is een geheugensteuntje wel zo makkelijk. Sites als StackOverflow zit ik sowieso wekelijks wel een keer op te spieken. Ook is het handig om bepaalde terminologie te kennen om dat zoeken eenvoudiger te maken. Ik krijg nog steeds vaak rare gezichten als ik programmeurs vraag waarom ze zo veel 'boxen', of waarom ze geen 'ternary operators' gebruiken voor eenvoudige condities.  Overigens is het .NET framework naar mijn mening erg logisch ingedeeld (nogmaals, mits je op de hoogte bent van hoe bepaalde zaken benoemd worden). Wil je met grafiekjes gaan freubelen? Dan weet je dat je in System.Drawing.BlaBla moet zoeken. Behoefte aan meertaligheid? System.Globalization.  True, het .net framework is alleen zo groot. En vaak toch ook onlogisch, als je de achterliggende gedachten en technieken niet begrijpt. Voorbeeld: Ik moest ergens in een opdracht een string naar zijn sha1 hash omzetten. Ik had vrij snel door dat ik in de class System.Security.Cryptography moest zijn, alleen koos ik als n00b natuurlijk de SHA1 class uit om mee te kloten, en niet de SHA1CryptoServiceProvider. Als je wat ervarener bent met .NET snap je dan natuurlijk gelijk dat je die serviceprovider moet hebben, maar heel logisch is het niet. (en even om mijn eerste keuze voor de sha1 class te rechtvaardigen: er zit een hele waslijst aan klassen die met sha1 beginnen in die namespace, dus ik had die cryptoserviceprovider gewoon niet gezien) |
Litpho | zondag 9 oktober 2011 @ 10:39 |
quote: Op zondag 9 oktober 2011 00:02 schreef SecurityException het volgende:[..] Ik ben zelf fervent voorstander van leesbare en duidelijke code dus gebruik ternary operators alleen voor hele eenvoudige condities.  In een class waar heel veel van die eenvoudige condities zitten kan het gebruik van ternary operators heel wat regeltjes schelen. Ja, maar het besparen op regeltjes is geen doel op zich (tenzij je werkt met mensen die alleen maar kunnen debuggen vanaf printouts - red het regenwoud!). Zeker met een team met grote niveauverschillen is code waarbij op een gegeven regel maar één ding tegelijk gebeurt vaak beter leesbaar (door iedereen, niet alleen door de schrijver/seniors) en dus onderhoudbaar. |
SecurityException | zondag 9 oktober 2011 @ 12:26 |
quote: Op zondag 9 oktober 2011 00:28 schreef Devv het volgende:[..] De term leesbaar is ook maar relatief. Het ligt er meer aan hoe bereidwillig de persoon is die het moet lezen om dieper in de materie te duiken. Vaak is de capaciteit er wel om het te kunnen begrijpen, maar wordt het uit gemakzucht nooit gebruikt. Ik merk dit bijvoorbeeld op mijn werk. Daar gebruiken collega's nog heel veel de C# syntax van .NET 2.0 terwijl ik mijn syntax voor een groot gedeelte op .NET 4 richt. Daar is niets mis mee, maar het kan weleens tot Babylonische spraakverwarring leiden. En mijn collega's zijn echt geen beginners. Dit zijn programmeurs met ruime ervaring. Zeker is leesbaarheid relatief/subjectief, maar mooie toepassingen voor ternary operators vind k bijvoorbeeld:
1 | Checkbox1.Checked = (Getal == 123); |
In plaats van
1 2 3 4 5 6 7 8 | if( Getal == 123) { Checkbox1.Checked = true; } else { Checkbox1.Checked = false; } |
Veel van die simpele statements scheelt aanzienlijk in regels, en dat vind iedereen wel prettig neem ik aan. Slecht gebruik van ternary operators vind ik sowieso als ze nested gebruikt worden, daar kun je de boel lekker Cryptografisch mee maken.
1 | Checkbox1.Checked = (NullableGetal.HasValue ? (NullableGetal.Value == 123 || (NullableGetal.Value == 234 && (AnderGetal.HasValue ? AnderGetal.Value == 456 : false) )) : (AnderGetal.HasValue ? AnderGetal.Value == 456 : false)) |
Zoiets dus, dat kom je ook nog wel eens tegen. Of iets waar ik ook een gruwelijke hekel aan heb: inline String concatination met veel variabelen en statische waarden i.p.v. String.Fomat. 
1 | Label1.Text = "Dit " + Server.HtmlEncode(String1) + " is " + Server.HtmlEncode(String2) + " een " + Server.HtmlEncode(String3) + " regel " + Server.HtmlEncode(String4) + " met " + Server.HtmlEncode(String5) + " veel strings!"; |
i.p.v.
1 2 3 4 5 6 7 8 | Label1.Text = string.Format( "Dit {1} is {2} een {3} regel {4} met {5} veel strings!", Server.HtmlEncode(String1), Server.HtmlEncode(String2), Server.HtmlEncode(String3), Server.HtmlEncode(String4), Server.HtmlEncode(String5) ); |
|
SecurityException | zondag 9 oktober 2011 @ 12:34 |
quote: Op zondag 9 oktober 2011 00:32 schreef minibeer het volgende:[..] True, het .net framework is alleen zo groot. En vaak toch ook onlogisch, als je de achterliggende gedachten en technieken niet begrijpt. Voorbeeld: Ik moest ergens in een opdracht een string naar zijn sha1 hash omzetten. Ik had vrij snel door dat ik in de class System.Security.Cryptography moest zijn, alleen koos ik als n00b natuurlijk de SHA1 class uit om mee te kloten, en niet de SHA1CryptoServiceProvider. Als je wat ervarener bent met .NET snap je dan natuurlijk gelijk dat je die serviceprovider moet hebben, maar heel logisch is het niet. (en even om mijn eerste keuze voor de sha1 class te rechtvaardigen: er zit een hele waslijst aan klassen die met sha1 beginnen in die namespace, dus ik had die cryptoserviceprovider gewoon niet gezien) Voor simpele stringetjes naar SHA1 hashes om te zetten heb je toch ook alleen maar de SHA1 class in de System.Security.Cryptogaphy namespace (en de System.Text.ASCIIEncoding class) nodig?
1 2 3 4 5 6 7 8 | public static string EncryptStringSHA1(string Input) { SHA1 Hash = SHA1.Create(); ASCIIEncoding Encoder = new ASCIIEncoding(); byte[] Combined = Encoder.GetBytes(Input); Hash.ComputeHash(Combined); return Convert.ToBase64String(Hash.Hash); } |
Maar inderdaad, die geneste/verstopte/gespecialiseerde namespaces zijn in het begin lastig, ook bijvoorbeeld met de SQL/OleDB/Ado trukendoos. Maar je gaat dat patroon en de indeling op een gegeven moment wel doorkrijgen.
[ Bericht 0% gewijzigd door SecurityException op 09-10-2011 12:40:15 ] |
minibeer | zondag 9 oktober 2011 @ 12:55 |
quote: Op zondag 9 oktober 2011 12:34 schreef SecurityException het volgende:[..] Voor simpele stringetjes naar SHA1 hashes om te zetten heb je toch ook alleen maar de SHA1 class in de System.Security.Cryptogaphy namespace (en de System.Text.ASCIIEncoding class) nodig? [ code verwijderd ] Maar inderdaad, die geneste/verstopte/gespecialiseerde namespaces zijn in het begin lastig, ook bijvoorbeeld met de SQL/OleDB/Ado trukendoos. Maar je gaat dat patroon en de indeling op een gegeven moment wel doorkrijgen. O, dat heb ik helemaal niet doorgehad 
Ik had het uiteindelijk maar één keer nodig, dus ik had iets gedaan als:
1 2 | SHA1CryptoServiceProvider scsp = new SHA1CryptoServiceProvider(); hash = BitConverter.ToString(scsp.ComputeHash(Encoding.ASCII.GetBytes(localCounter.ToString()))).Replace("-", "") |
Nu we het toch over leesbaarheid hebben 
[ Bericht 4% gewijzigd door minibeer op 09-10-2011 13:26:50 ] |
raptorix | maandag 10 oktober 2011 @ 13:36 |
quote: Op zondag 9 oktober 2011 12:26 schreef SecurityException het volgende:[..] Zeker is leesbaarheid relatief/subjectief, maar mooie toepassingen voor ternary operators vind k bijvoorbeeld: [ code verwijderd ] In plaats van [ code verwijderd ] Veel van die simpele statements scheelt aanzienlijk in regels, en dat vind iedereen wel prettig neem ik aan.  Slecht gebruik van ternary operators vind ik sowieso als ze nested gebruikt worden, daar kun je de boel lekker Cryptografisch mee maken. [ code verwijderd ] Zoiets dus, dat kom je ook nog wel eens tegen.  Of iets waar ik ook een gruwelijke hekel aan heb: inline String concatination met veel variabelen en statische waarden i.p.v. String.Fomat.  [ code verwijderd ] i.p.v. [ code verwijderd ] Ik schrijf eigenlijk alles zoveel mogelijk uit, wat maakt het nou uit hoeveel regels het is? Qua performance maakt het geen ene moer uit en qua leesbaarheid is het stukken beter. |
Catbert | maandag 10 oktober 2011 @ 14:51 |
quote: Op maandag 10 oktober 2011 13:36 schreef raptorix het volgende:Ik schrijf eigenlijk alles zoveel mogelijk uit, wat maakt het nou uit hoeveel regels het is? Qua performance maakt het geen ene moer uit en qua leesbaarheid is het stukken beter. Ik vind dit:
1 2 3 4 5 6 7 8 | <?php
if(i > 1) message = "Veel" else message = "Weinig"
?> |
Net zo leesbaar als:
1 2 3 | <?php message = i > 1 ? "Veel" : "Weinig" ?> |
|
raptorix | maandag 10 oktober 2011 @ 16:17 |
quote: Ik vind persoonlijk zelf handig dat je in eerste geval wat netter commentaar kan zetten. |
Litpho | maandag 10 oktober 2011 @ 16:21 |
quote: Ik ook. Tot de toekenningen en/of de testconditie groter worden. Dan wordt de uitgeschreven versie al gauw leesbaarder.
Of je moet if statements hebben die naar een waarde evalueren .
1 2 3 4 5 6 | x = if i > 1 "Meer" else "Minder" end |
|
Catbert | maandag 10 oktober 2011 @ 16:43 |
quote: Op maandag 10 oktober 2011 16:21 schreef Litpho het volgende:Ik ook. Tot de toekenningen en/of de testconditie groter worden. Dan wordt de uitgeschreven versie al gauw leesbaarder. Tuurlijk. Maar dat is net zoals een boek: een coderegel mag niet langer zijn dan 40 karakters puur en alleen al omdat mensen moeite krijgen het 'verhaal' te volgen. Maar een ternary operator is op zich al een mooi middel om idioten uit je code te houden  |
Litpho | maandag 10 oktober 2011 @ 16:48 |
quote: Op maandag 10 oktober 2011 16:43 schreef Catbert het volgende:[..] Tuurlijk. Maar dat is net zoals een boek: een coderegel mag niet langer zijn dan 40 karakters puur en alleen al omdat mensen moeite krijgen het 'verhaal' te volgen. Maar een ternary operator is op zich al een mooi middel om idioten uit je code te houden  Als ik een euro zou krijgen voor het aantal (ex-)collega's wat ik al als voorbeeld onder de bus heb gelegd omdat zij wél en ik niet geloofde in code ownership... . |
Catbert | maandag 10 oktober 2011 @ 17:27 |
quote: Op maandag 10 oktober 2011 16:48 schreef Litpho het volgende:Als ik een euro zou krijgen voor het aantal (ex-)collega's wat ik al als voorbeeld onder de bus heb gelegd omdat zij wél en ik niet geloofde in code ownership...  . Och. Bij ons wordt code gewoon aangepast als het niet aan de stijlregels voldoet. En als mensen keer op keer de fout in gaan worden ze er gewoon door een collega op aangesproken. |
sebasie20 | maandag 10 oktober 2011 @ 22:04 |
Leer c++ dan kan je mooie programmas maken, virusscanners enzo. |
themole | maandag 10 oktober 2011 @ 22:05 |
quote: Dat kan wel met meerdere programmeertalen.  |
Catbert | maandag 10 oktober 2011 @ 22:06 |
quote: Waarom zou je in hemelsnaam een virusscanner willen gaan maken in je eentje?
quote: Sterker nog; dat kan met elke turing-complete taal  |
#ANONIEM | maandag 10 oktober 2011 @ 22:07 |
quote: Op maandag 10 oktober 2011 17:27 schreef Catbert het volgende:[..] Och. Bij ons wordt code gewoon aangepast als het niet aan de stijlregels voldoet. En als mensen keer op keer de fout in gaan worden ze er gewoon door een collega op aangesproken. Definieer 'de fout'. Ik heb zo'n autist op het werk die vind dat alle code volgens zijn manier geschreven dient te worden, dat mensen die ternary operators gebruikt dood moeten, en meer van zulk ongein. |
themole | maandag 10 oktober 2011 @ 22:10 |
quote: Of je het wil is een tweede.
Een virusscanner in Prolog maken lijkt me geen leuk karweitje. |
Litpho | maandag 10 oktober 2011 @ 22:14 |
quote: Niet volgen van binnen de organisatie afgesproken regels.quote: Ik heb zo'n autist op het werk die vind dat alle code volgens zijn manier geschreven dient te worden, dat mensen die ternary operators gebruikt dood moeten, en meer van zulk ongein. Ja, dat soort mensen hadden ze nooit uit hun kelder moeten laten . Maar als de stijlregels hard zeggen "geen ternary operators", dan heb je dat maar te doen. Net zoals je in Java classes met hoofdletter en variabelen met kleine letter schrijft. |
thabit | maandag 10 oktober 2011 @ 22:18 |
quote: Op maandag 10 oktober 2011 22:07 schreef Scorpie het volgende:[..] Definieer 'de fout'. Ik heb zo'n autist op het werk die vind dat alle code volgens zijn manier geschreven dient te worden, dat mensen die ternary operators gebruikt dood moeten, en meer van zulk ongein. Het belangrijkste van goedgeschreven code lijkt mij goede documentatie. Elke klasse en elke functie van een kort stukje documentatie voorzien: een korte beschrijving van wat het doet, waar de input aan moet voldoen, wat het precies output, bijzonderheden, gebruikte algoritmen, en tenminste 1 voorbeeld. |