Nach 2 Jahren noch kein "Code-Verständnis" - sollte ich aufgeben?

Thread Starter
Mitglied seit
05.06.2022
Beiträge
16
Moin Leute,

ich versuche mich kurz zufassen;

Ich habe vor 2 Jahren aus Langeweile angefangen WoW Addons (ja bin alt und spiele das noch) zu schreiben - vorher nie was mit IT oder Programmieren zu tun gehabt.
Daher LUA ja als anfängerfreundlich bekannt ist, besser noch als Python wie manche - und ich - finden, war der Einstieg erstmal gar nicht so schwer.
print("hello world") war schnell gemacht. Syntax ging auch schnell rein.
Habe mir auch andere Skriptsprachen angeschaut, da wurde mir schon schwindelig zum Teil...

Wie auch immer, habe jetzt in den letzten 2 Jahren ausprobiert und ausprobiert, und egal wie schwer es war, ich habe mir immer gesagt: "Bleib dran, bald machts 'klick'!",
leider kam das bis jetzt nicht. Ich kann zwar den Code den ich sehe und schreibe lesen, aber verstehen tue ich ihn meist sehr schnell nicht bzw. nicht mehr.
Ich verliere immer so schnell den Überblick über die Zusammenhänge oder die Strukturen die dahinter stecken.

Als Beispiel mal eine simple Funktion geschrieben von Blizzard:

Code:
function ActionButton_UpdateHotkeys(actionButtonType)
    if ( not actionButtonType ) then
        actionButtonType = "ACTIONBUTTON";
    end
    local hotkey = getglobal(this:GetName().."HotKey");
    local action = actionButtonType..this:GetID();
    local button = ActionButton_GetPagedID(this);
    if ( GetBindingText(GetBindingKey(action), "KEY_", 1) == "" ) then
        if ( not HasAction(button) ) then
            hotkey:SetText("");
        elseif ( ActionHasRange(button) ) then
            if ( IsActionInRange(button) ) then
                hotkey:SetText(RANGE_INDICATOR);
                hotkey:SetTextHeight(8);
                hotkey:SetPoint("TOPRIGHT", this:GetName(), "TOPRIGHT", -3, 5);
            else
                hotkey:SetText("");
            end
        end
    else
        hotkey:SetText(GetBindingText(GetBindingKey(action), "KEY_", 1));
    end
end

Ich kann diese Funktion zwar lesen, aber wenn es darum geht den vollen Zusammenhang zu begreifen und beizubehalten,
was ist in den Parametern, wer ruft die Funktion auf, was ist der Inhalt der Variablen, was machen die Funktionen innerhalb der Funktion (GetBindingText(), GetBindingKey() usw.),
alles nachzugucken und beizubehalten, das ist für mich selbst nach 2 Jahren einfach noch super anstrengend, und es wird nicht besser.
Und das ist nur eine einzige Funktion innerhalb einer riesen Datei, und auch noch eine einfache.
Aber auch auf großer Ebene - wenn ich Code von anderen lese, fällt es mir immer so schwer zu begreifen, wie der ganze "Laden" letztlich läuft.
Mein "Code-Verständnis" wird einfach net besser. :/

Ich begreife das nicht. Bin ich einfach nur dumm, erwarte ich zuviel, wie machen die ganzen IT-Leute das, die mit noch viel komplizierterem Code arbeiten?

Mfg
 
Zuletzt bearbeitet:
Wenn Du diese Anzeige nicht sehen willst, registriere Dich und/oder logge Dich ein.
Nicht jeder kann alles. Ich kann auch nicht zeichnen oder malen, dafür verstehe ich aber eigentlich jeden code :)

Vielleicht fehlt dir auch nur die richtige Unterstützung, oder du machst das falsche. Ich persönlich würde ja webentwicklung jeglicher ARt empfehlen. Hat einen unglaublich seichten Einstieg und KIs wie Claude Code oder Codex können einem eigentlich alles erklären.

Aufgeben würde ich nur, wenn es keinen Spaß mehr macht.
 
Vielleicht fehlt dir auch nur die richtige Unterstützung, oder du machst das falsche. (...) und KIs wie Claude Code oder Codex können einem eigentlich alles erklären.

Moin moin!

Ja ich glaube du hast da was richtiges gesagt. Ich habe gestern mal diesen Artikel hier gelesen, und mir mal dieses Youtube-Video hier angeguckt, und
ich bekomme so langsam das Gefühl, dass Chatbots mein Problem sind. Ich habe von Anfang an mit KI gearbeitet, und ich merke immer mehr, wie ich selber
gar nicht richtig Code schreiben oder lesen kann, zumindest nicht richtig. Ich quassel einfach nur Chatbots voll und copy/paste dann alles, und schaue drüber,
aber ich selber muss nie die eigentlich Denkarbeit machen.

