Aiogram + Django – die Geißel der Chatbot-Industrie / Sudo Null IT News

Ich habe mich entschieden, hier für die Seele freiberuflich zu arbeiten, und ich habe gesehen, dass jedes dritte Chatbot-Entwicklungsprojekt die Integration eines Web-Admin-Panels beinhaltet. Dies gilt vor allem für Online-Shops, bei denen der Kunde versucht, auf der Seite zu sparen und sie durch einen monströsen Chatbot zu ersetzen. Gleichzeitig ist es für ihn bequemer, das Projekt in einer vertrauten Umgebung zu steuern. Von hier aus gibt es auch eine Modeerscheinung – „Ich möchte ein Admin-Panel“. Die Funktionalität dieses Dings endet normalerweise mit dem Aktualisieren von Informationen über Produkte, dem Zuweisen von Administratoren, dem Verwalten von Mailinglisten … im Allgemeinen einfachen Manipulationen mit der Datenbank, nicht mehr. Der Standardentwickler, der dieses Element sieht, nimmt also Django. Wieso den? Nun, der Grund liegt natürlich in der Faulheit der kollektiven Bewirtschaftung Ihres Admin-Panels, und das Ziehen einer schönen Dzhang-Implementierung scheint eine gute Idee zu sein. Der Kunde wiederum googelt die Top-Webframeworks und nickt anerkennend über diese Leistung. Und manchmal fügt es Öl ins Feuer, indem es Django direkt in der Stellenbeschreibung markiert.

Stolzer Telegram-Entwickler mit 10 Jahren ErfahrungStolzer Telegram-Entwickler mit 10 Jahren Erfahrung

Nun, wir haben herausgefunden, woher Django im Leben eines glücklichen und jungen Bot-Entwicklers wie mir kommt. Lassen Sie uns nun sehen, was dieser knifflige Zug mit sich bringt.

Nachteile der Integration von Django:

  • Anfängliche Inkompatibilität von Frameworks. Aiogramm läuft vollständig auf aiohttp und zieht keine synchronen Abhängigkeiten. Das heißt, wir haben ein Sprungbrett für die Implementierung eines coolen, vollständig asynchronen Projekts. Und wir ziehen, ähm, ein synchrones Web-Framework als wichtigen (oder nicht sehr wichtigen) Microservice.

  • Django ORM ist der Hauptnachteil, obwohl es der zweite in der Liste ist. Das erste war hauptsächlich ideologisch und semantisch, und dieses hier handelt von der Praxis. Django ORM ist SQLalchemy in allem unterlegen. Sie ist nicht gut in Asynchronität (Argumente über asgiref “sync_to_async” werden nicht akzeptiert)Transaktionen sind standardmäßig deaktiviert, im Allgemeinen aufgrund von langsam Aktiver Rekord. Darüber hinaus ist die Verwendung dieses ORM auf Dzhanga beschränkt, und Sie werden wahrscheinlich Schmerzen haben, wenn dies erforderlich ist. Infolgedessen haben wir zwei Möglichkeiten: 2 ORMs auf einmal zu integrieren, was Unsinn ist, oder nur Dzhang zu verwenden, wodurch der ganze Sinn der Verwendung von Aiogram zunichte gemacht wird.

  • Von einer Kanone bis zu Spatzen (oder was auch immer das Sprichwort sagt). Vergessen wir nicht, dass es bei Django nicht nur um ORMs und Administratoren geht. Dies ist eine ziemlich monströse Sucht mit einer Reihe von Werkzeugen, die für Sie oft unnötig sind. Und ziehen Sie sie bitte nicht wegen des Admin-Panels. Außer ORM-Anforderungen und -Ansichten aus Roh-HTML wird es in Ihrem Microservice nichts geben. Und das (unbequem und seltsam) Die Struktur des Jangi-Projekts wird nur die Entwicklung und Skalierung des Projekts beeinträchtigen.

Vorteile der Integration von Django:

  • Keine Notwendigkeit zu formen – alles ist aus der Box. 3 Befehle im Terminal und das funktionierende Admin-Panel ist fertig. Kurz gesagt: Weniger Schritte zur Implementierung des MVP. Damit endeten vielleicht die Pluspunkte.

Wie sonst?

Sie haben 2 Möglichkeiten.

– Überzeugen und erobern

Die Option, ich werde Sie sofort warnen, ist unwahrscheinlich. Sie besteht darin, den Kunden davon zu überzeugen, dass er das Admin-Panel im üblichen Sinne grundsätzlich nicht benötigt. Alternativ bieten Sie die Integration des Admin-Panels direkt in Telegram an. Es ist möglich, ein schönes und logisches Admin-Panel auf Inline- und Reply-Buttons aufzubauen, das wurde meiner Erfahrung nach verifiziert. Um bequem mit komplexen Menüs arbeiten zu können, verwenden Sie die wunderbare Aiogramm-Dialog.

Ich gebe dir hier einen kleinen Rat.

Der Kunde kann Ihnen aus Konservatismus sofort eine Ohrfeige verpassen. Und er wird recht haben. Seien Sie daher nicht zu faul, MRE * hinzuzufügen und einen einminütigen Screencast über die Verwendung des Admin-Panels in Telegram aufzuzeichnen. Die Chancen, erfolgreich auf einen kompletten Webservice zu verzichten, vervielfachen sich. Ich überprüfte.

*MRE – minimal reproduzierbares Beispiel (minimal reproduzierbares Beispiel).

– Verneige dich stolz

Wenn der Trick mit den Ohren aus der Technik “Überzeugen und Erobern” nicht funktioniert hat und Sie immer noch das Web-Admin-Panel ausführen müssen, verwenden Sie ein normales Tool, das den Hauptparametern entspricht: leicht (nicht in Kilobyte, sondern in Bezug auf die Anzahl der Abhängigkeiten), ehrlich asynchron, einfach zu integrieren und durch etwas anderes zu ersetzen. Kurz gesagt, ich werde nicht quälen, ich bestehe auf FastAPI / Aiohttp (das zweite ist im Allgemeinen mit Aiogram out of the box). Sie werden dir perfekt passen. Und das Anlegen von 3 Schaltflächen und einer Tabelle in HTML dauert einige Stunden, sodass dies nicht als ernsthaftes Problem bezeichnet werden kann.

Nützliche Materialien und Ressourcen:

  • Vorlagen für skalierbare Telegram Bots: Tishka-Vorlage (Tishka17), Karych-Muster (mein), Jura-Muster (Bomscheg).

  • Buch von Aiogram for Beginners (von Groosha).

  • Aiogramm-Dialog – Ohne diese Bibliothek ist es schwierig, eine Deep-Button-Navigation durchzuführen.

  • Mein Bloschikdie Beispiele meiner Projekte und kürzere Artikel enthält, die nicht dem Habr-Format entsprechen.

Similar Posts

Leave a Reply

Your email address will not be published.