Entdecken Sie die Open-Source-Entwicklungsreise des Seata-Projekts

Seata ist eine Open-Source-Lösung für verteilte Transaktionen, die sich der Bereitstellung leistungsstarker und benutzerfreundlicher verteilter Transaktionsdienste im Rahmen einer Microservice-Architektur widmet. Während der diesjährigen Open Source Summer-Veranstaltung bin ich der Apache Seata (Incubator)-Community beigetreten, habe das Open Source Summer-Projekt abgeschlossen und nehme seitdem aktiv an der Community teil. Ich hatte die Ehre, meine Entwicklererfahrung beim Yunqi Conference-Developer Showcase zu teilen. In diesem Artikel werde ich meinen Weg als Entwickler in der Seata-Community und die Erfahrungen und Erkenntnisse, die ich dabei gesammelt habe, mit Ihnen teilen. Ich hoffe, dass ich durch meine Geschichte mehr Menschen dazu inspirieren kann, diesen herausfordernden und inspirierenden Open-Source-Weg einzuschlagen und ihren eigenen Beitrag zum Wohlstand der Open-Source-Community zu leisten.

Verwandter Hintergrund

Bevor ich meine Erfahrungen offiziell beschreibe, möchte ich einige Hintergrundinformationen liefern, um zu erklären, warum und wie ich mich mit Open Source beschäftige. Was die Gründe für die Teilnahme an Open Source angeht, glaube ich, dass jeder unterschiedliche Beweggründe hat. Hier sind meiner Meinung nach einige der Hauptgründe:

  • Lernen:Die Teilnahme an Open Source gibt uns die Möglichkeit, zu von verschiedenen Organisationen entwickelten Open Source-Projekten beizutragen, mit Branchenexperten zu interagieren und bietet Lernmöglichkeiten.
  • Fähigkeitsverbesserung:In meinem Fall verwende ich normalerweise Java und Python für die Backend-Entwicklung. Aber während meiner Teilnahme am Seata-Projekt hatte ich die Gelegenheit, die Go-Sprache zu lernen und meinen Backend-Technologie-Stack zu erweitern. Darüber hinaus war es für mich als Student schwierig, Zugang zu Frameworks oder Anwendungen in Produktionsqualität zu erhalten, und die Open-Source-Community bot mir diese Möglichkeit.
  • Interessen:Meine Freunde sind alle begeistert von Open Source. Sie haben Spaß am Programmieren und haben eine Leidenschaft für Open Source.
  • Jobsuche:Die Teilnahme an Open Source bereichert unser Portfolio und verleiht unserem Lebenslauf mehr Gewicht.
  • Arbeitsanforderungen:Manchmal dient die Teilnahme an Open Source dazu, Probleme zu lösen, die bei der Arbeit auftreten, oder Arbeitsanforderungen zu erfüllen.

Dies sind die Gründe für die Teilnahme an Open Source. Für mich sind Lernen, Kompetenzverbesserung und Interesse die Hauptmotive für die Teilnahme an Open Source. Egal, ob Sie Student oder Angestellter sind: Wenn Sie bereit sind, sich an Open Source zu beteiligen, zögern Sie nicht, denn jeder kann zu Open Source-Projekten beitragen. Alter, Geschlecht, Job und Standort spielen keine Rolle, der Schlüssel liegt in Ihrer Leidenschaft und Neugier für Open-Source-Projekte.

Die Gelegenheit für mich, mich mit Open Source zu befassen, war meine Teilnahme an der Open Source Summer-Veranstaltung, die vom Software Institute der Chinesischen Akademie der Wissenschaften organisiert wurde.

Open Source Summer ist eine Open-Source-Aktivität für Universitätsentwickler. Die Community veröffentlicht Open-Source-Projekte und studentische Entwickler schließen die Projektentwicklung unter Anleitung von Dozenten ab. Die Ergebnisse der Projekte werden der Community zur Verfügung gestellt, in das Community Warehouse integriert und empfangen Projektprämien und Zertifikate. Der Open Source Summer ist eine ausgezeichnete Gelegenheit, in die Open-Source-Community einzusteigen. Es ist auch mein erster formeller Kontakt mit Open-Source-Projekten und diese Erfahrung hat mir eine neue Tür geöffnet. Seitdem ist mir zutiefst klar geworden, dass es äußerst unterhaltsam und sinnvoll ist, an der Entwicklung von Open-Source-Projekten mitzuwirken, Ihre technischen Errungenschaften zu teilen und mehr Entwicklern die Nutzung Ihrer Beiträge zu ermöglichen.