Deshalb habe ich jetzt mal folgendes gemacht, ich habe mein VScode mal komplett umgebaut und alles ausgeschaltet was es an tools gibt,
um es zu einem einfachen Notepad zu machen - keine Extensions, kein Syntax-Highlight, kein Linting oder Warnungen, keine KI, keine Tooltips, nichts mehr.
Mein Hirn muss jetzt alles alleine machen und wenn irgendwo ein '.' fehlt, dann muss ich den alleine finden. Mal schauen wie mein Hirn in den nächsten 2 Wochen damit klar kommt.
 
Zuletzt bearbeitet:
Bin seit > 30 Jahren Programmierer und kann dir echt den Tipp geben: quäl dich da durch und du wirst Erfolg haben. Es ist als wärst du in einem Land in dem dich keiner versteht und keiner verstehen will. Wenn du nicht verhungern willst dann lernst du die Sprache, auf Dauer hilft nur das...
 
Bin seit > 30 Jahren Programmierer und kann dir echt den Tipp geben: quäl dich da durch und du wirst Erfolg haben. Es ist als wärst du in einem Land in dem dich keiner versteht und keiner verstehen will. Wenn du nicht verhungern willst dann lernst du die Sprache, auf Dauer hilft nur das...

Moin moin, sorry für die späte Antwort, es verschlägt mich immer seltener ins Luxx heutzutage.

Zum Thema - ich bin tatsächlich immer noch dabei, und versuche mich immer noch dadurch zu kämpfen.
Ich würde auch sagen, dass es wohl doch etwas besser wird mit der Zeit,

aber wenn ich dann wiederum sowas hier sehe, wird mir übel...

Vor ca. einem Monat habe ich angefangen, mich an C ranzutrauen, mal schauen.
Es bleibt schwierig.
 
Mir geht es ähnlich, besonders wenn Variablen und Strukturen bedient werden müssen die nicht von mir stammen.

Irgendwann habe ich angefangen mit Kommentaren zu arbeiten.
Auch in Addons für WoW die ich geflickt oder geschrieben habe.
Am Anfang erstmal nen zwei drei Zeilen Bereich hingeklatscht, fix beschrieben was das Ziel womit und warum und dann los.

Das hilft ungemein, besonders wenn man nach all den Jahren genau weiß was man vergessen haben werden wird.
 
Wenn du es nicht beruflich machst und keinen Spass daran hast, lass es.
Ein Hobby soll Spass machen und nicht belasten.

Ich trage auch seit über 20 Jahre den Wunsch mit mir rum, zu programmieren. Hab einige Bücher gekauft, PHP, XML, C, C++, später auch mal Python, bash oder PS. Ich hab da auch keinen dauerhaften Zugang gefunden. Jetzt mit KI bin ich ehrlich gesagt fast froh, nicht noch mehr Zeit auf den Bereich verschwendet zu haben. Wenn ich sowas brauche, copy/paste ich mir alles zusammen.
Und ich bin beruflich IT-ler btw...

Hab kein schlechtes Gewissen. Wie gesagt, entweder du kommst wieder zum unschuldigen Spass zurück oder hak es ab und such dir ein Hobby, dass mehr Spass macht und dich erfüllt.
 
Mir geht es ähnlich, besonders wenn Variablen und Strukturen bedient werden müssen die nicht von mir stammen.

Irgendwann habe ich angefangen mit Kommentaren zu arbeiten.
Auch in Addons für WoW die ich geflickt oder geschrieben habe.
Am Anfang erstmal nen zwei drei Zeilen Bereich hingeklatscht, fix beschrieben was das Ziel womit und warum und dann los.

Das hilft ungemein, besonders wenn man nach all den Jahren genau weiß was man vergessen haben werden wird.

This - Kommentare sind das A&O. Mir kann keiner Erzählen das er bei z.b. 600 Zeilen im zweiten Drittel noch genau weiß was am Anfang war (außer in groben Zügen). Kommentare und in Sektionen schreiben ---> So behält man den Überblick.
 
Mir geht es ähnlich, besonders wenn Variablen und Strukturen bedient werden müssen die nicht von mir stammen.

Irgendwann habe ich angefangen mit Kommentaren zu arbeiten.
Auch in Addons für WoW die ich geflickt oder geschrieben habe.
Daher du auch an WoW Addons gearbeitet hast - wie würdest du prinzipiell vorgehen,
wenn du ein großes Addon wie WeakAuras analysieren müsstest?
Schreibst du dann auch Notizen in den fremden Code oder in dein Notepad?

