"The question of whether a computer can think is no more interesting than the question of whether a submarine can swim" - Edsger Dijkstra
En wat is een bestand als MSVCRT.DLL dan?PageFault schreef op vrijdag 14 september 2018 @ 23:28:
geen framework nodig
Ik betwijfel namelijk dat de meeste mensen hier bijv. compileren met /NODEFAULTLIB.
[ Voor 25% gewijzigd door RayNbow op 15-09-2018 07:43 ]
Ipsa Scientia Potestas Est
NNID: ShinNoNoir
Zit standaard aan boord. Elke keer wanneer ik java nodig heb, moet ik weer een jre downloaden. Met .net precies zo en nog erger: die zijn allemaal verschillend! Al kun je ze goddank parallel installeren (v2.x naast v4.x).RayNbow schreef op zaterdag 15 september 2018 @ 07:40:
[...]
En wat is een bestand als MSVCRT.DLL dan?
spoiler:
Ik betwijfel namelijk dat de meeste mensen hier bijv. compileren met /NODEFAULTLIB.
Libraries nemen je veel tijd uit handen, er zullen idd weinig zijn die alles herschrijven...
In de assembly tijd deed ik dat, maar nu echt niet meer.
Ik kan het anders niet vinden op mijn linux-installatie.PageFault schreef op zaterdag 15 september 2018 @ 09:42:
Zit standaard aan boord.
Heeft geen speciale krachten en is daar erg boos over.
Ah, vandaar dat je dingen als vcredist.exe kunt downloaden en installeren.
Ipsa Scientia Potestas Est
NNID: ShinNoNoir
Wow, zelfs wij gebruiken dat al járen niet meer.RayNbow schreef op vrijdag 14 september 2018 @ 11:28:
Ik kwam er laatst achter dat een voor de programma's waar ik tegenwoordig verantwoordelijk ben gebruikmaakt van inline asm.
Je bent in de war. Het gaat om het verschil tussen dynamisch en statisch linken met de runtime lib. Die .dll is écht niet per se nodig, ook met default libs. Statisch linken maakt je executable natuurlijk wel een stuk groter.RayNbow schreef op zaterdag 15 september 2018 @ 07:40:
[...]
En wat is een bestand als MSVCRT.DLL dan?
spoiler:
Ik betwijfel namelijk dat de meeste mensen hier bijv. compileren met /NODEFAULTLIB.
Of denk je dat vcredist.exe ook is gecompileerd met /NODEFAULTLIB?
[ Voor 53% gewijzigd door .oisyn op 15-09-2018 11:06 ]
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.
Lang leve legacy zooi dat nooit is opgeruimd..oisyn schreef op zaterdag 15 september 2018 @ 11:00:
[...]
Wow, zelfs wij gebruiken dat al járen niet meer.
Maar of je nu dynamisch of statisch linkt, je maakt dus wel gebruik van een bibliotheek of framework. De oorspronkelijke opmerking dat je "geen framework nodig" hebt gaat niet op. Anders kunnen we het argument voeren dat voor iets als Java ook geen framework per se nodig is. Je kunt in principe Java compileren naar een native executable.[...]
Je bent in de war. Het gaat om het verschil tussen dynamisch en statisch linken met de runtime lib. Die .dll is écht niet per se nodig, ook met default libs. Statisch linken maakt je executable natuurlijk wel een stuk groter.
Ipsa Scientia Potestas Est
NNID: ShinNoNoir
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.
Je hebt een fout. Links en Rechts zijn speculatief als er meer dan 1 zijn: >| of |<Haan schreef op vrijdag 14 september 2018 @ 14:46:
[...]
Da's niet zo'n heel goed voorbeeld, maar precies eentje om wél op te splitsen![]()
code:
1 2 3 4 5 6 7 8 9 10 11 12 public void SlaAf(Richting richting) {..} public void Loop(int meters) {.. } public void SteekOver(Object obj) {..} // etc. Loop(10); SlaAf(Richting.Links); SteekOver(plein); SlaAf(Richting.Links); Loop(100) SlaAf(Richting.Rechts); //etc
Uitzonderingen bevestigen de regel
Maak je niet druk, dat doet de compressor maar
Je kunt windows, linux of macos ook downloaden en installeren. Wat is je punt? Of probeer je je gelijk te halen?RayNbow schreef op zaterdag 15 september 2018 @ 10:30:
[...]
Ah, vandaar dat je dingen als vcredist.exe kunt downloaden en installeren.
PageFault schreef op zaterdag 15 september 2018 @ 18:26:
Wat is je punt?
Het punt is dat de runtime DLLs niet standaard op elke Windows-installatie staan.PageFault schreef op zaterdag 15 september 2018 @ 09:42:
Zit standaard aan boord.
Ipsa Scientia Potestas Est
NNID: ShinNoNoir
De server core vast niet, maar alles wat ik ooit gebouwd heb, stond alles overal netjes op.RayNbow schreef op zaterdag 15 september 2018 @ 19:26:
[...]
[...]
Het punt is dat de runtime DLLs niet standaard op elke Windows-installatie staan.
Maar goed, jij wil je gelijk halen dus
msvcrt.dll is niet standaard geïnstalleerd, op geen enkele Windows uitvoering.PageFault schreef op zaterdag 15 september 2018 @ 20:17:
[...]
De server core vast niet, maar alles wat ik ooit gebouwd heb, stond alles overal netjes op.
vcredist.exe is dus nodig als je linkt tegen dynamische libs. Met statische libs heb je er geen last van, zoals ik al eerder zei.
Maar jij had gewoon ongelijkMaar goed, jij wil je gelijk halen dus
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.
@PageFault gebruikte het niet hoeven installeren van een framework als argument tegen .NET en Java. Hij vindt dat argument blijkbaar belangrijk. En als dat argument dan niet klopt omdat native code ook libraries vereisen, die ook niet altijd standaard geïnstalleerd zijn, dan is dat inderdaad belangrijk binnen die discussie over dat onderwerp.sig69 schreef op zaterdag 15 september 2018 @ 22:15:
En dan nog, dan installeer je een keer een framework. Lekker belangrijk?
Persoonlijk vind ik het een non-discussie. Een paar keer extra next-next-finish doen om JRE of .NET te installeren is geen punt zolang de documentatie maar uitlegt welke ik moet hebben.PageFault schreef op zaterdag 15 september 2018 @ 09:42:
[...]
Zit standaard aan boord. Elke keer wanneer ik java nodig heb, moet ik weer een jre downloaden. Met .net precies zo en nog erger: die zijn allemaal verschillend! Al kun je ze goddank parallel installeren (v2.x naast v4.x).
Libraries nemen je veel tijd uit handen, er zullen idd weinig zijn die alles herschrijven...
In de assembly tijd deed ik dat, maar nu echt niet meer.
Kom (in mijn werk) helaas wel eens software tegen waarbij ik zelf maar moet uitvogelen wat ik naast de applicatie nog meer nodig heb.
Ongetwijfeld, maar ik heb op geen enkele Windows uitvoering iets hoeven installeren voor de tools die door ons gemaakt zijn, dus stiekem heb jij weer ongelijk.oisyn schreef op zaterdag 15 september 2018 @ 21:48:
[...]
msvcrt.dll is niet standaard geïnstalleerd, op geen enkele Windows uitvoering.
vcredist.exe is dus nodig als je linkt tegen dynamische libs. Met statische libs heb je er geen last van, zoals ik al eerder zei.
[...]
Maar jij had gewoon ongelijk
Ik heb nooit beweerd dat je iets hoeft te installeren, sterker nog, ik heb tot 2x toe gesteld dat dat dus niet hoeft als je statisch linkt. Want als je statisch linkt, dan heb je msvcrt.dll dus niet nodig, die niet standaard aanwezig isPageFault schreef op maandag 17 september 2018 @ 15:49:
[...]
Ongetwijfeld, maar ik heb op geen enkele Windows uitvoering iets hoeven installeren voor de tools die door ons gemaakt zijn, dus stiekem heb jij weer ongelijk
Goed, kleine nuance, er is vast een msvcrt.dll aanwezig. Je hebt alleen de juiste visual studio versie nodig. Als je je app met dezelfde versie compileert als waarmee veel standaard Windows apps zijn gecompileerd, dan heb je kans dat het gewoon werkt. Maar dat is natuurlijk ook Windows-versie-afhankelijk, dus daar kun je niet vanuit gaan.
[ Voor 27% gewijzigd door .oisyn op 17-09-2018 15:55 ]
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.
Voor mijn eigen PC is dat idd een non-discussie. Op servers van klanten is dit vaak (om onterechte redenen) een hele grote discussie. Veel klanten willen nog steeds geen servers met internet toegang en moet je weer gaan leuren om de installatie ISO om een (vaak outdated) versie van .NET erop te krijgen. Beter hoef ik dat dus helemaal niet te doen.downtime schreef op zondag 16 september 2018 @ 10:44:
[...]
@PageFault gebruikte het niet hoeven installeren van een framework als argument tegen .NET en Java. Hij vindt dat argument blijkbaar belangrijk. En als dat argument dan niet klopt omdat native code ook libraries vereisen, die ook niet altijd standaard geïnstalleerd zijn, dan is dat inderdaad belangrijk binnen die discussie over dat onderwerp.
[...]
Persoonlijk vind ik het een non-discussie. Een paar keer extra next-next-finish doen om JRE of .NET te installeren is geen punt zolang de documentatie maar uitlegt welke ik moet hebben.
Kom (in mijn werk) helaas wel eens software tegen waarbij ik zelf maar moet uitvogelen wat ik naast de applicatie nog meer nodig heb.
En wat betreft JRE: sommige Oracle applicaties zijn zo verschrikkelijk picky op versie nummers. Heb je eindelijk een versie, krijg je weer een andere tool/website die (zoals ik altijd graag zou willen) de nieuwste JRE willen hebben. Gaan we weer.
Kortom: jullie beleven geen drama's, ik en mijn collega's elke dag. Dus wat mij betreft mogen ze het afschaffen, ondanks dat ik zowel Java als C# best fijn vind programmeren.
Servers zonder internet zijn de situatie waar ik dagelijks mee werk. Bij ons komen er ook geen leveranciers op de server en ik ben dus zelf degene die dan de ISO mag zoeken. Dat is niet bepaald het grootste probleem waar ik tegenaan loop als ik software moet installeren (de ISO heb je sowieso alleen voor .NET 3.5 nodig).PageFault schreef op maandag 17 september 2018 @ 15:52:
[...]
Op servers van klanten is dit vaak (om onterechte redenen) een hele grote discussie. Veel klanten willen nog steeds geen servers met internet toegang en moet je weer gaan leuren om de installatie ISO om een (vaak outdated) versie van .NET erop te krijgen. Beter hoef ik dat dus helemaal niet te doen.
Die "drama's" zijn juist mijn dagelijks werk. Zo'n drama is het niet zolang de documentatie maar deugt.En wat betreft JRE: sommige Oracle applicaties zijn zo verschrikkelijk picky op versie nummers. Heb je eindelijk een versie, krijg je weer een andere tool/website die (zoals ik altijd graag zou willen) de nieuwste JRE willen hebben. Gaan we weer.
Kortom: jullie beleven geen drama's, ik en mijn collega's elke dag.
Dat lukt natuurlijk niet voor alle 'applicaties'.dcm360 schreef op maandag 17 september 2018 @ 21:39:
Een deel van de wereld heeft dergelijke problemen dan ook al gewoon opgelost. De applicatie gaat een eigen container in, en krijgt daarin de benodigde dependencies zonder dat het invloed heeft op andere applicaties.
Web applicaties, (micro) services, dat lukt allemaal wel, maar een desktop applicatie lijkt me wel een ander paar mouwen
https://fgheysels.github.io/
Het is niet helemaal mijn vakgebied, maar ook dat bestaat. Snappy op Linux en App-V op Windows kunnen prima overweg met desktop-applicaties.whoami schreef op maandag 17 september 2018 @ 21:45:
[...]
Dat lukt natuurlijk niet voor alle 'applicaties'.
Web applicaties, (micro) services, dat lukt allemaal wel, maar een desktop applicatie lijkt me wel een ander paar mouwen
Kuch...PageFault schreef op vrijdag 14 september 2018 @ 23:28:
De enige reden die ik kn bedenken: native code, geen framework nodig. Dat vind ik bij zowel Java als .NET het grootste nadeel.
.NET Core kan ook naar een native single-executable gecompileerd worden.
https://github.com/dotnet...tation/intro-to-corert.md
[ Voor 13% gewijzigd door R4gnax op 17-09-2018 23:54 ]
Naar UWP. WhooptidooR4gnax schreef op maandag 17 september 2018 @ 23:53:
[...]
Kuch...
.NET Core kan ook naar een native single-executable gecompileerd worden.
https://github.com/dotnet...tation/intro-to-corert.md

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.
Jullie gebruiken out-of-line asm?.oisyn schreef op zaterdag 15 september 2018 @ 11:00:
Wow, zelfs wij gebruiken dat al járen niet meer.
Nee we schrijven gewoon direct microcodeOlaf van der Spek schreef op dinsdag 18 september 2018 @ 15:40:
[...]
Jullie gebruiken out-of-line asm?
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.
Is dat een oplossing of een workaround?dcm360 schreef op maandag 17 september 2018 @ 21:39:
Een deel van de wereld heeft dergelijke problemen dan ook al gewoon opgelost. De applicatie gaat een eigen container in, en krijgt daarin de benodigde dependencies zonder dat het invloed heeft op andere applicaties.
Ach, dan begrijp je misschien wat beter hoe .NET geïmplementeerd is.sig69 schreef op vrijdag 14 september 2018 @ 21:26:
Mij interesseert het me geen zak. Ik programmeer in C#. Daar ken ik alle ins en outs van. Waarom zou ik me druk moeten maken om C++, of zelfs assembly?
En als een .NET Core applicatie dan niet wil draaien op een Linux machine, je tenminste een idee hebt van wat libuv is en waarom deze belangrijk is.
Dat soort dingetjes.
Ask yourself if you are happy and then you cease to be.
Wat vind je zelf? Ik zou eerder gaan voor neveneffect, want ik stop programma's niet in containers om deze reden.Olaf van der Spek schreef op dinsdag 18 september 2018 @ 15:45:
[...]
Is dat een oplossing of een workaround?
1
| return StatusCode(HttpStatusCode.OK); |
Ik denk dat dit te moeilijk was:
1
| return Ok(); |
Toch kan, afhankelijk van de verdere context, de bovenste een stuk duidelijker zijn dan de onderste. Bij de bovenste weet ik gelijk dat het om een http-statuscode gaat. Bij de onderste kan die Ok op alles slaan, van de koffie tot de database tot je liefdesleven. Dan moet je die informatie bijvoorbeeld weer in een (lange) functienaam stoppen.InZane schreef op woensdag 26 september 2018 @ 16:08:
Oke, het is niet gelijk heel slecht ofzo, maar ik kwam net deze tegen:
C#:
1 return StatusCode(HttpStatusCode.OK);
Ik denk dat dit te moeilijk was:
C#:
1 return Ok();
Zo scherp als een voetbal!
Valt wel mee. Je zit dan al in een (API?)controller waar Ok() gewoon een inherited method is neem ik aan.Reptile209 schreef op woensdag 26 september 2018 @ 17:49:
[...]
Toch kan, afhankelijk van de verdere context, de bovenste een stuk duidelijker zijn dan de onderste. Bij de bovenste weet ik gelijk dat het om een http-statuscode gaat. Bij de onderste kan die Ok op alles slaan, van de koffie tot de database tot je liefdesleven. Dan moet je die informatie bijvoorbeeld weer in een (lange) functienaam stoppen.
"The question of whether a computer can think is no more interesting than the question of whether a submarine can swim" - Edsger Dijkstra
Inderdaad, dit ging om een doodnormale API controller.Mugwump schreef op woensdag 26 september 2018 @ 17:53:
[...]
Valt wel mee. Je zit dan al in een (API?)controller waar Ok() gewoon een inherited method is neem ik aan.
You don't have to be crazy to do this job, but it helps ....
Dat kom je in C heel vaak tegenAlain schreef op woensdag 26 september 2018 @ 23:41:
Een getter die een status retourneert i.p.v. de opgevraagde waarde en de waarde wegschrijft in een argument. Zo irritant.
Look, runners deal in discomfort. After you get past a certain point, that’s all there really is. There is no finesse here.
Ik had serieus een collega die dit soort code schreef:Alain schreef op woensdag 26 september 2018 @ 23:41:
Een getter die een status retourneert i.p.v. de opgevraagde waarde en de waarde wegschrijft in een argument. Zo irritant.
1
2
3
4
5
6
7
8
9
| public Product ChangeSomethingOnProduct(string name, Product p) { p = new Product(); p.setName(name); return p; } Product myProduct = new Product(); myProduct = ChangeSomethingOnProduct("newName", myProduct); |
"The question of whether a computer can think is no more interesting than the question of whether a submarine can swim" - Edsger Dijkstra
Waren er threading issues? Dit ziet er uit als een poor man's copy and update.Mugwump schreef op donderdag 27 september 2018 @ 13:00:
[...]
Ik had serieus een collega die dit soort code schreef:
C#:
1 2 3 4 5 6 7 8 9 public Product ChangeSomethingOnProduct(string name, Product p) { p = new Product(); p.setName(name); return p; } Product myProduct = new Product(); myProduct = ChangeSomethingOnProduct("newName", myProduct);
Less alienation, more cooperation.
Nee, gewoon een totaal gebrek aan kennis of inzicht. Toen ik betrokken raakte bij dit deel van een project omdat het voor geen meter liep en de code bekeek zag ik allemaal van dit soort constructies. Betreffende (leadSandor_Clegane schreef op donderdag 27 september 2018 @ 15:40:
[...]
Waren er threading issues? Dit ziet er uit als een poor man's copy and update.
"The question of whether a computer can think is no more interesting than the question of whether a submarine can swim" - Edsger Dijkstra
Of met framework deployment bijgevoegd. Dan is dat gewoon onderdeel van de app.
Java kan dat ook min-of-meer, Jetbrains doet dat al voor Upsource en TeamCity. Niet helemaal hetzelfde, maar ala.
[Te koop: 3D printers] [Website] Agile tools: [Return: retrospectives] [Pokertime: planning poker]
Ah zo, dan is het gewoon een hoop meuk.Mugwump schreef op donderdag 27 september 2018 @ 15:50:
[...]
Nee, gewoon een totaal gebrek aan kennis of inzicht. Toen ik betrokken raakte bij dit deel van een project omdat het voor geen meter liep en de code bekeek zag ik allemaal van dit soort constructies. Betreffende (lead) developer kon geen enkel antwoord geven op waarom dit soort keuzes waren gemaakt. Die hebben we uiteindelijk ook vervangen en de codebase is nog steeds "under reconstruction". Er zijn nog delen van de codebase die niet herbouwd zijn naar iets fatsoenlijks en daar kost een kleine change mensen echt gewoon letterlijk 10 keer zoveel tijd als in de fatsoenlijk gestructureerde code.
Less alienation, more cooperation.
1
2
3
4
5
| for (Battery b : batteries) { for (Cell c : b.getCells()) { interface.setTemperature(c.getTemperature()); } } |
Wat bezielt iemand om dit soort code uit te poepen. Ga aub een andere baan zoeken ...
You don't have to be crazy to do this job, but it helps ....
Hoewel de code-samples hier regelmatig hilarisch zijn, mis ik vaak de context. Specifiek, de context van het moment van schrijven.Alain schreef op vrijdag 5 oktober 2018 @ 01:00:
code:
1 2 3 4 5 for (Battery b : batteries) { for (Cell c : b.getCells()) { interface.setTemperature(c.getTemperature()); } }
Wat bezielt iemand om dit soort code uit te poepen. Ga aub een andere baan zoeken ...
- Was de persoon die dit schreef ervaren of niet?
- Wat was de deadline?
- Hadden ze op het moment van schrijven betere opties, of was dit de beste optie die er was gegeven de kennis?
- Erkent de schrijver dat het achteraf gezien niet de beste oplossing was?
Er zijn zo veel factoren die beroerde code naar productie brengen. 1 engineer er op afrekenen daarentegen...
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!
Misschien ligt het aan mijn eigen arbeidsomgeving, maar wat is er daadwerkelijk zo slecht aan deze code? Wij hebben (zij het in PHP) ook regelmatig zulke constructies. Ik vind ze prettig lezen en het is vrij vlot duidelijk wat er gebeurt.Alain schreef op vrijdag 5 oktober 2018 @ 01:00:
code:
1 2 3 4 5 for (Battery b : batteries) { for (Cell c : b.getCells()) { interface.setTemperature(c.getTemperature()); } }
Wat bezielt iemand om dit soort code uit te poepen. Ga aub een andere baan zoeken ...
Daarnaast mist het, zoals @Firesphere terecht opmerkt, ontzettend aan context.
If money talks then I'm a mime
If time is money then I'm out of time
Overigens, een andere fout die blijkbaar ook niemand opvalt is dat alle temperaturen worden gezet via een enkele setter. Dus ofwel alleen de temperatuur van de laatste cell van de laatste battery blijft over, of die interface is heel raar ontworpen.
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.
Maar is het wel C++? En ja, die setter zat ik ook over na te denken maar ik heb ook wel setters gezien die eigenlijk onder water dingen bij elkaar optellen, of een gemiddelde nemen aan de hand van de voorgaande "set" values. Vies, maar het gebeurt helaas....oisyn schreef op vrijdag 5 oktober 2018 @ 08:48:
Nee, wat hier mist is kennis van C++, en dat is waarom jullie het niet zien. Er worden kopieën gemaakt van de batterijen en de cellen.
Overigens, een andere fout die blijkbaar ook niemand opvalt is dat alle temperaturen worden gezet via een enkele setter. Dus ofwel alleen de temperatuur van de laatste cell van de laatste battery blijft over, of die interface is heel raar ontworpen.
Hoeveel talen ken jij nog meer die de for (a : b) syntax gebruiken?
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.
Ik vanaf nu 1, C++.oisyn schreef op vrijdag 5 oktober 2018 @ 09:12:
[...]
Hoeveel talen ken jij nog meer die de for (a : b) syntax gebruiken?
Java: https://docs.oracle.com/j...ide/language/foreach.html.oisyn schreef op vrijdag 5 oktober 2018 @ 09:12:
[...]
Hoeveel talen ken jij nog meer die de for (a : b) syntax gebruiken?
1
2
3
4
5
| for (Suit suit : suits) { for (Rank rank : ranks) { sortedDeck.add(new Card(suit, rank)); } } |
.... Ik dacht ook C# maar die gebruikt blijkbaar "in" ipv ":". Andere talen die dat doen ken ik zo niet off the top of my head.
Rare syntax? Ik vind hem best duidelijk, je geeft aan wat je object type zou moeten zijn uit een list van objecten en je hebt geen gezeik met index-out-of-bounds, een (of meerdere , bij nested forloops) counters die je bij moet houden en het leest best makkelijk naar mijn mening. Maar goed, ieder zijn ding daarinkenneth schreef op vrijdag 5 oktober 2018 @ 09:19:
Ah, nu snap ik hem ook pas. Rare foreach-syntax, zal wel Java zijnNiet dus
[ Voor 45% gewijzigd door Merethil op 05-10-2018 09:22 ]
Look, runners deal in discomfort. After you get past a certain point, that’s all there really is. There is no finesse here.
Dan is dat wel kwalijk. Een dergelijke constructie in PHP geeft een ArrayIterator of iets dergelijks terug..oisyn schreef op vrijdag 5 oktober 2018 @ 08:48:
Nee, wat hier mist is kennis van C++, en dat is waarom jullie het niet zien. Er worden kopieën gemaakt van de batterijen en de cellen.
Dat was me wel opgevallen, maar het ontbreekt hier aan zoveel context, dat ik niet weet of dit goed (gewenst) of fout (ongewenst) is.Overigens, een andere fout die blijkbaar ook niemand opvalt is dat alle temperaturen worden gezet via een enkele setter. Dus ofwel alleen de temperatuur van de laatste cell van de laatste battery blijft over, of die interface is heel raar ontworpen.
Voor hetzelfde geld zit er achter interface een service welke een rood lampje laat aangaan als 1 van de cellen een bepaalde threshold overschrijdt.
If money talks then I'm a mime
If time is money then I'm out of time
Ik dacht precies hetzelfde. Ik herkende het ook als Java code en zag, op die opvallende setTemperature call na, niks bijzonderskenneth schreef op vrijdag 5 oktober 2018 @ 09:19:
Ah, nu snap ik hem ook pas. Rare foreach-syntax, zal wel Java zijnNiet dus

Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live.
In Java doet 'ie onderwater ook gewoon een iterator gebruiken, dus als het inderdaad Java is zoals ik hierboven aangaf, dan is het hoogstens jammer dat iemand loops moet nesten of geen streams gebruikt, maar verder is het prima. Syntax is wel een stuk duidelijker en compacter dan de andere opties naar mijn mening.Matis schreef op vrijdag 5 oktober 2018 @ 09:29:
[...]
Dan is dat wel kwalijk. Een dergelijke constructie in PHP geeft een ArrayIterator of iets dergelijks terug.
[...]
Dat was me wel opgevallen, maar het ontbreekt hier aan zoveel context, dat ik niet weet of dit goed (gewenst) of fout (ongewenst) is.
Voor hetzelfde geld zit er achter interface een service welke een rood lampje laat aangaan als 1 van de cellen een bepaalde threshold overschrijdt.
Setter blijft wel dubieus
Idd. Dat is het enige rare. Vanuit de code lijkt het alsof je een O(n * m) complexe loop doet en alleen maar de laatste waarde overhoudt. Maar het kan prima zijn dat die setTemperature call eigenlijk een soort POST ofzo doet onderwater. Die nested loop is verder niet vreemd.P1nGu1n schreef op vrijdag 5 oktober 2018 @ 09:33:
Ik dacht precies hetzelfde. Ik herkende het ook als Java code en zag, op die opvallende setTemperature call na, niks bijzonders
https://niels.nu
Ah ok, ik dacht dat Java ook in gebruikte. Dan was het wellicht een verkeerde aanname van mij, jaMerethil schreef op vrijdag 5 oktober 2018 @ 09:18:
[...]
Java: https://docs.oracle.com/j...ide/language/foreach.html
Java:
1 2 3 4 5 for (Suit suit : suits) { for (Rank rank : ranks) { sortedDeck.add(new Card(suit, rank)); } }
C++ gebruikt ook een iterator onder water, maar dat is het punt helemaal nietMatis schreef op vrijdag 5 oktober 2018 @ 09:29:
[...]
Dan is dat wel kwalijk. Een dergelijke constructie in PHP geeft een ArrayIterator of iets dergelijks terug.
1
2
3
4
5
| for (Battery& b : batteries) { for (Cell& c : b.getCells()) { interface.setTemperature(c.getTemperature()); } } |
[ Voor 7% gewijzigd door .oisyn op 05-10-2018 09:56 ]
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.
Ohja, zo moest dat. Het is al weer een lange tijd geleden dat ik C++ heb gezien, laat staan geschreven..oisyn schreef op vrijdag 5 oktober 2018 @ 09:54:
C++ gebruikt ook een iterator onder water, maar dat is het punt helemaal niet. In C++ is standaard alles een value-type. Bij SomeClass a = b; is a dus altijd een kopie van b. Wil je een reference, dan moet je & gebruiken.
C++:
1 2 3 4 5 for (Battery& b : batteries) { for (Cell& c : b.getCells()) { interface.setTemperature(c.getTemperature()); } }
Ik weet nog dat een oudcollega verknocht was om overal (waar mogelijk) const voor te knallen.
Heeft dat nog een impact op de perfomance?
If money talks then I'm a mime
If time is money then I'm out of time
Edit: Nee, klopt niet wat ik schreef..oisyn schreef op vrijdag 5 oktober 2018 @ 09:54:
[...]
Ah ok, ik dacht dat Java ook in gebruikte. Dan was het wellicht een verkeerde aanname van mij, ja
[...]
C++ gebruikt ook een iterator onder water, maar dat is het punt helemaal niet. In C++ is standaard alles een value-type. Bij SomeClass a = b; is a dus altijd een kopie van b. Wil je een reference, dan moet je & gebruiken.
C++:
1 2 3 4 5 for (Battery& b : batteries) { for (Cell& c : b.getCells()) { interface.setTemperature(c.getTemperature()); } }
Verbetering op wat ik hier had staan:
In Java zijn het voor objecten geen copies, maar technisch gezien pointers by value, waardoor de overhead in dit geval dus ook laag is. Als het dus idd C++ is, is het not-done maar in Java kan het dus prima
Wel vet om weer eens te lezen hoe het in C++ zit, ik heb al jaren niets meer met die taal gedaan en ben het merendeel vergeten merk ik
[ Voor 38% gewijzigd door Merethil op 05-10-2018 10:19 ]
Daar is best wat voor te zeggen. Het geeft aan de lezer van de code een duidelijk signaal dat je de variabele nooit gaat wijzigen.Matis schreef op vrijdag 5 oktober 2018 @ 09:58:
Ik weet nog dat een oudcollega verknocht was om overal (waar mogelijk) const voor te knallen.
Kort door de bocht: nooit. Maar er is best een esoterisch voorbeeld te verzinnen waarbij het wellicht uitmaakt.Heeft dat nog een impact op de perfomance?
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.
Dus zo esoterisch hoef je niet te gaan voor situaties waar het belangrijk is
Alleen voor globals of statics, en alleen voor simpele compile time literals. En dan kun je daar tegenwoordig beter constexpr van maken, dan hoeft het niet eens in flashgeheugenSissors schreef op vrijdag 5 oktober 2018 @ 10:04:
Zoals alles wat embedded (mcus) wordt geprogrammeerd. Met const vertel je compiler dat het in het flash geheugen ipv sram geplaatst kan worden, wat enorm scheelt.
Maar als ik iemand hoor zeggen dat hij overal const voor plaatst, dan denk ik vooral aan lokale variabelen
[ Voor 30% gewijzigd door .oisyn op 05-10-2018 10:13 ]
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.

Look, runners deal in discomfort. After you get past a certain point, that’s all there really is. There is no finesse here.
Waar is de copy en waar is de update? De eerste regel overschrijft meteen alles wat er eventueel in product zat.Sandor_Clegane schreef op donderdag 27 september 2018 @ 15:40:
[...]
Waren er threading issues? Dit ziet er uit als een poor man's copy and update.
Om eerlijk te zijn zou ik niet eens weten wat ik hier nog mee moet.
Beetje meer context had inderdaad wel gemogen.Matis schreef op vrijdag 5 oktober 2018 @ 08:28:
Daarnaast mist het, zoals @Firesphere terecht opmerkt, ontzettend aan context.
Ik heb een project met "werkende" code gekregen die ik moet uitbreiden. We hebben één programmeur gehad (naar eigen zeggen ervaren C++ programmeur) en overal waar hij aan gewerkt hebt zie je dit soort dingen.
Zoals .oisyn aangeeft, krijg je in dit geval de waarde te zien van de laatste cel in de laatste batterij. Dan denk je echt niet na bij wat je doet. Ik zag deze fout toevallig omdat de laatste batterij uitviel en ik ineens 0 te zien kreeg, maar iets zegt mij dat ik de rest ook even moet screenen en heel goed testen.
Goed om te weten, dat wist ik niet. Gelukkig zit de code iets anders in elkaar (itereert over een array). Het voorbeeld was meer als pseudo code bedoeld..oisyn schreef op vrijdag 5 oktober 2018 @ 08:48:
Nee, wat hier mist is kennis van C++, en dat is waarom jullie het niet zien. Er worden kopieën gemaakt van de batterijen en de cellen.
[ Voor 20% gewijzigd door Alain op 05-10-2018 23:12 ]
You don't have to be crazy to do this job, but it helps ....
Ik geef rustig toe dat mijn C++ kennis niet compleet is.oisyn schreef op vrijdag 5 oktober 2018 @ 08:48:
Nee, wat hier mist is kennis van C++, en dat is waarom jullie het niet zien. Er worden kopieën gemaakt van de batterijen en de cellen.
Overigens, een andere fout die blijkbaar ook niemand opvalt is dat alle temperaturen worden gezet via een enkele setter. Dus ofwel alleen de temperatuur van de laatste cell van de laatste battery blijft over, of die interface is heel raar ontworpen.
Maar dat doet niets af van wat ik zei
[ Voor 3% gewijzigd door Firesphere op 05-10-2018 23:09 ]
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!
Het is niet eens programmeren... maar gisteren is daadwerkelijk de volgende CSS-regel ingecheckt:
1
| height: calc(90vh - 75vw); |
Ja: wtf!
☀️ 4500wp zuid | 🔋MT Venus 5kW | 🚗 Tesla Model 3 SR+ 2020 | ❄️ Daikin 3MXM 4kW
Dat is er eentje die toe is aan vakantie!Richh schreef op donderdag 28 februari 2019 @ 09:16:
Beetje dood hier in dit topic
Het is niet eens programmeren... maar gisteren is daadwerkelijk de volgende CSS-regel ingecheckt:
Cascading Stylesheet:
1 height: calc(90vh - 75vw);
Ja: wtf!
Ik zit oprecht mijzelf af te vragen wat hier geprobeerd is te doen (ja ik weet het topic, maar toch, iemand wou iets proberen bereiken).Richh schreef op donderdag 28 februari 2019 @ 09:16:
Beetje dood hier in dit topic
Het is niet eens programmeren... maar gisteren is daadwerkelijk de volgende CSS-regel ingecheckt:
Cascading Stylesheet:
1 height: calc(90vh - 75vw);
Ja: wtf!
Ik heb de volgende theorie:
- Er is een header van 10% van de schermhoogte (10vh)
- Daaronder zit in een (beeldend) scherm breed content vlak met een 3/4 beeldverhouding (75vw).
- Daaronder zit een footer met de resterende ruimte (90vh - 75vw);
Dit dus: https://codepen.io/svenvandescheur/pen/gEajxJ?editors=1100.
Mar dit is slechts een theorie.
Je moet er niet zoveel achter zoekenEd Vertijsment schreef op donderdag 28 februari 2019 @ 16:02:
[...]
Ik zit oprecht mijzelf af te vragen wat hier geprobeerd is te doen (ja ik weet het topic, maar toch, iemand wou iets proberen bereiken).
Ik heb de volgende theorie:
- Er is een header van 10% van de schermhoogte (10vh)
- Daaronder zit in een (beeldend) scherm breed content vlak met een 3/4 beeldverhouding (75vw).
- Daaronder zit een footer met de resterende ruimte (90vh - 75vw);
Dit dus: https://codepen.io/svenvandescheur/pen/gEajxJ?editors=1100.
Mar dit is slechts een theorie.
Ik heb de desbetreffende collega, die wat wil leren op front-end vlak, deze fiddle aangeleverd: https://jsfiddle.net/8ryndebu/
En aangegeven dat die 100px uit de fiddle aangepast moet worden op onze eigen applicatie. Moet immers niet alles voorkauwen. Er zit immers een header in van 60 pixels en dan heb je nog een beetje padding om dit element heen.
Moet lukken, toch?
Hoe deze collega het heeft bedacht om '75vw' toe te voegen, is mij dus ook écht een totaal raadsel.
Het enige wat ik kan bedenken is dat er random 'vw' is ontstaan en dat er bij is blijven stellen tot dat toevallig het aantal pixels opleverde wat paste icm het scherm van de collega.
Want: "maar het werkt op mijn scherm"


Zit op dit moment uit te leggen dat het niet echt nuttig is om overal een border van 1px omheen te zetten, om daarna alles een margin van -1px te geven.
☀️ 4500wp zuid | 🔋MT Venus 5kW | 🚗 Tesla Model 3 SR+ 2020 | ❄️ Daikin 3MXM 4kW
Punt was hier natuurlijk dat er zonder context geen uitspraak gedaan kan worden of de desbetreffende regel wel of geen functie had. Ik had dan ook niet zo veel moeite om een use case te bedenken waarin de regel een valide antwoord zou kunnen zijn.Richh schreef op donderdag 28 februari 2019 @ 16:48:
[...]
Je moet er niet zoveel achter zoeken![]()
Ik heb de desbetreffende collega, die wat wil leren op front-end vlak, deze fiddle aangeleverd: https://jsfiddle.net/8ryndebu/
En aangegeven dat die 100px uit de fiddle aangepast moet worden op onze eigen applicatie. Moet immers niet alles voorkauwen. Er zit immers een header in van 60 pixels en dan heb je nog een beetje padding om dit element heen.
Moet lukken, toch?
Hoe deze collega het heeft bedacht om '75vw' toe te voegen, is mij dus ook écht een totaal raadsel.
Het enige wat ik kan bedenken is dat er random 'vw' is ontstaan en dat er bij is blijven stellen tot dat toevallig het aantal pixels opleverde wat paste icm het scherm van de collega.
Want: "maar het werkt op mijn scherm"![]()
Zit op dit moment uit te leggen dat het niet echt nuttig is om overal een border van 1px omheen te zetten, om daarna alles een margin van -1px te geven.
Dat gezegd hebbende, random pixels/procenten/(rems)/vhs of vws inmikken zonder verklaring waarom het werkt is natuurlijk nooit een goed idee.
Sjiek stukje scss/BEM trouwens. Alleen kunnen we alsjeblieft een keer stoppen met left en right gebruiken in classnames. Niet persoonlijk bedoeld natuurlijk, maar wat als we nou op mobiel zitten en alles onder elkaar komt? Of een vertaling maken naar een rechts-naar-links taal?
Kun je natuurlijk zeggen "doen we toch niet", maar dat weet je niet en veranderd niets aan best practice om gewoon een goede naam te bedenken in plaats van links of rechts.
Wat betreft left/right: dat is hier in het voorbeeld om niet teveel applicatie classes te verklappen, anders wordt 't immers ook weer erg simpel.
Al heb je wel helemaal gelijk. Ik geef mijn classes ook bij voorkeur een naam die met de inhoud te maken heeft ipv left/right.
☀️ 4500wp zuid | 🔋MT Venus 5kW | 🚗 Tesla Model 3 SR+ 2020 | ❄️ Daikin 3MXM 4kW
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
| strToevoeg = CStr(Year(Now)) If Month(Now) < 10 Then strToevoeg = strToevoeg & "0" & CStr(Month(Now)) Else strToevoeg = strToevoeg & CStr(Month(Now)) End If If Day(Now) < 10 Then strToevoeg = strToevoeg & "0" & CStr(Day(Now)) Else strToevoeg = strToevoeg & CStr(Day(Now)) End If If Hour(Now) < 10 Then strToevoeg = strToevoeg & "0" & CStr(Hour(Now)) Else strToevoeg = strToevoeg & CStr(Hour(Now)) End If If Minute(Now) < 10 Then strToevoeg = strToevoeg & "0" & CStr(Minute(Now)) Else strToevoeg = strToevoeg & CStr(Minute(Now)) End If If Second(Now) < 10 Then strToevoeg = strToevoeg & "0" & CStr(Second(Now)) Else strToevoeg = strToevoeg & CStr(Second(Now)) End If |
[ Voor 7% gewijzigd door .oisyn op 01-04-2019 10:43 ]
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.
[ Voor 68% gewijzigd door Janoz op 01-04-2019 14:20 ]
Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'
Ah ja, die jaar bovenaan zag ik niet.Janoz schreef op maandag 1 april 2019 @ 14:19:
Een jaar zelfs hmm, now is natuurlijk geen functie maar een variable
Maar je hebt een punt. Ik ging er vanuit dat het iets als de DateTime.Now property was.
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.
Het is wel een functie, namelijk deze (ok, ik had niet vermeld dat het VBA is, maar ook niet dat het .NET is ;-)).Janoz schreef op maandag 1 april 2019 @ 14:19:
Een jaar zelfs hmm, now is natuurlijk geen functie maar een variable
.oisyn schreef op maandag 1 april 2019 @ 10:42:
Mooi hoe die code ook iets kan printen dat een maand achter loopt als je pech hebt
Wat mis ik hier?
2x Dell UP2716D | R9 7950X | 128GB RAM | 980 Pro 2TB x2 | RTX2070 Super
.oisyn: Windows is net zo slecht in commandline als Linux in GUI
Now is een property en geeft dus altijd de huidige tijd weer. Wat als de klok omslaat van 31-12-2018 23:59:59 naar 1-01-2019 0:00:00 op regel 2?
Tevens kan het een "0" voor iets zetten wat inmiddels alweer groter is dan 9, of juist een "0" missen als iets terugrolt naar 0.
[ Voor 18% gewijzigd door .oisyn op 01-04-2019 16:01 ]
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.
Oh ja sure, dat is natuurlijk een optie. Ik dacht dat je ergens anders op doelde, want dit is niet "als je pech hebt", maar ik denk bijna een kleinere kans dan de loterij winnen.oisyn schreef op maandag 1 april 2019 @ 15:59:
[...]
Now is een property en geeft dus altijd de huidige tijd weer. Wat als de klok omslaat van 31-12-2018 23:59:59 naar 1-01-2019 0:00:00 op regel 2?
Tevens kan het een "0" voor iets zetten wat inmiddels alweer groter is dan 9, of juist een "0" missen als iets terugrolt naar 0.
2x Dell UP2716D | R9 7950X | 128GB RAM | 980 Pro 2TB x2 | RTX2070 Super
.oisyn: Windows is net zo slecht in commandline als Linux in GUI
Het is 1 april dus ik hoop dat je een grapje maakt...F.West98 schreef op maandag 1 april 2019 @ 16:07:
[...]
Oh ja sure, dat is natuurlijk een optie. Ik dacht dat je ergens anders op doelde, want dit is niet "als je pech hebt", maar ik denk bijna een kleinere kans dan de loterij winnen
Doe mij maar dezelfde kansen bij de loterij dan!F.West98 schreef op maandag 1 april 2019 @ 16:07:
Oh ja sure, dat is natuurlijk een optie. Ik dacht dat je ergens anders op doelde, want dit is niet "als je pech hebt", maar ik denk bijna een kleinere kans dan de loterij winnen