Das Bild, das ich unten teile, stellt die offiziellen öffentlichen Daten des Open Source Summer dar. Die Zahl der teilnehmenden Communities und Studenten ist seit 2020 Jahr für Jahr gestiegen und die Aktivitäten werden immer besser. Es ist ersichtlich, dass dieses Jahr 133 Community-Projekte teilnehmen. Jede Community stellt mehrere Themen zur Verfügung, und jeder Schüler kann nur ein Thema auswählen. Es ist eine relativ komplizierte Aufgabe, unter so vielen Communities die Community zu finden, an der man teilnehmen möchte, und das Thema zu finden, das zu einem passt.

Unter Berücksichtigung der Aktivität der Community, der Eignung des Technologie-Stacks, der Anleitung neuer Leute usw. habe ich mich schließlich dafür entschieden, der Seata-Community beizutreten.

Seata ist ein Open-Source-Framework für verteilte Transaktionen, das eine vollständige Lösung für verteilte Transaktionen bereitstellt, einschließlich der Transaktionsmodi AT, TCC, Saga und XA, und mehrere Programmiersprachen und Datenspeicherlösungen unterstützen kann. Es ist 5 Jahre her, seit es im Jahr 2019 als Open Source verfügbar war, und es gibt mehr als  300 in der Community. >  Kunden auf Geschäftssysteme angewendet. Man kann sagen, dass es sich um eine verteilte Transaktion handelt Lösung. Standard.  Es besteht ein Zusammenhang zwischen der Integration und der Integration zwischen mehreren Communities und wurde von Tausenden von20 weiteren Mainstream-RPC-Frameworks und RDBMS und 10 Sterne erhalten, es ist eine sehr ausgereifte Community. Gleichzeitig ist Seata mit über 24.000Mehrere Mitwirkende, das Projekt hat 

Am 29. Oktober 2023 wurde Seata offiziell an die Apache Software Foundation gespendet und wurde zu einem Inkubationsprojekt. Nach der Inkubation wird Seata voraussichtlich das erste verteilte Transaktions-Framework-Projekt der Apache Software Foundation auf höchster Ebene sein. Diese Spende wird auch die umfassendere Entwicklung von Seata fördern und einen tiefgreifenden Einfluss auf den Aufbau des Ökosystems haben, sodass mehr Entwickler davon profitieren. Dieser wichtige Meilenstein bringt auch größeren Entwicklungsspielraum für Seata.

Entwicklungsreise

Nachdem ich einige grundlegende Informationen vorgestellt habe, werde ich im folgenden Artikel meine Entwicklungsreise in der Seata-Community teilen.

Bevor ich offiziell mit der Entwicklung begann, habe ich viele Vorbereitungsarbeiten durchgeführt. Da Seata fünf Jahre Entwicklungszeit hinter sich hat und Hunderttausende Codezeilen angesammelt hat, fallen für den Einstieg in die direkte Einbindung gewisse Kosten an. Ich habe einige Vorbereitungserfahrungen geteilt, in der Hoffnung, dass es für alle etwas Inspiration sein kann.

1. Dokumente und Blogs sind Materialien aus erster Hand

Textmaterialien wie Dokumente und Blogs können Neulingen in der Community helfen, den Projekthintergrund und die Codestruktur schnell zu verstehen.

Zunächst einmal ist die offizielle Dokumentation das wichtigste Referenzmaterial. Von hier aus können Sie alles erfahren, was der Beamte für nötig hält.

Blogs werden nach offiziellen Dokumenten im Allgemeinen von Entwicklern oder erfahrenen Benutzern verfasst. Der Unterschied zu Dokumenten besteht darin, dass Blogs möglicherweise tiefer auf ein bestimmtes Projekt eingehen, z. B. auf das theoretische Modell einiger Projekte, die Projektstruktur und ein bestimmtes Projekt . Quellcode-Analyse jedes Moduls usw.

Öffentliche Konten enthalten, ähnlich wie Blogs, in der Regel technische Artikel. Ein weiterer Vorteil öffentlicher Konten besteht darin, dass Sie Push-Benachrichtigungen abonnieren und Ihre Freizeit zum Lesen einiger technischer Artikel nutzen können.

Darüber hinaus sind auch einige Online-Teile in der Open-Source-Community oder in Offline-Meetups veröffentlichte Folien sehr aussagekräftige Textmaterialien.

Zusätzlich zu den offiziellen Materialien gibt es viele Lernmaterialien von Drittanbietern. Beispielsweise können Sie anhand von Anwendungsfällen, die von Benutzern geteilt werden, mehr über die spezifische Implementierung und Praxis des Projekts erfahren; Sie können die Ökologie des Projekts durch die integrierten Dokumente des Projekts verstehen Community von Drittanbietern; Video-Tutorials zum Lernen. Von all diesen Materialien halte ich jedoch die offizielle Dokumentation und die Blogs für am hilfreichsten.