This - Kommentare sind das A&O. Mir kann keiner Erzählen das er bei z.b. 600 Zeilen im zweiten Drittel noch genau weiß was am Anfang war (außer in groben Zügen). Kommentare und in Sektionen schreiben ---> So behält man den Überblick.
Ich habe mal den Satz gehört, dass Code sich selbst erklären sollte, und die meisten Kommentare überflüssig sind,
und sogar schädlich sein können, wenn man Code verändert und somit die Kommentare evtl. nicht mehr stimmen.
Was sagst du dazu?

Wenn du es nicht beruflich machst und keinen Spass daran hast, lass es.
Ein Hobby soll Spass machen und nicht belasten.
Nee also wenn das der Fall wäre, wäre ich ja nicht hier.
Wie du selbst sagst: "Ein Hobby soll Spass machen und nicht belasten.".

Jetzt mit KI bin ich ehrlich gesagt fast froh, nicht noch mehr Zeit auf den Bereich verschwendet zu haben.
Klingt so, als wenn es dir fast keinen Spaß macht (kleiner Scherz).

Ich habe den Thread ja gestartet, weil mich das copy/paste eben gelangweilt hat,
und ich endlich Verständnis für das Programmieren entwickeln möchte.

Per Hand schreiben und selber Probleme lösen fühlt sich weitaus besser an finde ich.
 
@matrixReworg33

Rausfinden an welchen APIs sich das Dingen bedient was wie und wen lädt und dann meine Minimalinstallation damals bemühen.
Da habe ich dann nur mein jeweiliges Addon genommen und mir angesehen, in aller Ruhe auf einem Char am Arsch der Welt ausserhalb von Chat und Gilde.
Dann auch gerne drin rum manipuliert und geschaut.
War es in WoW nicht auch so das man mittels /reload eine ganze Menge live verbauen und testen konnte?

Meine WoW Zeit ist seit Ende Shadowlands aber auch rum, nie wieder reingeschaut. Daher sind meine Infos auch nicht up to date.

Und natürlich sollte sich guter Code selbst erklären. Aber auch nur soweit das der jeweilige Autor nach nen paar Monaten des "nicht mehr Draufschauens" weiß was er getan hat.
Es verlangt niemand das ein Fremder auf anhieb versteht was ein anderer gemacht hat und man ohne Einarbeitung reinkommt.

Und wenn es an APIs und Workarrounds oder an Blizzards Unart geht andauernd Features zu beschneiden, umzubenennen, Monate verbugged zu lassen oder zu streichen ohne das gescheit zu kommunizieren, da ist ein Kommentar der dann alles sauber beschreibt, und sogar noch ein Datum trägt, reines Gold wert.
 
[...]
Ich habe mal den Satz gehört, dass Code sich selbst erklären sollte, und die meisten Kommentare überflüssig sind,
und sogar schädlich sein können, wenn man Code verändert und somit die Kommentare evtl. nicht mehr stimmen.
Was sagst du dazu?
[...]

Ganz ehrlich, wenn du etwas auf das Gerede von irgendwelchen Leuten hörst... DU musst doch damit klar kommen und nicht XYZ. (Edit: Nein, ich meine nicht @Zyxx :fresse: - man sagt das so )

Ich hab z.b. letztens einen Touchfreundlichen, extrem minimalistischen Musikspieler geschrieben weil es einfach weder in Flathub noch den Ubuntu/Debian Repositorys keinen passenden gab
(Ich brauchte einen der in meinen 10" System-Überwachungsmonitor passt, größtenteils frei Skalierbar ist UND Tasten hat die groß genug sind um via Touch bedient werden zu können, dabei ohne irgendwelche Albumbilder o.ä.).

Dort habe ich ALLES Sektioniert

· Konstanten wie Farben, Abtastrate, Bufferzeit, Abtast/Suchzeit für Ordner/Musikdaten und eben deren Standardsuchorte)
· Audio Engine
· API (öffentlich)
· GUI
· Config (letzter Titel, Größe des GUIs & Zoom)
· UI Aufbau (wie es gerendert wird)
· … und so weiter