Het is natuurlijk zwaar afhankelijk van hoe vaak die code gedraaid word maar er is een aanzienlijke kans (waarbij de definitie van aanzienlijk natuurlijk voor iedereen anders is).
En de oplossing is zo simpel: foo = Now en vervolgens overal foo gebruiken. Maar goed, dan is de rest van die baggercode nog niet weg

[ Voor 33% gewijzigd door RobIII op 01-04-2019 16:41 ]
There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.
Je eigen tweaker.me redirect
Over mij
Hangt er natuurlijk vanaf of de taal pass-by-value of pass-by-reference hanteertRobIII schreef op maandag 1 april 2019 @ 16:24:
[...]
Dan mij maar dezelfde kansen bij de loterij dan!
Het is natuurlijk zwaar afhankelijk van hoe vaak die code gedraaid word maar er is een aanzienlijke kans (waarbij de definitie van aanzienlijk natuurlijk voor iedereen anders is).
En de oplossing is zo simpel: foo = Now en vervolgens overal foo gebruiken. Maar goed, dan is de rest van die baggercode nog niet weg
Het gaat hier om VBScriptDynaSpan schreef op maandag 1 april 2019 @ 16:32:
[...]
Hangt er natuurlijk vanaf of de taal copy-by-value of copy-by-reference hanteert
There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.
Je eigen tweaker.me redirect
Over mij
1
2
| var dateTime = DateTime.Now; var minute = (dateTime.Second + 100).ToString().Substring(1); |
Het verdient niet de schoonheidsprijs, maar het geeft geen foute output.
We are shaping the future
Ik keur het niet goed hoor! Maar inderdaad afhankelijk van hoe vaak die code draait. Als dat 1x per dag is dan is de kans dat het op maandniveau fout gaat minimaal. De kans dat het op enig niveau fout gaat is natuurlijk een stuk groter.RobIII schreef op maandag 1 april 2019 @ 16:24:
[...]
Doe mij maar dezelfde kansen bij de loterij dan!
Het is natuurlijk zwaar afhankelijk van hoe vaak die code gedraaid word maar er is een aanzienlijke kans (waarbij de definitie van aanzienlijk natuurlijk voor iedereen anders is).
En de oplossing is zo simpel: foo = Now en vervolgens overal foo gebruiken. Maar goed, dan is de rest van die baggercode nog niet weg
2x Dell UP2716D | R9 7950X | 128GB RAM | 980 Pro 2TB x2 | RTX2070 Super
.oisyn: Windows is net zo slecht in commandline als Linux in GUI
Er is geen argument passing, het gaat om het opslaan van het resultaat van een functieDynaSpan schreef op maandag 1 april 2019 @ 16:32:
[...]
Hangt er natuurlijk vanaf of de taal pass-by-value of pass-by-reference hanteert
Dan hoop ik wel dat die variabele gewoon verkeerd is genoemd danAlex) schreef op maandag 1 april 2019 @ 16:37:
Dan kun je nog beter doen wat ik ooit in een inherited codebase aantrof...
C#:
1 2 var dateTime = DateTime.Now; var minute = (dateTime.Second + 100).ToString().Substring(1);
Het verdient niet de schoonheidsprijs, maar het geeft geen foute output.
[ Voor 43% gewijzigd door .oisyn op 01-04-2019 19:15 ]
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.
Oh.oisyn schreef op maandag 1 april 2019 @ 19:11:
[...]
Dan hoop ik wel dat die variabele gewoon verkeerd is genoemd dan