2. Vertraut mit der Verwendung von Frameworks

Natürlich müssen die gerade erwähnten Textinformationen nicht in allen Aspekten gelesen werden. Nach dem Lesen auf Papier werden sie oberflächlich sein. Nach dem Lesen können Sie mit dem Üben beginnen, wenn Sie das Gefühl haben, dass Sie es fast verstanden haben. Sie können dem Kapitel „Erste Schritte“ des offiziellen Dokuments folgen, um den grundlegenden Prozess des Projekts schrittweise zu verstehen. Ein anderer Ansatz besteht darin, offiziell bereitgestellte Beispiele oder Demos zu finden, sie zu erstellen und auszuführen, die Bedeutung des Codes und der Konfiguration zu verstehen und die Anforderungen, Ziele und vorhandenen Funktionen und Architekturen des Projekts mithilfe des Projekts zu verstehen.

Seata verfügt beispielsweise über ein Warehouse namens Seata-Samples, das mehr als 20 Anwendungsfälle enthält, wie z. B. die Integration von Seata und Dubbo sowie Integrationsfälle von SCA und Nacos, die grundsätzlich alle unterstützten Szenarien abdecken können.

3. Lesen Sie den Quellcode grob durch, um die Hauptlogik zu verstehen

Während der Vorbereitungsphase ist es außerdem wichtig, den Quellcode kurz zu lesen, um die Hauptlogik des Projekts zu verstehen. Zu wissen, wie man den Hauptinhalt eines Projekts effektiv erfasst, ist eine Fähigkeit, die eine langfristige Anhäufung erfordert. Zunächst ist es hilfreich, die Konzept-, Interaktions- und Prozessmodelle des Projekts durch die oben genannten Vorbereitungsschritte zu verstehen.

Am Beispiel von Seata können Sie anhand offizieller Dokumente und tatsächlicher Vorgänge die drei Rollen im Transaktionsbereich von Seata verstehen: TC (Transaktionskoordinator), TM (Transaktionsmanager) und RM (Ressourcenmanager). Als unabhängig bereitgestellter Server wird TC verwendet, um den Status globaler Transaktionen und Zweigstellentransaktionen aufrechtzuerhalten, und ist der Schlüssel zur hohen Verfügbarkeit von Seata; TM wird verwendet, um mit TC zu interagieren, um den Start, die Festschreibung oder das Rollback globaler Transaktionen zu definieren; RM wird verwendet, um zu interagieren Verwalten Sie Ressourcen für die Verarbeitung von Filialtransaktionen, interagieren Sie mit TC, um Filialtransaktionen zu registrieren und den Status von Filialtransaktionen zu melden, und steuern Sie Festschreibungen oder Rollbacks von Filialtransaktionen. Ein grobes Verständnis der Interaktionen zwischen diesen Rollen erleichtert das Verständnis der Hauptlogik des Projekts.

Mit dem eingeprägten Eindruck dieser Modelle ist es relativ einfach, das Rückgrat des Quellcodes zu extrahieren. Beispielsweise ist der Transaktionskoordinator von Seata TC als Serverseite eine separate Anwendung, die unabhängig von der Geschäftsbereitstellung ist. Um den Quellcode zu analysieren, können Sie den Server direkt lokal starten und das Tracing durch Starten der Klasse starten. Sie können einige Initialisierungslogiken analysieren, z. B. Dienstregistrierung, globale Sperrinitialisierung usw. Es gibt auch interaktive Logikcodes, die über RPC-Aufrufe verfolgt werden können, z. B. wie TC globale Transaktionen und Verzweigungstransaktionen beibehält und wie globale Transaktionen zum Festschreiben oder Zurücksetzen gesteuert werden.

Der Framework-Code des eingebetteten Clients verfügt jedoch nicht über einen Startklasseneintrag, der analysiert werden kann. Tatsächlich können Sie mit einem Beispiel beginnen und dessen Verweis auf den Framework-Code suchen, um es zu lesen. Eine sehr wichtige Annotation in Seata ist beispielsweise GlobalTransaction, die zur Identifizierung einer globalen Transaktion verwendet wird. Wenn Sie wissen möchten, wie TM diese Annotation analysiert, können wir die Suchfunktion der IDE verwenden, um den GlobalTransaction-Interceptor zu finden und die Logik zu analysieren.

