Eine kurze Diskussion über Back-End-Technologietrends im Jahr 2018
In diesem Artikel werden wir hauptsächlich über die Trends der Back-End-Technologie im Jahr 2018 sprechen und hoffen, Ihnen dabei zu helfen, eine klarere Vorstellung von der Back-End-Technologie zu bekommen.
Asynchroner Modus
Go-Sprache erfreut sich immer größerer Beliebtheit und viele große Internetunternehmen setzen für ihre Backends auf GO. Dubbo, ein im Java-Kreis bekanntes serviceorientiertes Framework, kündigte ebenfalls seine Umstellung auf den asynchronen Modus an. Dies ist ein wichtiger Trend und das asynchrone Modell wurde vom Markt verifiziert und anerkannt.
Bei der Auswahl eines Webservers haben die meisten Menschen vor einigen Jahren begonnen, sich für asynchrones, nicht blockierendes Nginx statt für synchrones, blockierendes Apache zu entscheiden. Aufgrund asynchroner Programme wie Nginx verfügt es über eine bessere Anpassungsfähigkeit und stärkere Parallelitätsfähigkeiten. Im Hinblick auf die Back-End-Geschäftsentwicklungsprogrammierung haben Teams mit starken technischen Fähigkeiten damit begonnen, den Technologie-Stack vom synchronen Modus auf den asynchronen Modus umzustellen.
Der synchrone Blockierungsmodus weist viele Mängel auf, darunter schwache Parallelität, schlechte Anpassungsfähigkeit und langsame Anfragen, was zur Nichtverfügbarkeit des Dienstes führt. Beispiel: Im Szenario des Aufrufs einer Drittanbieter-API in der Hintergrundschnittstelle hat der Synchronisierungsmodus eine äußerst schlechte Wirkung. In der Vergangenheit verwendeten immer weniger Menschen die Frameworks für den synchronen Blockierungsmodus, die mit den Sprachen Java, PHP, C++, Python und Ruby entwickelt wurden.
Node.js
Obwohl Node.js ebenfalls sehr beliebt und beliebt ist, kommt es immer noch selten vor, dass Unternehmen Node.js als Hauptprogrammiersprache für das Backend des Unternehmens verwenden. In den Sprachen C++, Java, PHP und Python gibt es auch einige ähnliche Lösungen, darunter Swoole-1.0, das ebenfalls auf einem asynchronen Rückrufmodus ähnlich Node.js basiert.
Der wesentliche Grund ist, dass die technische Lösung des asynchronen Rückrufs und einige darauf basierende Optimierungslösungen, darunter Promise, Future, Yield/Generator, Async/Await usw., den Stil und die Gewohnheiten der Programmentwicklung verändert haben . Wenn Sie diese Technologien nutzen möchten, müssen Ingenieure zusätzlich lernen, wie diese Schlüsselwörter und Funktionen verwendet werden.
Die Verwendung dieser technischen Lösungen ist nicht mit bestehenden Programmen kompatibel. Man kann sagen, dass die F&E-Kosten enorm sind und es schwierig ist, einen reibungslosen Übergang zu schaffen. Beeinflusst die Popularität des asynchronen Callback-Technologie-Stacks. Dieses Programmiermodell ist für alle schwer zu akzeptieren.
Coroutine
Der Coroutine-Modus berücksichtigt die Wartbarkeit des synchronen Blockierens und die hohe Parallelitätsfähigkeit des asynchronen Nichtblockierens. Es wird in Zukunft zur gängigen technischen Lösung im Bereich der Backend-Entwicklung werden.
Das Wichtigste ist, dass der Coroutine-Modus nur wenige Anpassungen am vorhandenen Projektcode erfordert, um ausgeführt zu werden, und sogar vollständig kompatibel mit alten Projekten ist. Aus Kompatibilitätsgründen ist nur die Framework-Schicht erforderlich. Dies ermöglicht einen reibungslosen Übergang für das Team.
Mit dem Coroutine-Modus müssen Entwickler überhaupt keine zusätzlichen Schlüsselwörter und die Verwendung von Funktionen erlernen. Der Codierungsstil ist genau der gleiche wie im synchronen Modus.
Unter den verschiedenen Coroutine-Technologien ist GO
die schillerndste. Coroutinen, Kanäle, statische Sprachen, Leistung, umfangreiche Kompilierung, umfangreiche Standardbibliotheken, vollständiges Ökosystem, Google usw. Es gibt zu viele Vorteile. GO-Sprache ist meiner Meinung nach die lernenswerteste unter allen aktuellen Programmiersprachen .
Swoole 2.x
Lassen Sie PHP, eine erfahrene Backend-Programmiersprache mit einer mehr als 20-jährigen Geschichte, auch über Coroutine-Funktionen verfügen. Im Vergleich zu Technologien wie Go
eignet sich der Technologie-Stack von PHP + Swoole
besser für schnelle Entwicklung, schnelle Iteration und geschäftsorientierte Szenarien. Schließlich sind dynamische Sprachen flexibler und effizienter in der Entwicklung als statische Sprachen. Und Go
eignet sich besser zum Schreiben von Software auf Systemebene und für das Kerngeschäft.
Im Jahr 2018 habe ich das Swoole-Framework, ein sehr altes Projekt, überarbeitet und die unterste Ebene unterstützt den Swoole 2.x
Coroutine-Modus. Der Hauptgrund ist, dass es innerhalb des Radunternehmens viele Projekte gibt, die auf diesem Framework basieren, insbesondere die Serviceschicht, die alle das Swoole-Framework verwenden. Wir hoffen, dass der Geschäftscode keine einzige Zeile verändert und mit einem Klick in den Coroutine-Modus gewechselt werden kann. Theoretisch können andere synchron blockierende PHP-Frameworks wie Laravel und Yii nur die zugrunde liegende kompatible Swoole 2.x
-Coroutine ändern, um einen nahtlosen Wechsel des Coroutine-Modus im Projektcode zu erreichen.
Nach der Verwendung von Coroutinen wurden die Leistung, Parallelität und Stabilität des gesamten Systems erheblich verbessert. Das Problem, dass eine langsame Anfrage oft dazu führte, dass der gesamte Server online hängen blieb, besteht in der Vergangenheit nicht mehr.
PHP & Swoole
Obwohl Swoole 2.0 erst weniger als zwei Jahre alt ist, hat es im Vergleich zu den 10 Jahren harter Arbeit an der Go-Sprache noch einen langen Weg vor sich. Aber im Vergleich zu statischen Sprachen wie GO hat PHP + Swoole immer noch viele Vorteile: PHP ist eine dynamische Sprache und ist flexibler zu verwenden.
Wenn es sich um ein neues Projekt handelt, empfiehlt es sich natürlich, Swoft zu verwenden, ein speziell für Swoole 2.x
entwickeltes Framework. Es hat weniger historisches Gepäck und weist daher eine bessere Stabilität auf.
Mit den Swoole 2.0-Coroutinen sind wir weiterhin zuversichtlich für die Zukunft von PHP.
Verwandte Empfehlungen:
Sieben Dinge, die angehende Programmierer tun müssen
Der Wachstumspfad von PHP-Programmierern
Ein kurzer Vortrag über die Zukunft der PHP-Programmierer

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