jeweils dann an den Funktionen noch kurze Kommentare was etwas jeweils ist... So kann ich mir das auch nächstes Jahr nochmal anschauen und weiß direkt was wo hin gehört.
Ja - man könnte sie (die Kommentare) weglassen, vieles ist selbsterklärend... Und? Was interessiert mich das Geschwätz von anderen, sie gehen ihren Weg - ich meinen. (Nebenbei habe ich bspw in dem Projekt das erste mal CustomTkinter genutzt - es ist zwar Tkinter extrem ähnlich, aber dennoch heißen Funktionen mitunter anders - ohne Kommentare würde ich das wahrscheinlich in einigen Wochen nicht mehr wissen :vrizz: )

Edit: Falls du es dir mal anschauen möchtest (Funzt allerdings nur unter Linux, vorzugsweise Debian/Ubuntu)
 
Zuletzt bearbeitet:
Ganz ehrlich, wenn du etwas auf das Gerede von irgendwelchen Leuten hörst... DU musst doch damit klar kommen und nicht XYZ.
Naja, also von "hören" war ja nicht die Rede, ich habe ja nur gefragt, was du von dem Argument hälst. Ich schreibe ja Kommentare.
Und wenn ich auf niemanden höre, und sämtliche Erfahrungen und Argumente ignoriere (was ich ja dann auch in deinem Fall tun müsste), dann kann ich ja schlecht von anderen lernen.

Ja - man könnte sie (die Kommentare) weglassen, vieles ist selbsterklärend... Und? Was interessiert mich das Geschwätz von anderen, sie gehen ihren Weg - ich meinen.
Naja wie gesagt, ich versuche halt zu lernen. Ob etwas "Geschwätz" ist oder nicht, kann ich als Amateur ja nicht beurteilen.

Ich war in beiden Lagern unterwegs - ganz am Anfang habe ich überall Kommentare hingeschrieben,
dann habe ich es mal ganz ohne probiert, und bin mittlerweile im Zwischenfeld angekommen würde ich sagen.

Als Beispiel könnte ich dir vielleicht mal mein "Vorzeigeprojekt" verlinken.
Mein Dragonflight UI für den WoW Vanilla 1.12.1 client: https://github.com/Guzruul/-Dragonflight3/blob/main/core/init.lua

Wenn du dir z.b. die init.lua anschaust, dann siehst du, dass ich nur die Tabellen kommentiert habe, weil ich immer vergesse,
für welchen Zweck bzw. was für Daten sie denn enthalten sollten.

Selbige in meiner namespace.lua: https://github.com/Guzruul/-Dragonflight3/blob/main/core/namespace.lua

Das ist so mein aktueller Stil, bin aber immer offen für neues.

Edit: Falls du es dir mal anschauen möchtest (Funzt allerdings nur unter Linux, vorzugsweise Debian/Ubuntu)
Ja sowas ist toll, schaue ich mir immer gerne an. Vielen Dank.

Rausfinden an welchen APIs sich das Dingen bedient was wie und wen lädt und dann meine Minimalinstallation damals bemühen.
Da habe ich dann nur mein jeweiliges Addon genommen und mir angesehen, in aller Ruhe auf einem Char am Arsch der Welt ausserhalb von Chat und Gilde.
Dann auch gerne drin rum manipuliert und geschaut.
War es in WoW nicht auch so das man mittels /reload eine ganze Menge live verbauen und testen konnte?
Ah ok, also im Grunde was ich auch tue, als erstes nach den API Funktionen schauen und gucken wer was laden tut.
Fällt mir nur relativ schwer bei so vergleichsweise großen Programmen wie WeakAuras o.ä..

Und falls du mit "live verbauen" meinst, dass man Code in die Datei scheibt und dann /reload macht, dann ja.
So mache ich das zumindest, arbeitete aber auf Grund von mangelndem Interesse an späteren Versionen nur mit dem WoW Vanilla client von 2004-2006 (1.12.1).

@matrixReworg33
Und natürlich sollte sich guter Code selbst erklären. Aber auch nur soweit das der jeweilige Autor nach nen paar Monaten des "nicht mehr Draufschauens" weiß was er getan hat.
Es verlangt niemand das ein Fremder auf anhieb versteht was ein anderer gemacht hat und man ohne Einarbeitung reinkommt.
Ja das Probleme habe ich, wie bereits zu @Pirate85 geschrieben, auch immer wieder, wenn es um meine kleinen Lua Tabellen geht.
Bei Funktionen wiederum, wenn sie einen guten Namen haben, fällt mir das nicht so schwer.

Oder bei verschiedensten Eigenarten die der uralte Vanilla client so mit sich gebracht hat.
2004 hat Blizzard ja noch alles mögliche veranstaltet. :fresse:

LG
 
Zuletzt bearbeitet:
[…]
Als Beispiel könnte ich dir vielleicht mal mein "Vorzeigeprojekt" verlinken.
Mein Dragonflight UI für den WoW Vanilla 1.12.1 client: https://github.com/Guzruul/-Dragonflight3/blob/main/core/init.lua