Goed opgemerkt
We are shaping the future
[ Voor 10% gewijzigd door BertS op 01-04-2019 19:36 ]
[ Voor 29% gewijzigd door .oisyn op 01-04-2019 19:45 ]
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.
09 -> 11, 01 -> 00 en veel meer zouden ook nog voor kunnen komen..oisyn schreef op maandag 1 april 2019 @ 19:45:
@BertS Het gaat elke minuut 2x fout, he. Van xx:yy:09 naar 10 en van 59 naar 00. Waarbij die laatste potentieel een duplicate timestamp kan genereren.
Ligt eraan, zo te zien is het bedoeld om een op de seconde nauwkeure timestamp voor iets te zetten.F.West98 schreef op maandag 1 april 2019 @ 16:07:
[...]
Oh ja sure, dat is natuurlijk een optie. Ik dacht dat je ergens anders op doelde, want dit is niet "als je pech hebt", maar ik denk bijna een kleinere kans dan de loterij winnen
Dan is de kans ook vrij groot dat het om de paar seconde word aangeroepen.
Als je elke 2 seconde een kraslot koopt, is de kans op de loterij winnen best groot
Heuveltjes CPU geschiedenis door de jaren heen : AMD 486dx4 100, Cyrix PR166+, Intel P233MMX, Intel Celeron 366Mhz, AMD K6-450, AMD duron 600, AMD Thunderbird 1200mhz, AMD Athlon 64 x2 5600, AMD Phenom X3 720, Intel i5 4460, AMD Ryzen 5 3600 5800x3d
Of waarom je een specifieke export niet terug kan vinden.
[ Voor 11% gewijzigd door Janoz op 02-04-2019 11:31 ]
Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'
1
2
3
4
5
| private getCode(column:string):string { switch (column) { default: return column; } } |
Er zal een reden voor geweest zijn... maar ik kan ze echt niet bedenken...
* ElkeBxl hits the delete button
Without nipples, boobs are pointless - 365 project - In mijn hoofd is het alle dagen Kerstmis - What type of bees make milk? Boobies! - What type of bees are scary? BoooOOOOOooobeees! - Cactusliefhebster
Op dit moment zal die reden er ook niet zijn. Dat neemt niet weg dat dit een abstractie zou kunnen zijn die in de toekomst nut kan krijgen. Bijv. omdat de column code via een bepaalde logica wordt getransformeerd naar een andere code.ElkeBxl schreef op donderdag 5 september 2019 @ 16:08:
code:
1 2 3 4 5 private getCode(column:string):string { switch (column) { default: return column; } }
Er zal een reden voor geweest zijn... maar ik kan ze echt niet bedenken...
* ElkeBxl hits the delete button
Sinds de 2 dagen regel reageer ik hier niet meer
YAGNICurlyMo schreef op donderdag 5 september 2019 @ 16:14:
[...]
Op dit moment zal die reden er ook niet zijn. Dat neemt niet weg dat dit een abstractie zou kunnen zijn die in de toekomst nut kan krijgen. Bijv. omdat de column code via een bepaalde logica wordt getransformeerd naar een andere code.
Ik denk eerder dat dit het resultaat is van het verwijderen van functionaliteit. Dus dat vroeger meer cases in die switch zaten, maar die niet meer van toepassing waren en dus verwijderd. Alleen niet verder nagedacht om ook die switch (of methode) te schonen.CurlyMo schreef op donderdag 5 september 2019 @ 16:14:
[...]
Op dit moment zal die reden er ook niet zijn. Dat neemt niet weg dat dit een abstractie zou kunnen zijn die in de toekomst nut kan krijgen. Bijv. omdat de column code via een bepaalde logica wordt getransformeerd naar een andere code.
let the past be the past.
Inderdaad, schrijf die abstractie dan in te toekomst maar.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
| return 'succes'; } else { return 'error'; } } else { return 'error'; } } else { return 'error'; } } else { return 'error'; } } |
Booleans zijn blijkbaar te moeilijk, en wat de F hoeveel genested if's heeft een mens nodig >.> *grom*
Lang leven de goto.Xantios schreef op woensdag 18 september 2019 @ 11:28:
Booleans zijn blijkbaar te moeilijk, en wat de F hoeveel genested if's heeft een mens nodig >.> *grom*
* CurlyMo zet zich schrap
Sinds de 2 dagen regel reageer ik hier niet meer
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.