Video Face Swap
Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen

Der Artikel von StableDiffusion3 ist endlich da! Dieses Modell wurde vor zwei Wochen veröffentlicht und verwendet die gleiche DiT-Architektur (DiffusionTransformer) wie Sora. Nach seiner Veröffentlichung sorgte es für großes Aufsehen. Im Vergleich zur Vorgängerversion wurde die Qualität der von StableDiffusion3 generierten Bilder erheblich verbessert. Es unterstützt jetzt Eingabeaufforderungen mit mehreren Themen, und der Textschreibeffekt wurde ebenfalls verbessert, und es werden keine verstümmelten Zeichen mehr angezeigt. StabilityAI wies darauf hin, dass es sich bei StableDiffusion3 um eine Reihe von Modellen mit Parametergrößen von 800 M bis 8 B handelt. Durch diesen Parameterbereich kann das Modell direkt auf vielen tragbaren Geräten ausgeführt werden, wodurch der Einsatz von KI deutlich reduziert wird

Die Trajektorienvorhersage spielt eine wichtige Rolle beim autonomen Fahren. Unter autonomer Fahrtrajektorienvorhersage versteht man die Vorhersage der zukünftigen Fahrtrajektorie des Fahrzeugs durch die Analyse verschiedener Daten während des Fahrvorgangs. Als Kernmodul des autonomen Fahrens ist die Qualität der Trajektorienvorhersage von entscheidender Bedeutung für die nachgelagerte Planungssteuerung. Die Trajektorienvorhersageaufgabe verfügt über einen umfangreichen Technologie-Stack und erfordert Vertrautheit mit der dynamischen/statischen Wahrnehmung des autonomen Fahrens, hochpräzisen Karten, Fahrspurlinien, Fähigkeiten in der neuronalen Netzwerkarchitektur (CNN&GNN&Transformer) usw. Der Einstieg ist sehr schwierig! Viele Fans hoffen, so schnell wie möglich mit der Flugbahnvorhersage beginnen zu können und Fallstricke zu vermeiden. Heute werde ich eine Bestandsaufnahme einiger häufiger Probleme und einführender Lernmethoden für die Flugbahnvorhersage machen! Einführungsbezogenes Wissen 1. Sind die Vorschaupapiere in Ordnung? A: Schauen Sie sich zuerst die Umfrage an, S