Wenn du dir z.b. die init.lua anschaust, dann siehst du, dass ich nur die Tabellen kommentiert habe, weil ich immer vergesse,
für welchen Zweck bzw. was für Daten sie denn enthalten sollten.

Selbige in meiner namespace.lua: https://github.com/Guzruul/-Dragonflight3/blob/main/core/namespace.lua

Das ist so mein aktueller Stil, bin aber immer offen für neues.
[…]
Hab mich da jetzt mal in ~3h grob durchgearbeitet (Ganzes Repo, 40k Zeilen Code - :-[ ) ---> Was war gleich nochmal dein "Problem"? :confused:

Das sieht sehr sauber aus (Testen tust du mit der WoW-Console? Was mir zb. aufgefallen ist: hotkey/macro/count × (Font/Size/Color/X/Y) = 15× beinahe identische Loop-Callbacks - warum kein Generator? Oder: ENV.import() kommentieren - was ist "asfvvib"? Da wäre nen Kommentar mal echt gut, keine Ahnung was das ist. :vrizz:), ohne jetzt ins Detail gegangen zu sein, dafür hab ich leider keine Zeit - Ich könnte mal Herbert [mein lokales LLM] drauf ansetzen, würde mich interessieren was er dazu sagt. 🤔

Ich hab zwar mit WoW nichts am Hut (Einige Freunde von mir waren damals regelrecht süchtig danach - deshalb habe ich es mir nie gekauft),
Aber ist soweit gut und übersichtlich geschrieben - Ich bin mich wirklich am Fragen, ich hätte sowas vermutlich nicht auf die Beine stellen können, einfach aus Zeit/Lust Gründen. 😆

Schade das es nur ein Commit ("reupload") ist - ich hätte mir gerne mal die Historie angeschaut... Sowas bildet z.b. auch "Verständnis" weil du somit im Auge behälst warum du Änderungen gemacht hast bzw welchen Fortschritt und welche Bugs/Bugfixes es gab.


Edit: In deinen Screenshots von Anfang des Jahres verweist du auf "https://github.com/flaxic-lua/-dragonflight3" <--- 404 - warum gelöscht?
 
Zuletzt bearbeitet:
Ich war in beiden Lagern unterwegs - ganz am Anfang habe ich überall Kommentare hingeschrieben,
dann habe ich es mal ganz ohne probiert, und bin mittlerweile im Zwischenfeld angekommen würde ich sagen.
Eigentlich wie überall im Leben sind Extreme halt immer schlecht. Egal ob auf der einen oder der anderen Seite.

Wenn man alles kommentiert, sieht man den Code irgendwann vor lauter Kommentaren nichtmehr.
Wenn man überhaupt nichts kommentiert, versteht man Code nur schlecht, meistens aber eher fragt man sich später dann mal, warum man das hier überhaupt genau so gemacht hat.

Ja, Code ist selbsterklärend (aka deterministisch). Muss er sein, sonst könnte er nicht funktionieren. Das heisst, man kann sich aus jedem Code immer rauspfrimeln, was der Code tut. Die Frage ist eher: Wie lange braucht man dann einen komplexen, komplett unkommentierten Code zu verstehen.
Mathematische Fomeln sind auch "selbsterklärend"... es hilft aber halt ungemein, wenn einem jemand in menschenverständlicher Sprache erklärt oder zumindest kurz sagt, um was es überhaupt geht.

Zum Thema KI: Hab letztens erst wieder einen Vortrag gehört, da stand am Ende unter "Negativ": Deskilling des Entwicklers.
Kurz gesagt: Selbst ein Entwickler verliert den Bezug zum Code, wenn er alles oder zuviel von KI erstellen lässt. Ist ja irgendwie auch klar. So eine KI kann Unmengen an Code in kürzester Zeit generieren. Wenn man das alles nur durchguckt und wirklich nachvollzieht, braucht man ja schon halb so lange, als wenn man es selbst geschrieben hätte... (btw. auch KI, bzw. zumindest das Copilot-Ding was ich verwende, schreibt auch Kommentare in den Source ;))
Was soll da dann auch rauskommen, wenn ein Anfänger direkt mit KI anfängt? Der lernt nicht programmieren, sondern der lernt wie man eine KI promptet.

