Vinnaren i pepparkakshustävlingen!
  • 3
  • 4
2023-02-26, 18:14
  #37
Medlem
FlyboySevens avatar
Citat:
Ursprungligen postat av Marinerad65
Ja exakt. Det är precis det som får mig att tveka inför att bara börja knacka kod i blindo. Därför att sannolikheten att den lösning jag 'skapar' (i blindo) kommer troligen inte bli användbar i slutändan i vilket fall, just pga antalet kombinationer. Blir för mycket kod helt enkelt, och jag måste avbryta och börja från noll med ny strategi - igen.

Som jag skrev förut, så skapade jag ett skript tidigare, där jag skrev ut alla kombinationer som skulle vara tillämpliga. När jag var klar med 1a dropdown nivån så var det nästan 15000 rader kod [99% var arrayen] och dokumentet var typ 13mb stort. Sen skulle dom ytterligare 9-10 nivåerna in med.
Det var inte hållbart. Dokumentet skulle bli 200-300mb stort innan det var klart, och bestå av hundratusentals rader av array-alternativ. Dvs halvt omöjligt att uppdatera eller modda.

Så jag måste hitta ett sätt att kombinera först, så inte alla kombinationer måste deklareras verbatum. Och SEN hoppas på att det går att tillämpa i JS. Pööh.
Jag vet inte än, om det blir 'för komplicerat', eftersom jag inte är fluent enough i JS. Men några externa beroenden som JSON eller databas eller liknande, det tänker jag INTE tillämpa. Så är det.

Min tanke hittills, är att utgå från första nivån, och sen skriva ut under-alternativen för varje vald undernivå. Det blir kolossalt mycket mindre kod än att skriva ut alla möjliga kombinationer.

Sen gäller det bara att få till ett gäng JS loopar eller liknande som läser igenom upplägget på rätt sätt, och befolkar formuläret med det.

... såvida jag själv eller någon annan inte kommer på ett bättre alternativ. Det jävligaste är ju att man brukar hitta ett bättre alternativ, när man är 75% klar med den strategi man gjorde först.



Citat:
... såvida jag själv eller någon annan inte kommer på ett bättre alternativ. Det jävligaste är ju att man brukar hitta ett bättre alternativ, när man är 75% klar med den strategi man gjorde först.

Det är det här som är programmering.
Först skriver du ett program som är sjukt omständligt och nerdummat till minsta avancerade nivå.
Men det fungerar.

Sedan tar du reda på hur du kan göra det snyggare och smidigare.

Men först måste du skriva det så utförligt som möjligt så du kan se vart du kan optimera det senare.

Om du ska skriva den snyggaste mest optimerade lösningen första gången du skriver din första bokstav i programmet då är du en programmeringsgud. Det finns några få i världen.

KISS
Keep It Simple Stupid

Citera
2023-02-26, 21:27
  #38
Medlem
Citat:
Ursprungligen postat av FlyboySeven
Det är det här som är programmering.
Först skriver du ett program som är sjukt omständligt och nerdummat till minsta avancerade nivå.
Men det fungerar.

Sedan tar du reda på hur du kan göra det snyggare och smidigare.

Men först måste du skriva det så utförligt som möjligt så du kan se vart du kan optimera det senare.

Om du ska skriva den snyggaste mest optimerade lösningen första gången du skriver din första bokstav i programmet då är du en programmeringsgud. Det finns några få i världen.

KISS
Keep It Simple Stupid

Men BRÖL! Kommer ju ta ... 4 månader, att få till ett eländigt formulär? Uff, nej, jag måste nog zooma in så långt jag törs. Jag ska inte bli proffs-programmerare, jag vill bara ha till en formulär, och sen gå vidare i livet. KISS my ass!
__________________
Senast redigerad av Marinerad65 2023-02-26 kl. 21:31.
Citera
2023-02-26, 23:39
  #39
Medlem
Enterprises avatar
Citat:
Ursprungligen postat av Marinerad65
Men BRÖL! Kommer ju ta ... 4 månader, att få till ett eländigt formulär? Uff, nej, jag måste nog zooma in så långt jag törs. Jag ska inte bli proffs-programmerare, jag vill bara ha till en formulär, och sen gå vidare i livet. KISS my ass!
Det som du är ute efter går att göra hyfsat enkelt på serversidan. Jag har gjort liknande i PHP + Mysql. Du kan också använda Node.js på server-sidan tillsammans med databas.
Citera
2023-02-27, 04:43
  #40
Medlem
FlyboySevens avatar
Citat:
Ursprungligen postat av Marinerad65
Men BRÖL! Kommer ju ta ... 4 månader, att få till ett eländigt formulär? Uff, nej, jag måste nog zooma in så långt jag törs. Jag ska inte bli proffs-programmerare, jag vill bara ha till en formulär, och sen gå vidare i livet. KISS my ass!