In diesem Artikel wird das Problem der genauen Erkennung von Objekten aus verschiedenen Blickwinkeln (z. B. Perspektive und Vogelperspektive) beim autonomen Fahren untersucht, insbesondere wie die Transformation von Merkmalen aus der Perspektive (PV) in den Raum aus der Vogelperspektive (BEV) effektiv ist implementiert über das Modul Visual Transformation (VT). Bestehende Methoden lassen sich grob in zwei Strategien unterteilen: 2D-zu-3D- und 3D-zu-2D-Konvertierung. 2D-zu-3D-Methoden verbessern dichte 2D-Merkmale durch die Vorhersage von Tiefenwahrscheinlichkeiten, aber die inhärente Unsicherheit von Tiefenvorhersagen, insbesondere in entfernten Regionen, kann zu Ungenauigkeiten führen. Während 3D-zu-2D-Methoden normalerweise 3D-Abfragen verwenden, um 2D-Features abzutasten und die Aufmerksamkeitsgewichte der Korrespondenz zwischen 3D- und 2D-Features über einen Transformer zu lernen, erhöht sich die Rechen- und Bereitstellungszeit.

Bitte beachten Sie, dass dieser kantige Mann die Stirn runzelt und über die Identität der „ungebetenen Gäste“ vor ihm nachdenkt. Es stellte sich heraus, dass sie sich in einer gefährlichen Situation befand, und als ihr dies klar wurde, begann sie schnell mit der mentalen Suche nach einer Strategie zur Lösung des Problems. Letztendlich entschloss sie sich, vom Unfallort zu fliehen, dann so schnell wie möglich Hilfe zu suchen und sofort Maßnahmen zu ergreifen. Gleichzeitig dachte die Person auf der Gegenseite das Gleiche wie sie... In „Minecraft“ gab es eine solche Szene, in der alle Charaktere von künstlicher Intelligenz gesteuert wurden. Jeder von ihnen hat eine einzigartige Identität. Das zuvor erwähnte Mädchen ist beispielsweise eine 17-jährige, aber kluge und mutige Kurierin. Sie haben die Fähigkeit, sich zu erinnern und zu denken und in dieser kleinen Stadt in Minecraft wie Menschen zu leben. Was sie antreibt, ist ein brandneues,