Es gibt auch einen kleinen Tipp, den ich mit Ihnen teilen möchte. Im Allgemeinen konzentriert sich Unit-Test auf die Funktionen eines einzelnen Moduls. Sie können die Eingabe, Ausgabe und logischen Grenzen eines Moduls verstehen, indem Sie den Unit-Test lesen. Sie können auch die lesen Code entlang der Aufrufkette des Unit-Tests. Es ist auch ein sehr wichtiges Mittel, um den Quellcode zu verstehen.

Alles ist bereit und wir brauchen nur noch den Ostwind. Nachdem ausreichend Vorbereitungen getroffen wurden, geht es im nächsten Schritt darum, dass sich der Bezirk aktiv in die Gemeinschaft einbringt.

Es gibt viele Möglichkeiten zur Teilnahme. Die häufigste Art der Teilnahme besteht darin, die Problemliste des Projekts anzuzeigen. Die Community markiert einige Probleme normalerweise mit speziellen Labels für neue Mitwirkende, z. B. „Gute-erste-Ausgabe“, „Beiträge-willkommen“ usw „Hilfe gesucht“ usw. Mithilfe dieser Tags können Sie interessante Aufgaben filtern.

Zusätzlich zu Issues bietet GitHub auch eine Diskussionsfunktion, mit der Sie an einigen öffentlichen Diskussionen teilnehmen und neue Ideen erhalten können.

Darüber hinaus veranstalten Communities häufig regelmäßige Treffen, beispielsweise wöchentliche oder zweiwöchentliche Treffen, bei denen Sie teilnehmen können, um sich über die neuesten Entwicklungen in der Community zu informieren, Fragen zu stellen und mit anderen Community-Mitgliedern zu kommunizieren.

Zusammenfassung und Gedanken

Der Seata-Community bin ich zum ersten Mal über das Open Source Summer-Event beigetreten. Ich habe mein Projekt abgeschlossen, einige neue Funktionen für Seata Saga implementiert und auch eine Reihe von Optimierungen vorgenommen. Aber damit nicht genug, denn während Seatas Open-Source-Erfahrung habe ich die wertvollste Entwicklererfahrung meiner Studentenlaufbahn gesammelt und bin durch die oben genannten Beteiligungsmethoden weiterhin in der Community aktiv. Dies liegt vor allem an folgenden Aspekten:

  • Kommunikation und Geselligkeit

Das Mentorensystem hat mich dabei entscheidend unterstützt. Während des Entwicklungsprozesses spielte die enge Zusammenarbeit zwischen mir und meiner Mentorin Yixia eine Schlüsselrolle bei der Anpassung an die Community-Kultur und den Arbeitsablauf. Er half mir nicht nur, mich an die Community anzupassen, sondern lieferte mir auch Programmierideen und teilte mir einige Erfahrungen und Erkenntnisse bei der Arbeit mit, die für meine Entwicklung sehr hilfreich waren. Darüber hinaus leistete Qing Ming, der Gründer der Seata-Community, viel Hilfe, indem er unter anderem Verbindungen zu anderen Studenten aufbaute, mir bei Codeüberprüfungen half und mir auch viele Möglichkeiten bot.

  • Positives Feedback

Während der Entwicklung von Seata erlebte ich einen positiven Kreislauf. Viele Details bescheren mir viel positives Feedback, etwa die breite Nutzung und den Nutzen meiner Beiträge durch die Nutzer und die Anerkennung der Entwicklung durch die Community. Dieses positive Feedback bestärkt meinen Wunsch, weiterhin einen Beitrag zur Seata-Community zu leisten.

  • Verbesserung der Fähigkeiten

Darüber hinaus hat die Teilnahme an der Entwicklung von Seata auch meine Fähigkeiten erheblich verbessert. Hier kann ich Code auf Produktionsebene erlernen, einschließlich Leistungsoptimierung, Schnittstellendesign und Fähigkeiten zur Grenzbeurteilung. Kann direkt am Betrieb eines Open-Source-Projekts teilnehmen, einschließlich Projektplanung, -organisation, -kommunikation usw. Natürlich verstehen Sie auch, wie ein verteiltes Transaktionsframework entworfen und implementiert wird.

Zusätzlich zu diesen wertvollen Entwicklererfahrungen habe ich aus dieser Erfahrung auch einige persönliche Erkenntnisse über die Teilnahme an Open Source gewonnen. Um andere Studenten zu inspirieren, die an einer Teilnahme an der Open Source-Community interessiert sind, habe ich eine einfache Zusammenfassung erstellt:

  • Verstehen und lernen Sie die Kultur und Werte der Gemeinschaft

