NEWS
Best practise für Javascript
-
Hi Forum,
Ich bin aktuell dabei einen sehr umfangreichen Telegram Bot zu schreiben. Mit dem ich alles mögliche Steuern möchte.
Jedoch bin ich mir gerade nicht so ganz sicher ob die Struktur die ich bis jetzt habe sinnvoll ist.Kurz zu meiner Struktur bis jetzt:
Ich habe eine subscribe Funktion die auf change: 'any' vom Telegram adapter reagiert.
Da drin werte ich mit einem riesigen If else if die Eingabe aus und rufe andere Funktionen in der Datei auf um darauf zu reagieren.
Dies hat den Nachteil das alles in einer Datei steht (außer ich mache alles Global) und das ganze sehr unübersichtlich wird.Mir stellt sich jetzt die Frage ob es nicht sinnvoller wäre für jede Funktion (Sprit preise, Heizungssteuerung, usw. ) eine eigene Datei anzulegen und mittels subscribe Funktion auf den passenden Befehl zu warten.
Damit wäre alles übersichtlicher und vor allem Wartbarer.Was mich jetzt zögern lässt ist wie sieht es mit der Performance aus ? Aktuell wären es zwar nur 10 subscribe auf die gleiche id aber das kann und wird noch viel mehr werden.
Wenn es ok oder sogar so gedacht ist das über subscribe Funktionen zu machen wie sieht es dann aus wenn man mittels RegExp die Value Variable genauer abgrenzt? Je Nach Implementierung müsste das doch besser sein als ein if in jeder subscribe Funktionen um auszuschließen das auf einen Falschen Befehl reagiert wird.
Es wäre echt super wenn mir jemand einen Tipp geben könnte wie ich weiter machen soll. Mir fehlt leider die Erfahrung mit ioBroker und javascript um abschätzten zu können welcher der bessere weg für mich ist.
Gruß
Arne -
@ignis-draco sagte:
wie sieht es mit der Performance aus ?
Auf die Performance hat es wenig Einfluss, der RAM-Verbrauch erhöht sich allerdings durch viele "subscribe".
@ignis-draco sagte in Best practise für Javascript:
mittels subscribe Funktion auf den passenden Befehl zu warten.
Du meinst so ?
on({id: idTelegram, val: 'Befehl 1'}, function() {});
-
@paul53 said in Best practise für Javascript:
@ignis-draco sagte:
wie sieht es mit der Performance aus ?
Auf die Performance hat es wenig Einfluss, der RAM-Verbrauch erhöht sich allerdings durch viele "subscribe".
Das ist schon mal sehr gut zu wissen. Dann werde ich das alles auseinander ziehen denn so
wird es viele übersichtlicher.@ignis-draco sagte in Best practise für Javascript:
mittels subscribe Funktion auf den passenden Befehl zu warten.
Du meinst so ?
on({id: idTelegram, val: 'Befehl 1'}, function() {});
ja quasi nur halt mit RegExp damit ich am Anfang sofort erkennen ob es zu der Funktion gehört.
on({ id: 'telegram.0.communicate.request', val: '%SECEDULE;(.*)' }, function (obj) {}
Vielen dank für die Einschätzung paul53.
Gruß
Arne -
-
Hi
@paul53 said in Best practise für Javascript:
RegExp für val: im Trigger funktioniert ?
Leider nicht. Sehr schade eigentlich. Aber zumindest sind meine Skripte jetzt viel übersichtlicher.
Gruß
Arne