Ich würde immernoch empfehlen: Mach Anfänger-Tutorials, komplett von Hand, komplett ohne KI. Wenn man wirklich programmieren lernen will, müssen erstmal die Grundlagen erlernt werden. Schleifen, Bedingungen, Variablen, Funktionen, Methoden, ggf. Objektorientierung, etc.
Wenn man da überhaupt eine KI einsetzt, dann nicht indem man sie irgendwelche Probleme fixen lässt, sondern das man sich von ihr erklären lässt, WAS denn überhaupt das Problem ist, warum das ein Problem ist und warum eine mögliche Lösung das Problem behebt.

Oftmals scheitert es auch daran, das man sich zu hohe Ziele steckt und eben diesen Anfang dann überspringt. Ja, ich kenn das, man hat eine Idee für irgendein Tool/App/Zeug und will dann direkt genau das umsetzen. Ohne jegliche Vorkenntnisse ist dieses Ziel aber viel zu hoch gesteckt. Ja, mit KI kann man sich das schon hinfummeln und es mag auch funktionieren... dann hat man zwar das Tool, aber nicht programmieren gelernt.
Das meine ich auch bei dir zu erkennen. Du willst direkt irgendwelches WoW-Zeug machen und fängst direkt damit an.
Ausserdem muss man das "lernen" zweiteilen: Das erste ist die Sprache ansich. Die muss man halt verstehen. In deinem Fall dann halt LUA.
Das zweite ist aber das Framework. Das muss man auch kennen lernen. Das hat aber eigentlich nicht viel mit der Sprache ansich zu tun, wenn überhaupt baut es aber darauf auf. Selbst ein LUA-Experte, der noch nie irgendwas für WoW gemacht hat, kennt halt dessen API nicht. Und das ist dann genau so ein Fall wie du oben geschrieben hast: Da wird irgendeine Funktion ala "ActionButton_GetPagedID(this);" aufgerufen und du hast keine Ahnung was das tut. Das ist aber nicht LUA, das ist das WoW-Framework.

Keine Ahnung obs sowas für LUA gibt, aber eine gute IDE hilft ungemein. Z.B. VSCode (zumindest für diverse Sprachen wie C++, Python, Javascript, etc...) hat dann solche Funktionen wie das du z.B. den Cursor auf so einen Funktionsaufruf setzt und dann direkt zur Definition dieser Funktion springen kannst. Dort steht dann hoffentlich ein Kommentar, der kurz beschreibt was diese Funktion tut, welche Parameter da reingehen und was die Funktion zurückliefert.

Bei mir hats übrigens in einer Schulung "klick" gemacht. Da war ein sehr fähiger Dozent, der sich auch im praktischen Teil um einzelne Teilnehmer gekümmert hat und der hat mir dann auch mehr oder weniger den ein oder anderen meiner eigenen Denkfehler erklärt.
 
Zuletzt bearbeitet:
Hey Leute, vielen Dank für Eure ausführlichen Beiträge, ich versuche mal auf alles einzugehen.

