Vk-io: Kombiniere wieder alles in 1 Modul!

Erstellt am 17. Sept. 2020  ·  13Kommentare  ·  Quelle: negezor/vk-io

Ich verstehe einfach nicht, warum 1 Modul in 100 Teile zerstreut werden sollte?Ich habe die Abhängigkeiten aktualisiert und der Bot funktioniert hier nicht.

vk-io

Hilfreichster Kommentar

Die Hauptbibliothek ist vk-io , die eine grundlegende Interaktion mit VKontakte bietet und die minimale Anzahl von Abhängigkeiten abruft. Das Modul @vk-io/hear ist dieselbe Middleware wie @vk-io/session und @vk-io/scenes . Da dies nur eine alternative Umsetzung der möglichen Interaktion mit Nachrichten ist. Als sich das Modul in Updates , erlaubte es nicht, es wiederzuverwenden und fügte unnötige Komplexität und mangelnde Kontrolle hinzu, und es verstieß auch gegen das SOLID- Prinzip.

Tatsächlich würde ich alles in separate Module aufteilen @vk-io/api , @vk-io/upload , @vk-io/updates , @vk-io/collect und @vk-io/structures und vk-io all dies würde standardmäßig exportiert werden, da jedes Modul nur eine Implementierung seiner Verantwortung ist. Aber im Moment ist jedes Modul in vk-io bereit, in seinen eigenen Namespace gepfropft zu werden.

Dieser Ansatz hat den größeren Vorteil, dass Sie nur das installieren, was Sie benötigen. Und Sie werden auch nicht durch die riesige Menge an Exporten aus dem gesamten Modul verwirrt. Für ein Beispiel müssen Sie nicht weit gehen; Sie sollten sich Tools wie apollo-server , apollo-tooling und apollo-client ansehen.

image

Alle 13 Kommentare

Wo genau funktioniert es nicht? Welchen Fehler gibt es?

Wo genau funktioniert es nicht? Welchen Fehler gibt es?

Damit es funktioniert, benötigen Sie jetzt auch den HearManager
Wird der Autor dieses Moduls das Modul weiter aufteilen, bis sich jede Variable in einer separaten Datei befindet?

So können Sie ohne Modul Ihr eigenes Team erstellen.

So können Sie ohne Modul Ihre eigene Implementierung von HearManager erstellen.

Ja, aber finden Sie heraus, warum und warum? zerlegte alles in Module wie!)

So können Sie ohne Modul Ihre eigene Implementierung von HearManager erstellen.

Ja, aber finden Sie heraus, warum und warum? zerlegte alles in Module wie!)

Vielleicht der Einfachheit halber und damit es schnell funktioniert 👍. Obwohl das Modell immer noch Nachteile hat.

So können Sie ohne Modul Ihre eigene Implementierung von HearManager erstellen.

Ja, aber finden Sie heraus, warum und warum? zerlegte alles in Module wie!)

Vielleicht der Einfachheit halber und damit es schnell funktioniert 👍. Obwohl das Modell immer noch Nachteile hat.

Schneller geht es nicht, wie es mir scheint

So können Sie ohne Modul Ihre eigene Implementierung von HearManager erstellen.

Ja, aber finden Sie heraus, warum und warum? zerlegte alles in Module wie!)

Vielleicht der Einfachheit halber und damit es schnell funktioniert 👍. Obwohl das Modell immer noch Nachteile hat.

Schneller geht es nicht, wie es mir scheint

Trotzdem ist es besser, Ihre eigene Implementierung zu verwenden)) Es gibt weniger Probleme

So können Sie ohne Modul Ihre eigene Implementierung von HearManager erstellen.

Ja, aber finden Sie heraus, warum und warum? zerlegte alles in Module wie!)

Vielleicht der Einfachheit halber und damit es schnell funktioniert 👍. Obwohl das Modell immer noch Nachteile hat.

Schneller geht es nicht, wie es mir scheint

natürlich wird das Modul die Dinge nicht laden, die der erste Benutzer nicht braucht und keine Middleware verarbeiten, die irgendwann ignoriert wird = Geschwindigkeitsschub, denken Sie darüber nach, was Sie schreiben

So können Sie ohne Modul Ihre eigene Implementierung von HearManager erstellen.

>

>

Ja, aber finden Sie heraus, warum und warum? zerlegte alles in Module wie!)

Vielleicht der Einfachheit halber und damit es schnell funktioniert 👍. Obwohl das Modell immer noch Nachteile hat.

Schneller geht es nicht, wie es mir scheint

natürlich wird das Modul die Dinge nicht laden, die der erste Benutzer nicht braucht und keine Middleware verarbeiten, die irgendwann ignoriert wird = Geschwindigkeitsschub, denken Sie darüber nach, was Sie schreiben

Ja, aber der Haupthandler sind Nachrichten, warum sollte man das weglassen?

Ja, aber der Haupthandler sind Nachrichten, warum sollte man das weglassen?

Lassen Sie mich versuchen, alles in einer Sprache zu erklären, die Sie verstehen – der Sprache der Meme.

image

Zur Verteidigung von @Zharckov kann ich sagen, dass es nicht gut ist, die Abwärtskompatibilität zu
Das Trennen von Modulen erhöhte die Eintrittsschwelle, und die Komplexität des Codes nahm mit der Zeit nur zu.

Phoenix Wright

Zur Verteidigung von @Zharckov kann ich sagen, dass es nicht gut ist, die Abwärtskompatibilität zu

Daher ist dies Breaking Change .

image

Die Hauptbibliothek ist vk-io , die eine grundlegende Interaktion mit VKontakte bietet und die minimale Anzahl von Abhängigkeiten abruft. Das Modul @vk-io/hear ist dieselbe Middleware wie @vk-io/session und @vk-io/scenes . Da dies nur eine alternative Umsetzung der möglichen Interaktion mit Nachrichten ist. Als sich das Modul in Updates , erlaubte es nicht, es wiederzuverwenden und fügte unnötige Komplexität und mangelnde Kontrolle hinzu, und es verstieß auch gegen das SOLID- Prinzip.

Tatsächlich würde ich alles in separate Module aufteilen @vk-io/api , @vk-io/upload , @vk-io/updates , @vk-io/collect und @vk-io/structures und vk-io all dies würde standardmäßig exportiert werden, da jedes Modul nur eine Implementierung seiner Verantwortung ist. Aber im Moment ist jedes Modul in vk-io bereit, in seinen eigenen Namespace gepfropft zu werden.

Dieser Ansatz hat den größeren Vorteil, dass Sie nur das installieren, was Sie benötigen. Und Sie werden auch nicht durch die riesige Menge an Exporten aus dem gesamten Modul verwirrt. Für ein Beispiel müssen Sie nicht weit gehen; Sie sollten sich Tools wie apollo-server , apollo-tooling und apollo-client ansehen.

image

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen

Verwandte Themen

T1MOXA picture T1MOXA  ·  29Kommentare

ogmishanya picture ogmishanya  ·  4Kommentare

zardoy picture zardoy  ·  18Kommentare

ProgrammingLife picture ProgrammingLife  ·  9Kommentare

nitreojs picture nitreojs  ·  3Kommentare