Jede Open-Source-Community hat unterschiedliche Kulturen und Werte. Das Verständnis der Kultur und Werte einer Gemeinschaft ist entscheidend für eine erfolgreiche Teilnahme an der Gemeinschaft. Das Beobachten und Verstehen, wie sich andere Mitglieder der Gemeinschaft im Alltag entwickeln und kommunizieren, ist eine großartige Möglichkeit, etwas über die Kultur einer Gemeinschaft zu lernen. Respektieren Sie die Meinungen anderer und seien Sie tolerant gegenüber unterschiedlichen Standpunkten in der Gemeinschaft.

  • Wagen Sie den ersten Schritt

Haben Sie keine Angst vor Schwierigkeiten. Der erste Schritt ist der Schlüssel zur Teilnahme an der Open-Source-Community. Sie können damit beginnen, Probleme mit Bezeichnungen wie „Gutes erstes Problem“ zu sammeln und Dokumente und Komponententests zu schreiben. Wichtig ist, die Angst vor Schwierigkeiten zu überwinden und aktiv zu versuchen und zu lernen.

  • Seien Sie zuversichtlich in Ihrer Arbeit

Zweifle nicht an deinen Fähigkeiten. Jeder fängt bei Null an und niemand wird als Experte geboren. Die Teilnahme an der Open-Source-Community ist ein Lern- und Wachstumsprozess, der kontinuierliches Üben und Sammeln von Erfahrungen erfordert.

  • Beteiligen Sie sich aktiv an Diskussionen und lernen Sie weiterhin verschiedene Technologien kennen

Scheuen Sie sich nicht, Fragen zu stellen, sei es zur spezifischen Technologie Ihres Projekts oder zu Herausforderungen während der Entwicklung. Beschränken Sie sich dabei nicht auf einen Bereich. Versuchen Sie, verschiedene Programmiersprachen, Frameworks und Tools zu erlernen und zu beherrschen, die Ihren technischen Horizont erweitern und wertvolle Erkenntnisse für Ihre Projekte liefern können.

Während meiner Open-Source-Reise habe ich wertvolle Erfahrungen und Fähigkeiten gesammelt, die mir nicht nur geholfen haben, mich zu einem wertvolleren Entwickler zu entwickeln, sondern mir auch ein tiefes Verständnis für die Leistungsfähigkeit der Open-Source-Community vermittelt haben. Ich bin jedoch nicht nur ein einzelner Teilnehmer, sondern vertrete einen Teil der Seata-Community. Als Open-Source-Projekt, das ständig wächst und sich weiterentwickelt, verfügt Seata über großes Potenzial und steht vor neuen Herausforderungen. Daher möchte ich die Bedeutung und das Zukunftspotenzial der Seata-Community hervorheben. Sie ist in die Inkubationsphase der Apache Software Foundation eingetreten. Dieser wichtige Meilenstein wird Seata einen breiteren Entwicklungsraum eröffnen. Seata heißt weitere Entwickler und Mitwirkende willkommen. Lassen Sie uns gemeinsam die Entwicklung dieses Open-Source-Projekts vorantreiben und zum Fortschritt verteilter Transaktionen beitragen.

Autor: Yin Xiangkun, Tsinghua-Universität, Teilnehmer des Seata Open Source Summer

Ursprünglicher Link

Dieser Artikel ist Originalinhalt von Alibaba Cloud und darf nicht ohne Genehmigung reproduziert werden.

Tang Xiaoou, Gründer von SenseTime, ist im Alter von 55 Jahren verstorben Im Jahr 2023 stagniert PHP Wi-Fi 7 wird vollständig verfügbar sein Anfang 2024 Debüt, fünfmal schneller als Wi-Fi 6 Das Hongmeng-System steht kurz vor der Unabhängigkeit und viele Universitäten haben „Hongmeng-Klassen“ eingerichtet Zhihui Das Startup-Unternehmen von Jun refinanziert sich, der Betrag übersteigt 600 Millionen Yuan und die Pre-Money-Bewertung beträgt 3,5 Milliarden Yuan Quark Browser PC-Version startet interne Tests KI-Code-Assistent ist beliebt, und Programmiersprachen-Rankings sind alle Es gibt nichts, was Sie tun können Das 5G-Modem und die Hochfrequenztechnologie des Mate 60 Pro liegen weit vorne MariaDB spaltet SkySQL auf und etabliert sich als unabhängiges Unternehmen Xiaomi antwortet auf Yu Chengdongs „Keel Pivot“-Plagiatsaussage von Huawei
{{o.name}}
{{m.name}}

Supongo que te gusta

Origin my.oschina.net/yunqi/blog/10322143
Recomendado
Clasificación