Ja, förstår hur du tänker.

Är det ett hobbyprojekt eller är det ett riktigt och betalt jobb?

Grejen är om du kör KISS metoden kanske du får klart lösningen du behöver nu på en dag.

Omständligt programmerad. Mycket kod men allt klart på en dag.

Sedan går du igenom all kod och förfinar under kanske 1, 2 månader.

Sen har du den där perfekta lösningen som du ville ha från början.

Men det tog 2 månader att skapa istället för 1 timme.

Men du har knappt ansträngt dig.

För lösningen blev klar första dagen.

Som med en relationsdatabas
Citera
2023-02-27, 04:58
  #41
Medlem
FlyboySevens avatar
Citat:
börja knacka kod i blindo


Jag tror det här är problemet med hur jobb fungerar idag.
Man måste effektivisera allt idag så det blir så optimalt som möjligt. Helst från början.
Programmering handlade från början om att upptäcka, skapa.
Vad kan man göra med den här mystiska datorn?
Vad kan jag åstadkomma?

Att knacka kod i blindo är nog det absolut bästa du kan göra om du vill bli en riktigt bra programmerare och dessutom ha väldigt kul under tiden.
Jag tror inte dem som uppfann första spelet tänkte.
"Jag har ingen lust att knacka hela det här spelet i blindo."

Jag klagar inte alls jag säger bara att vill man ha kul är det nog exakt det man ska göra. Knacka kod i blindo och bara se, oj vad blev det för häftigt resultat den här gången då.

Sen när man knackat kod i blindo typ 10-20 gånger kanske projektet råkat bli klart utan att man ens tänkte på det. (åtminstone färdiga utkast som fungerar hyfsat eller tilloch med helt och hållet)
För att man knackade ihop 10-20 lösningar på några dagar.
För att man hade kul.
Och man märkte inte ens att tiden gick

Och under tiden lär man sig av sina misstag. Sedan när man knackat kod i blindo i 10-20 år så gör man knappt några misstag längre. För man har gjort alla redan i evighet

Då blir man en programmeringsgud
__________________
Senast redigerad av FlyboySeven 2023-02-27 kl. 05:00.
Citera
2023-03-02, 21:28
  #42
Medlem
FlyboySevens avatar
Citat:
Ursprungligen postat av Marinerad65
Men BRÖL! Kommer ju ta ... 4 månader, att få till ett eländigt formulär? Uff, nej, jag måste nog zooma in så långt jag törs. Jag ska inte bli proffs-programmerare, jag vill bara ha till en formulär, och sen gå vidare i livet. KISS my ass!

Hej,

Hur går det?

Nu har jag gjort ett program som fungerar.

Inte säker på om det gör det du behövde men utifrån din beskrivning gör programmet det det ska.

Hint: svaret finns i tråden.

Men för att kunna hjälpa mer behöver jag veta mer exakt vad ditt program ska göra. Helst med riktiga och detaljerade exempel.

Men tack så mycket det var kul att få testa att programmera lite igen
Citera
2023-03-14, 10:38
  #43
Medlem
TexasSwedes avatar
Citat:
Ursprungligen postat av FlyboySeven
Hej,
Är det inte bättre att göra en array för varje dropdown?

Eller kanske säg 5 separata arrayer för varje dropdown.

Och en funktion som bara har till uppgift att befolka nästa dropdown beroende på val som gjorts i första dropdown?

Alltså att det finns en kanske 10 eller kanske 20 arrayer som du kan befolka de olika dropdowns med.

Separata arrayer, inte en enda stor med fler nivåer i? (Multdimensionell array).

Nej, ett Javascript-objekt, som TS använder, är betydligt bättre. Det är inte en "multidimensionell array".
Citera
2023-03-15, 11:28
  #44
Medlem
TexasSwedes avatar
Citat:
Ursprungligen postat av Marinerad65
Ja exakt. Det är precis det som får mig att tveka inför att bara börja knacka kod i blindo. Därför att sannolikheten att den lösning jag 'skapar' (i blindo) kommer troligen inte bli användbar i slutändan i vilket fall, just pga antalet kombinationer. Blir för mycket kod helt enkelt, och jag måste avbryta och börja från noll med ny strategi - igen.
Det är därför man sitter ner och planerar först, det är den delen av utveckling som tar mest tid, och får man det fel så är det bara att göra om och göra rätt.

Citat:
Ursprungligen postat av Marinerad65
Som jag skrev förut, så skapade jag ett skript tidigare, där jag skrev ut alla kombinationer som skulle vara tillämpliga. När jag var klar med 1a dropdown nivån så var det nästan 15000 rader kod [99% var arrayen] och dokumentet var typ 13mb stort. Sen skulle dom ytterligare 9-10 nivåerna in med.
Det var inte hållbart. Dokumentet skulle bli 200-300mb stort innan det var klart, och bestå av hundratusentals rader av array-alternativ. Dvs halvt omöjligt att uppdatera eller modda.
Nej, det är inte hållbart, det är helt omöjligt att underhålla. Och som du redan själv konstaterat blir sidan aldeles för stor. Det enda sättet att bygga det här på ett vettigt sätt är att lagra alla alternativ i en databas, eller i värsta fall som JSON i textfiler som du läser in vid behov.
Det går att komma runt det, som jag visare längre ner, med den metoden är inte den idealiska lösningen.