Am 23. September wurde das Papier „DeepModelFusion:ASurvey“ von der National University of Defense Technology, JD.com und dem Beijing Institute of Technology veröffentlicht. Deep Model Fusion/Merging ist eine neue Technologie, die die Parameter oder Vorhersagen mehrerer Deep-Learning-Modelle in einem einzigen Modell kombiniert. Es kombiniert die Fähigkeiten verschiedener Modelle, um die Verzerrungen und Fehler einzelner Modelle zu kompensieren und so eine bessere Leistung zu erzielen. Die tiefe Modellfusion bei groß angelegten Deep-Learning-Modellen (wie LLM und Basismodellen) steht vor einigen Herausforderungen, darunter hohe Rechenkosten, hochdimensionaler Parameterraum, Interferenzen zwischen verschiedenen heterogenen Modellen usw. Dieser Artikel unterteilt bestehende Methoden zur Tiefenmodellfusion in vier Kategorien: (1) „Musterverbindung“, die Lösungen im Gewichtsraum über einen verlustreduzierenden Pfad verbindet, um eine bessere anfängliche Modellfusion zu erzielen

Oben geschrieben & Nach persönlichem Verständnis des Autors ist die bildbasierte 3D-Rekonstruktion eine anspruchsvolle Aufgabe, bei der aus einer Reihe von Eingabebildern auf die 3D-Form eines Objekts oder einer Szene geschlossen werden muss. Lernbasierte Methoden haben wegen ihrer Fähigkeit, 3D-Formen direkt abzuschätzen, Aufmerksamkeit erregt. Dieser Übersichtsartikel konzentriert sich auf modernste 3D-Rekonstruktionstechniken, einschließlich der Generierung neuartiger, unsichtbarer Ansichten. Es wird ein Überblick über die jüngsten Entwicklungen bei Gaußschen Splash-Methoden gegeben, einschließlich Eingabetypen, Modellstrukturen, Ausgabedarstellungen und Trainingsstrategien. Auch ungelöste Herausforderungen und zukünftige Ausrichtungen werden besprochen. Angesichts der rasanten Fortschritte auf diesem Gebiet und der zahlreichen Möglichkeiten zur Verbesserung der 3D-Rekonstruktionsmethoden scheint eine gründliche Untersuchung des Algorithmus von entscheidender Bedeutung zu sein. Daher bietet diese Studie einen umfassenden Überblick über die jüngsten Fortschritte in der Gaußschen Streuung. (Wischen Sie mit dem Daumen nach oben

Redis ist ein Open-Source-Hochleistungs-Schlüsselwert-Datenbanksystem, das aufgrund seiner schnellen Lese- und Schreibgeschwindigkeit, der Unterstützung mehrerer Datentypen und der umfangreichen Datenstrukturen häufig in Echtzeit-Ranking-Systemen verwendet wird. Das Echtzeit-Ranking-System bezieht sich auf ein System, das Daten nach bestimmten Bedingungen sortiert, wie z. B. Punkterankings in Spielen, Verkaufsrankings im E-Commerce usw. In diesem Artikel werden die Schlüsseltechnologien vorgestellt, die Redis beim Aufbau eines Echtzeit-Rankingsystems verwendet, sowie spezifische Codebeispiele. Der Inhalt umfasst die folgenden Teile: Berechnung der Redis-Datentypsortierung

1. Einleitung 1.1. Die Funktion des Spurwechsels besteht darin, eine der Referenzlinien auszuwählen, die von nachfolgenden Planungsmodulen verwendet werden sollen Open Source von Apollo. Es wurde stark reduziert, so dass nur noch ein einfaches Framework übrig blieb. Viele Funktionen wie aktiver Spurwechsel, passiver Spurwechsel (aufgrund von Hindernissen), relativ vollständige Zustandsmaschine, Spurwechselfenster und Lückenauswahl usw. fehlen. Dieser technische Artikel zeigt nur Inhalte zum bestehenden Framework. Was den Inhalt anderer Spurwechselfunktionen betrifft, freuen Sie sich bitte auf den Folgeartikel 1.2 Spurwechsel-Zustandsmaschine Apollos aktuelle Spurwechsel-Zustandsmaschine sieht wie folgt aus: Es gibt einige erwähnenswerte Punkte zur Zustandsmaschine: IN_CHANGE_LAN