Hab mich da jetzt mal in ~3h grob durchgearbeitet (Ganzes Repo, 40k Zeilen Code - :-[ ) ---> Was war gleich nochmal dein "Problem"? :confused:
Das sieht sehr sauber aus
Du bist ja lieb.
Keine Komplimente bitte, am Ende halte ich mich noch für gut. :fresse:
Aber vielen Dank für die 3 Stunden Lebenszeit und die Bewertung.

Testen tust du mit der WoW-Console?
Mit der Chatbox, mehr hat man nicht in WoW Vanilla 1.12.1 (ich glaube spätere Versionen haben sogar eine richtige Dev-Console bekommen von Blizzard).
So sieht das aus bei mir:

123.JPG


In Vanilla hast du halt 0 Debugtools bekommen von Blizzard, musst dir also jedes Tool selber bauen.
Selbst debugprint() gibt es nicht.

Was mir zb. aufgefallen ist: hotkey/macro/count × (Font/Size/Color/X/Y) = 15× beinahe identische Loop-Callbacks - warum kein Generator?
Der Grund dafür iiiiiiist... *Trommelwirbel* ...keine Ahnung. Hätte ich machen sollen.
Meine actionbars.lua wollte ich eigentlich mal komplett überarbeiten, aber das ging dann nicht mehr, siehe weiter unten.

Oder: ENV.import() kommentieren - was ist "asfvvib"?
Das habe ich extra nicht getan, damit andere Devs mir nicht so leicht auf die Schliche kommen.
Das Ganze gehörte zu meiner Sync.lua: https://github.com/Guzruul/-Dragonflight3/blob/main/mods/general/sync.lua
Die Schlüsselzeile ist :
Code:
local isAdmin = UnitName('player') == a()

Ich hatte damals die Idee, einen versteckten AddOn Kanal zu bauen, den meine User nicht sehen können, um Informationen abgreifen zu können
und Updates pushen zu können oder Live-Umfragen starten zu können mit meinen Usern, wie eine Art GameMaster quasi. "asfvvib" war der Name meines Level 2 Magiers auf dem
ich immer Programmiert habe, wenn das Tool meinen Char erkannt hat, hatte ich Zugriff auf das Admin-Panel bekommen.
Deshalb die Pseudo-Verschlüsselung, sinnlose Funktionsnamen, und fehlender Kommentar. :fresse:

Schade das es nur ein Commit ("reupload") ist - ich hätte mir gerne mal die Historie angeschaut... Sowas bildet z.b. auch "Verständnis" weil du somit im Auge behälst warum du Änderungen gemacht hast bzw welchen Fortschritt und welche Bugs/Bugfixes es gab.

Edit: In deinen Screenshots von Anfang des Jahres verweist du auf "https://github.com/flaxic-lua/-dragonflight3" <--- 404 - warum gelöscht?
Das hatte einen sehr ernsten Grund - Microsoft hat 2025 meinen Server Turtle-WoW verklagt:

Und sie haben zum ersten Mal in ihrer Geschichte auch einen Addon-Dev verklagt, weil sie dachten, er gehöre zum Server, und zwar meinen Freund Shagu:

Selbst der Klon-Server, OctoWoW, weist kurz darauf hin: https://octowow.st/forum/viewtopic.php?t=968

Deshalb haben alle, die damals auf Turtle-WoW gecoded haben, ihre Repos gelöscht, um nicht mit reingezogen zu werden. :(
Und somit war dann alles futsch. Mittlerweile ist der Rechtsstreit vorbei, und deshalb habe ich
einfach meine AddOns - das was noch übrig war - wieder hochgeladen.
So war das.

Meine AddOns wurden recht häufig geforkt, wenn du magst, kannst du hier meine alten Commits sehen: https://github.com/AmonRA/-Dragonflight3

Ich kann mich so schlecht selbst einschätzen, und glaube immer inkompetent zu sein.
Ich würde so gerne mal mit anderen zusammen programmieren.

Eigentlich wie überall im Leben sind Extreme halt immer schlecht. Egal ob auf der einen oder der anderen Seite.

Wenn man alles kommentiert, sieht man den Code irgendwann vor lauter Kommentaren nichtmehr.
Wenn man überhaupt nichts kommentiert, versteht man Code nur schlecht, meistens aber eher fragt man sich später dann mal, warum man das hier überhaupt genau so gemacht hat.
Genau, das habe ich mir auch gedacht, allerdings war es so, dass 2 meiner Vorbilder, beides Code von studierten Informatikern, beide Extreme vertreten haben.
Einmal das WoW Addon "aux", welches so gut wie gar keine Kommentare einsetzt: https://github.com/shirsig/aux-addon-vanilla/tree/master
Und dann das AddOn "bagShui" welches mehr Kommentiert, als jedes andere Addon, dass ich kenne: https://github.com/absir/Bagshui

Und weil beide von Profis geschrieben wurden, wusste ich nicht, wo ich mich einreihen soll.

Ja, Code ist selbsterklärend (aka deterministisch). Muss er sein, sonst könnte er nicht funktionieren. Das heisst, man kann sich aus jedem Code immer rauspfrimeln, was der Code tut. Die Frage ist eher: Wie lange braucht man dann einen komplexen, komplett unkommentierten Code zu verstehen.
Mathematische Fomeln sind auch "selbsterklärend"... es hilft aber halt ungemein, wenn einem jemand in menschenverständlicher Sprache erklärt oder zumindest kurz sagt, um was es überhaupt geht.
Ja das ergibt Sinn.

Zum Thema KI: Hab letztens erst wieder einen Vortrag gehört, da stand am Ende unter "Negativ": Deskilling des Entwicklers.
Kurz gesagt: Selbst ein Entwickler verliert den Bezug zum Code, wenn er alles oder zuviel von KI erstellen lässt. Ist ja irgendwie auch klar. So eine KI kann Unmengen an Code in kürzester Zeit generieren. Wenn man das alles nur durchguckt und wirklich nachvollzieht, braucht man ja schon halb so lange, als wenn man es selbst geschrieben hätte... (btw. auch KI, bzw. zumindest das Copilot-Ding was ich verwende, schreibt auch Kommentare in den Source ;))
Was soll da dann auch rauskommen, wenn ein Anfänger direkt mit KI anfängt? Der lernt nicht programmieren, sondern der lernt wie man eine KI promptet.
Genau. Und so fühl bzw. habe ich mich gefühlt, bis ich vor 6 Monaten diesen Thread hier eröffnet habe.
Wie im Beitrag #3 zu sehen, bin ich auf Total-Purist umgestiegen.

Oftmals scheitert es auch daran, das man sich zu hohe Ziele steckt und eben diesen Anfang dann überspringt. Ja, ich kenn das, man hat eine Idee für irgendein Tool/App/Zeug und will dann direkt genau das umsetzen. Ohne jegliche Vorkenntnisse ist dieses Ziel aber viel zu hoch gesteckt. Ja, mit KI kann man sich das schon hinfummeln und es mag auch funktionieren... dann hat man zwar das Tool, aber nicht programmieren gelernt.
Das meine ich auch bei dir zu erkennen. Du willst direkt irgendwelches WoW-Zeug machen und fängst direkt damit an.
Ausserdem muss man das "lernen" zweiteilen: Das erste ist die Sprache ansich. Die muss man halt verstehen. In deinem Fall dann halt LUA.
Das zweite ist aber das Framework.
Naja, also mein Werdegang war folgender: 2022 habe ich meinen Freund Shagu im Spiel kennengelernt, weil ich seine AddOns genutzt habe. Er hat bei mir das Interesse am Programmieren
geweckt. Daraufhin habe ich mir erstmal neutrale Lua-Tutorials auf Youtube angeguckt, und mir AddOn-Code durchgelesen, und Blizzards Interface Files.
Und habe parallel meine ersten kleinen AddOns gebaut und die Tutorials versucht umzusetzen.
Nach ca. 1 Jahr habe ich dann das ganze UI zum ersten Mal gebaut.
Das ist das, was ich so die letzten 4 Jahre gemacht habe.

Und das ist dann genau so ein Fall wie du oben geschrieben hast: Da wird irgendeine Funktion ala "ActionButton_GetPagedID(this);" aufgerufen und du hast keine Ahnung was das tut. Das ist aber nicht LUA, das ist das WoW-Framework.

Keine Ahnung obs sowas für LUA gibt, aber eine gute IDE hilft ungemein. Z.B. VSCode (zumindest für diverse Sprachen wie C++, Python, Javascript, etc...) hat dann solche Funktionen wie das du z.B. den Cursor auf so einen Funktionsaufruf setzt und dann direkt zur Definition dieser Funktion springen kannst. Dort steht dann hoffentlich ein Kommentar, der kurz beschreibt was diese Funktion tut, welche Parameter da reingehen und was die Funktion zurückliefert.
Ich habe mir meinen Beitrag nochmal durchgelesen, und das war blöd ausgedrückt. Ich kenne den Wow Vanilla client so gut wie auswendig mittlerweile,
und wie die API genutzt wird und was Funktionen machen, aber den kompletten Zusammenhang beizubehalten, das geistige Modell, das ist für mich das Problem,
wobei ich auch hier, seit ich auf Purist umgestiegen bin, das Gefühl habe, dass es besser läuft, weil ich mich ja jetzt selbst um alles kümmern muss.

Und ja eine Lua Extension gibt es für Vscode. Habe ich auch installiert.

Vielleicht verschwindet meine Unsicherheit ja mal früher oder später.

Bei mir hats übrigens in einer Schulung "klick" gemacht. Da war ein sehr fähiger Dozent, der sich auch im praktischen Teil um einzelne Teilnehmer gekümmert hat und der hat mir dann auch mehr oder weniger den ein oder anderen meiner eigenen Denkfehler erklärt.
Ja das fehlt mir leider, eine standardisierte Ausbildung. Ich habe auch leider wenig Interesse an anderen Dingen, außer WoW Addons bauen.
Habe mal etwas mit Love2D gearbeitet und versucht ein Spiel zu machen, aber das war dann doch nicht so wirklich meins.

________

So genug geschrieben, vielen Dank Leute.

Ihr macht mir Mut, weiter dran zu bleiben.

LG
 
Zuletzt bearbeitet:
Hardwareluxx setzt keine externen Werbe- und Tracking-Cookies ein. Auf unserer Webseite finden Sie nur noch Cookies nach berechtigtem Interesse (Art. 6 Abs. 1 Satz 1 lit. f DSGVO) oder eigene funktionelle Cookies. Durch die Nutzung unserer Webseite erklären Sie sich damit einverstanden, dass wir diese Cookies setzen. Mehr Informationen und Möglichkeiten zur Einstellung unserer Cookies finden Sie in unserer Datenschutzerklärung.


Zurück
Oben Unten refresh