Citat:
Ursprungligen postat av Marinerad65
Så jag måste hitta ett sätt att kombinera först, så inte alla kombinationer måste deklareras verbatum. Och SEN hoppas på att det går att tillämpa i JS. Pööh.
Jag vet inte än, om det blir 'för komplicerat', eftersom jag inte är fluent enough i JS. Men några externa beroenden som JSON eller databas eller liknande, det tänker jag INTE tillämpa. Så är det.
Vore det inte bättre att du lär dig att göra saker på rätt sätt? Du gör det avsevärt mycket mer komplicerat för dig än vad det behöver vara.

Citat:
Ursprungligen postat av Marinerad65
Min tanke hittills, är att utgå från första nivån, och sen skriva ut under-alternativen för varje vald undernivå. Det blir kolossalt mycket mindre kod än att skriva ut alla möjliga kombinationer.

Sen gäller det bara att få till ett gäng JS loopar eller liknande som läser igenom upplägget på rätt sätt, och befolkar formuläret med det.

... såvida jag själv eller någon annan inte kommer på ett bättre alternativ. Det jävligaste är ju att man brukar hitta ett bättre alternativ, när man är 75% klar med den strategi man gjorde först.
Du har just upptäckt varför programmering består av 75% planering och 25% kodskrivande.

Din tanke här är inte optimal, men den är genomförbar. Jag skulle i så fall deklarera datan något i den här stilen:
Kod:
let level1 = ["Alt 1", "Alt 2", "Alt 3"];
let level2 = {
    "Alt 1": ["L2 A1 ABC", "L2 A1 CDE", "L2 A1 EFG","L2 A1 GHI"],
    "Alt 2": ["L2 A2 ABC", "L2 A2 XYZ", "L2 A2 ZZZ","L2 A2 Foo","L2 A2 Bar","L2 A2 Baz"],
    "Alt 3": ["L2 A3 ABD", "L2 A3 XYZ"]
};
let level3 = {
    "L2 A1 ABC": ["L3 A1 123", "L3 A1 456", "L3 A1 789"],
    "L2 A1 CDE": ["L3 A1 1234", "L3 A2 1235"],
    "L2 A1 EFG": ["L3 A1 2000", "L3 A2 2001", "L3 A3 2002"],
    "L2 A1 GHI": ["L3 A1 3001", "L3 A2 3002"],
    "L2 A2 ABC": ["L4 A2 3003", "L4 A2 3004", "L4 A3 3005"],
    ...
};

let level4 = {
    "L3 A1 123": ["Adam", "Bertil", "Caesar"],
    "L3 A1 456": ["David", "Erik", "Filip"],
    "L3 A1 789": ["Gustav", "Harald", "Ivar", "Johan","Kalle"],
    "L3 A1 1234": ["Ludvig", "Martin"],
    "L3 A2 1235": ["Niklas", "Olof", "Petter","Quintus", "Rudolf"],
    ...
};

Sedan skapar du dina fyra dropdown-fält. Skriv kod i varje fält som exekveras när värdet i fältet ändras (on change). När det sker läser du in värdena för nästföljande dropdown-fält.
Så när det första fältet (som innehåller alternativen "Alt 1", "Alt 2" och "Alt 3") ändras läser du av vad det valda alternativet är, till exempel "Alt 2".
Du läser då in arrayen från level2["Alt 2"], loopar genom den och lägger in de sex alternativen i fält nummer 2.
Du gör samma sak för fält 2, 3 och 4.

Självklart måste du rensa varje drop-down (och alla lägre nivåer) innan du lägger in nya värden, och det är inte heller en dum ide att göra alla lägre nivåer disabled efter att du rensat dem.
Så om användaren väljer ett nytt alternativ i fält 2 så rensar du fält 3 och 4, läser in alternativen för fält 3 och gör fält 4 disabled.
När användaren sedan väljer ett alternativ i fält 3 gör du fält 4 enabled, och läser in värdena där.

Du måste bryta ner problemet i mindre steg, odå blir det mycket enklare.
__________________
Senast redigerad av TexasSwede 2023-03-15 kl. 11:31.
Citera
  • 3
  • 4

Skapa ett konto eller logga in för att kommentera

Du måste vara medlem för att kunna kommentera

Skapa ett konto

Det är enkelt att registrera ett nytt konto

Bli medlem

Logga in

Har du redan ett konto? Logga in här

Logga in