Themen runder Tisch
- Thema 1: Seit Open Source seit 2020 in den nationalen Plan aufgenommen wurde, gibt es immer mehr Open-Source-Projekte. Das Aufkommen von Open-Source-Projekten bietet jedem die Möglichkeit, das Upgrade-Projekt kennenzulernen und tief zu verstehen. Wie bringt sich ein Entwickler aus Lernperspektive in ein Projekt ein und lernt etwas über ein Projekt?
-
Thema 2: Die Hauptrichtung des CloudWeGo-Open-Source-Projekts ist das Cloud-native Microservice-Framework. Was sind die Hauptnutzungsszenarien solcher Projekte? Welchen Wert hat es, diese Art von Projekt zu lernen? Wie sind die Erfahrungen der gemischten Community?
-
Thema 3: Was ist der Unterschied zwischen der Rolle von Programmierern als Projektanwender und der Rolle von Entwicklern als Open-Source-Projektdesigner ? Welche Lehren können Sie als Community-Committer teilen, der diese Art von Rollenwechsel durchlaufen hat?
-
Thema 4: Sprechen Sie aus Sicht der Community und der Gesamtsituation darüber, warum große Fabriken Go-Ingenieure anwerben? Wie sollten Programmierer ihre Karriereentwicklung planen? Wo ist das endgültige Ziel der Programmierer?
-
Thema 5: In der Sharing-Session der Großen, von den Großen empfohlene Blogger/Technik-Lern-Websites/Bücher.
Gast
Ausgabe eins
Seit Open Source seit 2020 in die nationale Planung aufgenommen wird, gibt es immer mehr Open-Source-Projekte. Das Aufkommen von Open-Source-Projekten bietet jedem die Möglichkeit, das Upgrade-Projekt kennenzulernen und tief zu verstehen. Wie bringt sich ein Entwickler aus Lernperspektive in ein Projekt ein und lernt etwas über ein Projekt?
Geteilt von: Wang Weichao
Die Einführung zu diesem Thema erfolgt hauptsächlich unter den folgenden vier Aspekten:
-
Wie man sich mit Kitex- und CloudWeGo-Communities verbindet;
-
Persönliches Wissen über Cloud-Native- und Open-Source-Kultur;
-
Warum sich an Open Source und dem Geist von Open Source beteiligen, wie ich ihn verstehe;
-
Persönliche Zukunftsgedanken zu Open Source.
Wie man sich mit Kitex- und CloudWeGo- Communities verbindet
Tatsächlich ist die Beziehung zu Kitex sehr zufällig, obwohl ich seit mehreren Jahren Backend-Entwicklung mache, habe ich das Gefühl, dass es immer noch einige technologische Engpässe gibt, also möchte ich mich verbessern. Rückblickend auf meine bisherige Erfahrung:
-
Im September 2021 werde ich versuchen, eine Ausgabe in InfoQ zu machen, und die Herausforderung wird an dem Tag aktualisiert, und es wird mehr Übersetzungen geben;
-
Ende Oktober entschied ich mich, eine bestimmte Technologie zu lernen, und stellte fest, dass ich zuvor mehr über „Tao“ und „Fa“ gelernt hatte, hauptsächlich über das Wissen und Verstehen von Programmierkonzepten und selten über „Fähigkeiten“ und „Werkzeuge“. ";
-
Erinnert an die Worte von Konfuzius: "Ich schmecke, dass ich den ganzen Tag nicht esse, ich die ganze Nacht nicht schlafe, Denken ist nutzlos, es ist besser zu lernen", also Denken auf der Ebene des Denkens und Struktur vor, ist es besser, einige spezifische Techniken zu lernen. Daher habe ich mich entschieden, ein anderes Thema zu finden und mit den Aspekten zu beginnen, die mich interessieren, aber die Themen Docker, Cloud-Native, Architekturdesign und Microservice-Denken sind sehr heiß und sehr wettbewerbsfähig, und es kann schwierig sein, anzufangen und mein Ziel zu erreichen eigene Sachen für eine Weile;
-
Ich erinnerte mich, dass Kitex, das gerade Open Source war, und einige verwandte Middleware-Sammlungen im CloudWeGo-Projekt, das nur Open Source war, weniger Informationen und Praktiken enthalten sollten, also startete ich die Reihe „CloudWeGo Microservice Practice“ und erstellte eine kleine Sammlung, aber Ich habe es nicht vollständig geschrieben, sondern nur über Betriebsdaten geschrieben, keine vollständige Geschäftspraxis.
Für mich persönlich ist das Erlernen von Microservices-Frameworks eine großartige Möglichkeit, um loszulegen und, was noch wichtiger ist, mich in der Community engagieren zu können. Beim Lernen über das Framework lerne ich oft über relevante Trends in der CloudWeGo Feishu-Gruppe, werfe einen Blick auf CloudWeGo-bezogene PRs oder Probleme, achte auf einige der neuesten Entwicklungen und sehe, was ich selbst tun kann. Später habe ich hauptsächlich einige Beiträge zur Kitex-Service-Erkennung, Service-Registrierungs-bezogenen Komponenten, Unit-Tests usw. geleistet.
Persönliches Verständnis der Cloud-nativen und Open-Source-Kultur
Wie also habe ich Schritt für Schritt die Open-Source-Kultur verstanden bzw. bin mit ihr in Berührung gekommen?
Dies geht wahrscheinlich zurück auf 2018-2019. Damals habe ich oft an einigen Technologiegipfeln, Meetups und anderen Aktivitäten in Shenzhen teilgenommen. Die Technologieatmosphäre in dieser Stadt ist immer noch relativ gut. Damals war klar, dass Cloud-native und Container-basierte Virtualisierung K8S ein technischer Trend sein muss und ich habe mich damals aufgrund meines Interesses an Docker verstärkt mit diesen verwandten technischen Feldern von K8S befasst.
Schließlich habe ich zufällig erfahren, dass die Linux Foundation, die Linux Open Source Foundation, einige technische Zertifizierungen haben wird. Damals wollte ich die Gelegenheit nutzen, gezielt einige Technologien zu lernen, sie haben zum Beispiel CKA und CKS ins Leben gerufen, das ist also auch eine Art Lernkanal.
Nicht nur das, ich achte auch oft auf einige Open-Source-Projekte, die von der Stiftung ins Leben gerufen wurden. Zu dieser Zeit, als ich K8S lernte, durchsuchte ich K8S-bezogene Dokumente und erwähnte einige PRs für ihre Dokumente. Dies ist meine früheste Begegnung mit Open Source.
Warum sich auf Open Source einlassen und den Geist von Open Source verstehe ich
-
Erfahren Sie mehr über großartige Open-Source-Projekte
Vermeiden Sie es, der Frosch im Brunnen zu sein, gehen Sie raus und sehen Sie, was andere tun. Zum Beispiel: Exzellente Codierung, Codespezifikationen, Entwurfsmuster, architektonische Ideen usw., suchen Sie nach positiveren Beispielen und Best Practices und erweitern Sie den technischen Horizont.
-
Die Open-Source-Welt ist eine inklusive und offene Welt
Auf Github können Sie mehr und bessere Menschen auf der ganzen Welt entdecken, mit ihnen arbeiten und von ihnen lernen. Das Verständnis ihrer technischen Ideen, Denkweisen und Karriereplanungen wird Sie ebenfalls inspirieren.
-
Co-Konstruktion, Stück für Stück beginnend, Integration in die Gemeinschaft bringt Erfolgserlebnisse
Open Source nutzt oft Liebe, um Strom zu erzeugen. Der erste Schritt in Open Source besteht darin, den Code zu öffnen, und dann wird es oft von der Community vorangetrieben, um Iteration und Evolution voranzutreiben. Das Wesen und die Bedeutung von Open Source ist das hohe Feuerniveau dass sich alle versammeln. Die Bits und Stücke, die wir in die Community einbringen, können vielen Benutzern in Zukunft helfen, Probleme zu lösen.Dies ist die Verkörperung der Vitalität von Open-Source-Projekten und die Quelle unseres Erfolgserlebnisses.
Persönliche Zukunftsgedanken zu Open Source
Wenn möglich, möchte ich in Zukunft Open Source beruflich nutzen. Die Hauptgründe sind wie folgt:
-
Traum
Es gab den Traum, aus der Ferne arbeiten zu können, Code zu einem Open-Source-Produkt beizutragen oder in einer Stiftung zu arbeiten.
-
Prediger
Sie können mit Menschen und Dingen umgehen, die Sie mögen, ohne zu viel über Kommerzialisierung und Introversion nachzudenken.
-
Zukunftsplan
Die aktuelle Idee wird vielleicht nicht über Nacht verwirklicht, aber zumindest hat sie in CloudWeGo einen Einstiegspunkt gefunden, in der Hoffnung, einen besseren Beitrag zur Community zu leisten. Aus Sicht der Reihe dynamischer und strategischer Layouts von ByteDance wird CloudWeGo in Zukunft definitiv mehr einflussreiche Open-Source-Projekte im Bereich der Go-Microservices machen können.
Abschließend möchte ich noch einen Open-Source-Enthusiasten nennen, den ich für eine sehr repräsentative und geekige Person halte. Sein Name ist Su Yeqin. Er ist Kinderarzt in Yunnan, aber eigentlich ist er in seiner Freizeit ein Linux-Spieler. Wenn Sie interessiert sind, können Sie mehr erfahren.
Schließlich hoffe ich, dass jeder Spaß an der Welt des Codes finden kann!
Geteilt von: Yang Wen
In Bezug auf dieses Problem, ausgehend von meiner tatsächlichen Erfahrung, werde ich es unter zwei Aspekten teilen:
-
der Winkel, es selbst zu tun;
-
Die Perspektive der Teilnahme am Projekt.
Winkel zum Selbermachen
Open Source selbst zu machen ist eigentlich nicht sehr hart, wie ein Repo wie Go Night Reading.
Go Night Reading hat derzeit 1W+ Sterne auf Github. Tatsächlich stellt die Anzahl der Sterne selbst nichts dar. Es stellt eher eine Erfahrung dar. Aus dieser Sicht hilft uns der Hinweis auf die Anzahl der Sterne meiner Meinung nach, Open Source zu verstehen ., oder besser gesagt, es ist das Feedback, das Open Source bringt.
-
Klären Sie die Bedeutung des Betriebs von Open-Source-Projekten
Ob es sich um ein sehr hartes Projekt oder eine grundlegende Komponente handelt oder um Inhalte, die praktische Probleme lösen und jedem helfen können, zu lernen und zu wachsen, wir müssen darüber nachdenken, ob dieses Ding hilfreich ist und wie es gemacht wird Teilnahme Ein Modell von Open Source. Wenn Sie versuchen, Sterne zu verdienen, kann dies kontraproduktiv sein. Tatsächlich muss man es meiner Meinung nach als Open-Source-Projekt betreiben, was man daraus lernen kann oder den Open-Source-Spirit versteht und manches positive Feedback, das Open Source mit sich bringt, ist eigentlich ziemlich viel, braucht man nicht auf die Anzahl der Sterne achten.
-
Projektentwicklung braucht Prozess
-
Am Anfang kann die Entwicklung eines Open-Source-Projekts von einer oder zwei Personen initiiert werden. In diesem Prozess können Sie einige Leute vorstellen, die an diesem Aspekt interessiert sind, oder anderen durch Ihr Projekt helfen, und dann andere dazu bringen, mitzumachen, und dann den Umfang des Projekts schrittweise erweitern. Egal welche Art von Projekt, dies ist eigentlich der Prozess. Sogar Projekte, die zu diesem Zeitpunkt relativ ausgereift und groß angelegt sind, wie Go Night Reading, TiDB von PingCAP und einige andere Go Repo, werden tatsächlich auf diese Weise durchgeführt.
Das erste, was Sie tun müssen, ist, es auf einem Niveau zu tun, das Sie für nicht schlecht halten, und es dann in Ihrem Freundeskreis oder Ihrer Community zu fördern. Beispielsweise löste CloudWeGo tatsächlich einige der Anforderungen der Szene, indem es das Problem tatsächlich löste, es dann als Open Source veröffentlichte und sich dann stetig Schritt für Schritt weiterentwickelte. Eine Veranstaltung wie die unsere heute hilft den Menschen in der Gemeinde. Wenn das Projekt selbst wertvoll und dynamisch ist, egal ob Sie Teamleiter oder Teilnehmer sind, können Sie tatsächlich viel lernen, solange Sie daran teilnehmen.
Das obige ist, von Ihrer eigenen Sichtweise aus zu beginnen, ein Projekt zu finden, in das Sie investieren möchten, oder ein Schmerzpunktproblem, das für Sie gelöst werden muss, und dann weiter zu iterieren. Gold glänzt immer und das Projekt auch.Solange das Projekt wirklich wertvoll ist, wird es immer von mehr Menschen wahrgenommen.
Teilnahme an der Projektperspektive
Eine andere Perspektive ist die Teilnahme an einigen Projekten, aber Sie müssen vor der Teilnahme an dem Projekt eine Auswahl treffen.Die Auswahlkriterien können sich auf die folgenden drei Aspekte beziehen:
-
kann dein Problem lösen. Dies sind die Kriterien oder Kriterien für die Beurteilung, wie Sie das Projekt auswählen und am Projekt teilnehmen.
-
Bestimmen Sie die Entwicklungssprache. Die Wahl einer Entwicklungssprache mit einer relativ breiten Abdeckung, sei es Projektkonstruktion oder Open-Source-Betrieb, wird systematischer und standardisierter, um nicht auf Gruben zu treten.
-
Der Zweck der Teilnahme an Open-Source-Projekten. Betrachten Sie den Einfluss von Open-Source-Projekten, ob Sie etwas lernen und gewinnen und einen Teil Ihres eigenen Werts für das Projekt ausgeben können.
Meiner Erfahrung nach empfiehlt es sich, ein vollständigeres und einflussreicheres Open-Source-Projekt zu wählen. Im Jahr 2018 habe ich an TiDB teilgenommen und Active Contributor erhalten.Obwohl die Dimension meiner Beteiligung am eigentlichen Hardcoding nicht sehr tief ist, geht es mehr um Beteiligung. Es muss viel investiert werden, um weiterhin Ihren Wert zu generieren und auszugeben und gleichzeitig weiterhin das Feedback der Community an Sie aufzunehmen.
Kurz gesagt, wählen Sie aus, was im Moment das Richtige für Sie ist, und identifizieren Sie, welche Art von Person Sie sein möchten, welche Art von Rolle Sie übernehmen möchten, und finden Sie dann einige Projekte, die Ihnen helfen, Ihre Ziele entsprechend zu erreichen. Vielmehr sollte auch die Teilnahme an Open-Source-Projekten nach eigenen Fähigkeiten erfolgen, sich ein für sich und sein Interesse wirklich passendes Feld aussuchen und sich dann in diesem technischen Feld weiter kultivieren. Nur durch langfristige technische Investitionen können wir wirklich einige relativ gute Leistungen und Ergebnisse in diesem Bereich erzielen, um wirklich den Kern zu lernen und uns zu verbessern.
Geteilt von: Li Long
In Bezug darauf, wie Entwickler an Open Source teilnehmen können, stelle ich die folgenden drei Referenzmethoden zur Verfügung:
-
Community-Probleme beitragen/lösen, indem Sie am First Good Issue teilnehmen;
-
Finden Sie durch den tatsächlichen Kampf (projektieren Sie den tatsächlichen Kampf/Leistungsvergleich usw.) die Punkte, die optimiert werden können, lösen Sie sie und geben Sie der Community Feedback;
-
Lesen Sie den Quellcode direkt.
Beteiligen Sie sich am First Good Issue-Beitrag / lösen Sie Community-Probleme
-
Die allgemeine Community wird viele Backlog-Probleme haben, und Sie können zu Beginn einige einfache Probleme auswählen.
Ursprünglich habe ich Open Source wegen des Schreibgeschäfts gemacht, im Grunde werden alle Go-Dienste innerhalb von Byte Gorm als ORM verwenden. Als ich von Gorm erfuhr, stellte ich fest, dass es zu dieser Zeit tatsächlich eine ganze Menge Probleme in Gorm gab, einschließlich eines Rückstands von mehr als 100 jetzt. Ich habe also festgestellt, dass ich mich in Open Source einbringen kann, indem ich einige Community-Probleme löse.
Bei einigen Problemen kann es sich um Nutzungsfehler handeln. Sie können versuchen, diese Fehler zu beheben. Durch das ständige Lösen von Issues bin ich nach und nach mit dem Framework vertraut, und es gibt einfache Fehler zu beheben, was etwa ein bis zwei Monate dauert, und ich bin mit diesem Framework grundsätzlich vertraut.
-
Open-Source-Communities bieten in der Regel von Zeit zu Zeit Anfängeraufgaben an, an denen jeder aktiv teilnehmen kann.
Die CloudWeGo-Community verschickt oft einige First Good Issues, d. h. Anfängeraufgaben, und Sie können an der Community teilnehmen, indem Sie Anfängeraufgaben übernehmen. Die Anfängeraufgaben, die Herr Weichao und ich zunächst übernahmen, waren die Erweiterung der Dienstregistrierungserkennung, einige Demodienste, Beispieldienste usw. Beim Schreiben dieser Beispieldienste konnten wir tatsächlich einige Probleme finden und sie dann beheben.
Zusammenfassend lässt sich sagen, dass Sie sich an Open Source beteiligen können, indem Sie Issues in die Community senden oder selbst aktiv Issues finden. Im Gegensatz dazu hat Gorm selbst viele Issues, und interessierte Schüler können einige einfache Issues auswählen, an denen sie teilnehmen möchten. CloudWeGo wird regelmäßig einige Anfängeraufgaben versenden, und jeder kann aktiv teilnehmen.
Tatsächlicher Kampf (Projektkampf/Leistungsvergleich usw.)
-
Ändern Sie die Beispieldemo im Dokument, um der Community Feedback zu geben.
Einige Entwickler sehen sich möglicherweise die Demo im Dokument an und fügen die Demo zum Ausführen ein, stellen aber fest, dass sie nach dem direkten Einfügen nicht ausgeführt werden kann oder das Dokument falsch geschrieben ist. In diesem Fall können Sie die Beispieldemo im Dokument ändern, um Feedback zu erhalten die Beteiligung der Community an Open Source.
-
Führen Sie einige Stresstests durch, um die Leistung verschiedener Frameworks zu verringern.
Vorher machen manche Studenten gerne Stresstests, um die Leistung verschiedener Frameworks zu vergleichen. Diese Methode muss das Prinzip der Fairness und Klarheit so weit wie möglich sicherstellen, das Framework im Voraus verstehen und die Punkte herausfinden, die optimiert und danach iteriert werden können den Stresstest, um nach der Optimierung einen Beitrag zur Community zu leisten.
Lesen Sie den Quellcode direkt
Natürlich kann man den Quellcode auch direkt lesen, allerdings ist der Einstieg für Xiaobai schwieriger und schmerzhafter.
Die oben genannten drei Möglichkeiten, sich an Open Source zu beteiligen.Außerdem tendiere ich in Bezug auf die Objektauswahl eher dazu, die Projekte zu studieren, die ich normalerweise verwende, wie Kitex oder Gorm, wodurch ich mich besser fühle.
Ausgabe zwei
Die Hauptrichtung des CloudWeGo-Open-Source-Projekts stellt das Cloud-native Microservice-Framework dar. Was sind die Hauptnutzungsszenarien solcher Projekte? Welchen Wert hat es, diese Art von Projekt zu lernen? Wie sind die Erfahrungen der gemischten Community?
Geteilt von: Li Long
Nutzungsszenarien von CloudWeGo
Wenn Sie ein Framework mit hoher Leistung und Flexibilität wählen möchten und interne Anpassungsanforderungen erfüllen können, ist das von CloudWeGo bereitgestellte Microservice-Framework eine gute Wahl. Das CloudWeGo-Open-Source-Projekt hat hauptsächlich die folgenden Merkmale:
-
Hohe Performance (Netpoll / Sonic / Frugal etc.)
Zum Beispiel ist das zugrunde liegende Netpoll selbst eine leistungsstarke Netzwerkbibliothek; Hertz hat eine integrierte Sonic-Hochleistungs-JSON-Kodierungs- und Dekodierungsbibliothek.
-
Bietet eine Fülle von Erweiterungsmöglichkeiten
Sowohl Kitex als auch Hertz bieten umfangreiche Erweiterungsmöglichkeiten. Beispielsweise ist Kitex wie eine Strombegrenzungserweiterung, eine transportpipelinegebundene Erweiterung usw. Hertz selbst verfügt über eine starke Erweiterungsfähigkeit und kann einige individuellere Anpassungsanforderungen erfüllen.
-
Optimierte Benutzer-API-Schnittstelle
Es werden einige benutzerfreundliche API-Schnittstellen bereitgestellt, die nicht besonders kompliziert sind.
Lernen Sie die Wertpunkte dieser Art von Projekt kennen
-
Lernrahmen für mehrschichtiges Design / einige bessere Designpunkte
[Beispiel] Das vierschichtige Schichtdesign von Hertz weist keine Kopplung zwischen den Schichten auf und weist eine starke Skalierbarkeit auf.
-
Lernen Sie einige Tipps zur Leistungsoptimierung für das Framework kennen und erweitern Sie Ihren Horizont
[Beispiel] Warum ist die Performance von Netpoll in manchen Szenarien deutlich höher als die der Standardbibliothek?
Referenz: https://juejin.cn/video/7046282096435789835
-
Leistung des Stresstest-Frameworks, Austausch und Lernen besprechen
Viele Studenten in der Community mögen das Stresstest-Framework, insbesondere für Kitex und Hertz, und seine beiden Benchmark-Repositories. Wir hoffen sehr, diese technischen Optimierungen auf niedriger Ebene und die damit verbundenen Diskussionen in der Community zu sehen, unabhängig von den Unterschieden zwischen den Kitex- und Hertz-Frameworks und wie sie verwendet werden. Indem Sie die Leistung von Frameworks wie Hertz, Fasthttp und Gin testen und vergleichen, können Sie sich auf ihre Leistungsverbesserung und Leistungsoptimierung konzentrieren, was eine relativ niedrige technische Tiefenlogik ist.
Gemeinschaftlicher Erfahrungsaustausch
-
Ein guter Fall: Tragen Sie zur Brother-Community bei, indem Sie hervorragende Design- und Leistungsoptimierungspunkte in der Community lernen.
-
[Beispiel] Diskussion von @Halst über die Größenanpassung in Shardmap · Diskussion #306 · cloudwego/kitex , initiieren Sie Diskussionen in der Community und wenden Sie hervorragende und lernbare Orte auf andere Open-Source-Projekte an.
-
-
Ein schlechter Fall: Einige vage Fragen/Bewertungen zum verwendeten Framework.
-
[Beispiel] Klassischer Kommentar: "Das Design ist nicht sehr gut/das Design ist zu schwer", Sie müssen das konkrete Design begründen, wenn das Design nicht gut/zu schwer ist. Bitte vermeiden Sie diesen Fall rechtzeitig und versuchen Sie es mit Daten sprechen.
-
Ausgabe drei
Was ist der Unterschied zwischen der Rolle des Programmierers als Projektbenutzer und der Rolle des Entwicklers als Open-Source-Projektdesigner ? Welche Lehren können Sie als Community-Committer teilen, der diese Art von Rollenwechsel durchlaufen hat?
Geteilt von: Wang Weichao
Projektnutzerperspektive
Berücksichtigen Sie als Projektbenutzer die folgenden Punkte, wenn Sie Open-Source-Projekte in Betracht ziehen:
-
Ob das Open-Source-Projekt kontinuierlich gepflegt wird;
-
Ist die Dokumentation reichhaltig?
-
ob die Community aktiv ist;
-
Ob das aktuelle Projekt verfügbar und einfach zu verwenden ist und die technischen Probleme des aktuellen Teams lösen kann;
-
Ob der unbefriedigte Ort ausgebaut werden kann.
Die Perspektive des Open-Source-Projektdesigners
Als Open-Source-Projektdesigner denke ich hauptsächlich darüber nach, wie ich Benutzern helfen kann, ihre Probleme besser oder schneller zu lösen. Am Beispiel des CloudWeGo-Projekts, als Zusammenfassung der internen Praxis von Byte, soll Open Source mehr Menschen helfen, einige häufig auftretende Probleme zu lösen, sodass die folgenden Probleme stärker berücksichtigt werden können:
-
Akzeptieren Sie Benutzerfeedback durch Wartungsprojekte und welche häufigen Probleme nicht abgedeckt sind;
-
Entwickeln Sie einige neue Funktionen;
-
Ob die Wartung des Fehlers rechtzeitig erfolgt;
-
Können Sie Benutzern helfen, ihre Probleme schneller zu lösen?
-
Dokumentenpflege und kontinuierliche Anreicherung, Sortierung von Geschäftsfällen.
Ausgabe vier
Sprechen Sie aus einer Community-Perspektive und einer globalen Perspektive darüber, warum große Fabriken Go-Ingenieure einstellen? Wie sollten Programmierer ihre Karriereentwicklung planen? Wo ist das endgültige Ziel der Programmierer?
Geteilt von: Yang Wen
Warum rekrutieren große Fabriken Go -Ingenieure?
-
Die Entwicklung der Go-Sprache
Ich denke, der wichtige Grund für die Entwicklung von Go ist die Entwicklung der Cloud-Native-Richtung, des Bereichs Docker-Containerisierung, K8S einschließlich der gesamten Ökologie von Grpc, die in Reihe geschaltet sind, was zur Entwicklung einiger grundlegender Komponenten geführt oder ausgelöst hat. In Verbindung mit der Anwendung von Cloud Native und K8S bei verschiedenen Herstellern hat dies dazu geführt, dass sich alle für eine Menge Infrastruktur, Flusskontrolle, verteilte Link-Tracking-Dienste und die Open Source vieler grundlegender Komponenten entschieden haben, die sich in Zukunft für die Go-Sprache entschieden haben.
-
Funktionen der Go-Sprache
Basierend auf den Sprachfunktionen von Go selbst ist es relativ gut, diese Dinge zu tun. Die Go-Sprache selbst ist leistungsstark und einfach, mit niedrigen Wechselkosten und niedrigen Eintrittsbarrieren. Hinsichtlich der Sprachgrundlage kann die Sprache C grundsätzlich eine nahtlose Anbindung erreichen, wenn es sich um eine Skriptsprache handelt, mag ein Umdenken relativ notwendig sein, aber die Performance von go ist besser, und die Umstellung von PHP auf Go kann ein großes Leistungsproblem lösen. Darüber hinaus ist Go schnell einsatzbereit und die offizielle Dokumentation führt die Demo sehr schnell aus. Wenn Sie also lernen möchten, machen Sie sich keine Sorgen, dass der Einstieg schwierig sein wird.
-
Anwendungsszenarien großer Fabriken
Tatsächlich werden große Fabriken ein tatsächliches Anwendungsszenario haben und Probleme lösen müssen. Die Go-Sprache kann schnell loslegen und verwandte Geschäfte abschließen, und ihre hohe Geschwindigkeit und gute Leistung erfüllen auch ihre geschäftlichen Anforderungen. Aus Sicht der Infrastruktur konnten große Fabriken in der Vergangenheit C, C++ oder JAVA verwenden, um die gesamte Verbindung aufzubauen. Ein Satz wird die Effizienz beeinträchtigen. Im Vergleich dazu wird die Implementierung von Go schneller und effizienter sein.
Karriereentwicklung und endgültiges Ziel des Programmierers ?
Ich habe einen Punkt: Sprache ist nur ein Werkzeug zur Problemlösung.
Hier sind ein paar Dinge, die es bei der persönlichen Karriereentwicklung und den Karrierewegen zu beachten gilt:
-
Sie sind sprachbegabt und wollen sich in fachlicher Tiefe anstrengen?
-
Möchten Sie in Kombination mit Ihrem Unternehmen Ihre Geschäftsfähigkeiten, damit verbundenen persönlichen weichen Qualitäten und Managementfähigkeiten verbessern?
-
Verwenden Sie Technologie, um geschäftliche Probleme zu lösen und einen geschäftlichen Mehrwert zu schaffen?
Wenn Sie sich aus persönlicher Sicht die Karriereentwicklung ansehen möchten, schauen Sie vielleicht nicht nur auf Ihren Technologie-Stack oder Ihre technischen Punkte, sondern darauf, was Sie gut können, und in Ihrem absehbaren Zeitraum, Ihre Stärken und In der Richtung, in die Sie sich entwickeln möchten, kombinieren Sie es mit Ihrer aktuellen Tätigkeit und klären Sie Ihre Bedürfnisse.
Die von Go bereitgestellte Wertdimension ist nur ein Sprachwerkzeug, das Ihnen helfen kann, die Schwelle zu überschreiten oder Probleme zu lösen. Die persönliche Karriereentwicklung hängt hauptsächlich von Ihrer aktuellen Position und Ihrem Wert ab. Ob Go für geschäftliche Zwecke oder für Infrastruktur und Low-Level-Inhalte verwendet wird, hängt von Ihrem eigenen Bereich oder Ihren beruflichen Anforderungen ab.Es ist nur ein Sprachwerkzeug, das Ihre beruflichen Entwicklungsanforderungen erfüllen kann.
Außerdem verstehe ich derzeit, dass die Arbeit von Go-Ingenieuren noch eher geschäftsorientiert ist, oder die Produktfunktionen mehr sind, und es relativ wenige in der Infrastruktur oder im unteren Bereich gibt. Große Fabriken sollten auch mehr Geschäfte oder Produkte haben, aber die Nachfrage nach anderen Aspekten wie der Infrastruktur kann allmählich steigen.
Aftership Go-Anwendungen sind hauptsächlich auf der Geschäftsseite angesiedelt, und einige von ihnen haben eine gewisse Beziehung zu Cloud Native oder Infrastruktur, aber sie haben kein breites Spektrum abgedeckt oder haben eine spezielle Architekturabteilung wie Byte, die den Infrastrukturaufbau von Go übernimmt Ökosystem. Es wird noch nicht, je nach Entwicklungsstand des Unternehmens, noch benötigt und entwickelt, um dies zu tun.
Ausgabe 5
In der Sharing-Session der Großen, der von den Großen empfohlenen Blogger/Technologie-Lern-Websites/Bücher.
Geteilt von: Li Long
Empfohlener Grund:
-
Entwerfen von datenintensiven Anwendungen
Es ist ein besonders klassisches Buch, das einige Probleme behandelt, die in allen Aspekten des Entwicklungsprozesses auftreten, und relativ umfassend ist.
-
"Programmierer-Selbstkultivierung: Verknüpfen, Laden und Bibliotheken"
Der Inhalt wird auf relativ niedriger Ebene verwandt sein, hauptsächlich einschließlich Verlinken, Laden, Kompilieren usw.
-
Google SRE-Arbeitsmappe
Nicht nur SRE muss im Auge behalten werden, sondern auch F&E.
-
"Microservice-Architektur-Entwurfsmuster"
Einige der Probleme, auf die Sie bei der Entwicklung von Microservices stoßen, finden Sie hier zu Referenzzwecken.
Geteilt von: Yang Wen
Empfohlener Grund:
-
"Mini-Gewohnheiten"
Es ist stärker auf Einzelpersonen ausgerichtet, ausgehend von den Dimensionen des Geistes und dem persönlichen Denken über die Entwicklung von Mikrogewohnheiten. Die Idee der Mini-Gewohnheiten besteht darin, sich eine sehr kleine Dimension vorzustellen, die Sie auf jeden Fall erreichen können, ohne die Belastung. Das Konzept, das ich in dem Buch zum Ausdruck bringen möchte, ist, dass es beim Handeln oft hauptsächlich ums Handeln geht. Warum sind Gewohnheiten so schwer zu bilden? Die Hauptsache ist, dass Sie denken, es sei eine Belastung, die Ihre normale Arbeit und Ihr Leben beeinträchtigt und Ihren Rhythmus stört, sodass Sie es nicht tun können. Fangen Sie also klein an. Nehmen Sie sich Zeit und verwenden Sie eine kleine Handlung, um sich zurückzuhalten, um allmählich eine Gewohnheit zu entwickeln und schließlich Ihren Traum zu verwirklichen oder Ihr Ziel zu erreichen.
-
"Gekochtes neues Jahrzehnt"
Der Grund, warum dieses Buch empfohlen wird, ist, dass viele Freunde, die gerade ihren Abschluss gemacht haben, das mobile Internet zwar kennen, aber viele Dinge nicht sehr gut wissen oder nicht viel über die Zehn wissen. Jahr (2010-2020) Entwicklung des Internets. Welche Art von Unternehmen oder Anwendungen gab es in den letzten zehn Jahren? Welche mobilen Anwendungen gibt es und wie haben sie sich entwickelt? Auf welche Probleme und Veränderungen sind Sie dabei gestoßen? Dieses Buch wird es genauer erklären.
-
Salesforce-Legenden
Dieses Buch bezieht sich auf ToB SaaS in meiner derzeitigen Branche. Salesforce ist ein führendes Unternehmen oder vielmehr ein Pionier in der Verkaufs-SaaS-Branche. Dieses Buch stellt eine Einführung in den gesamten Salesforce-Prozess von seinen Anfängen bis zu seiner allmählichen Entwicklung und seinem Wachstum dar. Es ist eine Wachstumsgeschichte von Salesforce. Dieses Buch stellt eine große Orientierungshilfe für die SaaS-Branche dar. Wie man Schritt für Schritt zu welcher Stufe kommt, welche Methode angewendet werden kann oder welche Stufe durchlaufen wird, es sollte in dieser Branche noch viel Verständnis für SaaS geben. hilfreich.
Geteilt von: Wang Weichao
-
Bücherliste
Meine Empfehlung für die Buchliste ist eigentlich eher auf der Ebene des „Tao“ angesiedelt.“ „Tao“ bedeutet, dass viele dieser Bücher Architektur- oder Codierungs- und Programmiergedanken sind. In "The Future of Code" des Vaters von Ruby Matsumoto Yukihiro gibt es eine kleine objektorientierte Erklärung, die mich sehr beeindruckt hat. Das Buch erklärt, warum unsere aktuelle Codierung und Programmierung von prozessorientiert auf objektorientiert umgestellt werden sollte. Was sind seine Vorteile? Was ist der Hintergrund? Bei Interesse können Sie gerne vorbeischauen.
-
bloggen
Glaubensorientierte Programmierung, Geek Tutu, das sind eher typische Blogs. Einer ist für die unterste Ebene des Go-orientierten Designs und der andere für die Implementierung einiger Frameworks und Middleware für die Go-Codierung. Go Night Reading ist umfassender, wenn Sie mehr über den Technologie-Stack von Go erfahren möchten, können Sie sich darüber informieren.
-
weiche Fähigkeit
Das ist tatsächlich ein großes Thema. In Bezug auf Soft Skills am Arbeitsplatz, wie agile Entwicklung, schlagen viele Unternehmen sie jetzt vor. Als Entwickler können wir auch etwas über den Standard oder Best Practice lernen, wie agile Entwicklung durchgeführt werden sollte. Es gibt auch Kommunikation und Feedback, jeder hat seinen eigenen Erfolg, und alles hat ein Echo, auch diese Kommunikationsfähigkeiten brauchen die Aufmerksamkeit aller.
Fragen und Antworten
F: Wie sieht es mit der Entwicklung einiger Teile der Gesamtarchitektur der Go-Sprache aus? Hauptsächlich um was zu unterstützen?
A:
Es dient hauptsächlich Leistungsproblemen und unterstützt einige Geschäftsentwicklungen. Für einige Szenarien innerhalb von ByteDance dient das Framework-Tuning hauptsächlich der Leistungsoptimierung. Zum Beispiel ist für das Framework der Gesamtübertragungsverlust ein echter Kostenfaktor auf der Grundlage einer Anhäufung im großen Maßstab, sodass einige Verluste in unseren Kosten durch Leistungsoptimierung reduziert werden können. Aus diesem Grund hat sich ByteDance, einschließlich CloudWeGo, im Bereich der Leistung weiter weiterentwickelt, um den optimalen Zustand zu erreichen. Gleichzeitig hoffe ich, diesem Aspekt der Technologie mehr Aufmerksamkeit zu schenken, und hoffe, dass einige extreme Leistungsrahmen hier erreicht werden können, einschließlich einiger Schüler, die extreme Leistungen erfahren, weiterhin unseren Projekten Aufmerksamkeit schenken.
F: Welche Bedürfnisse und Anforderungen haben große Hersteller an Go-Ingenieure?
A:
Die aktuelle geschäftliche Seite der Rekrutierung von Go-Ingenieuren in Dachang wird mehr sein. Ein weiterer Teil betrifft den Inhalt der Infrastruktur, hauptsächlich für das Grundgerüst, und die allgemeine Optimierung ihrer Leistung. Die in diesem Teil enthaltene Sprache wird mehr Hardcore sein, und Sie können nicht nur Go verwenden, sondern auch mit dem Kern von Go, einschließlich der Sprachökologie und der zugrunde liegenden Logik, sehr vertraut sein und dann einige Leistungsoptimierungen verwandter Frameworks darin vornehmen. .
Kombiniert mit dem Status quo von Cloud Native stellt es derzeit einen Entwicklungsstand in der Branche dar. Viele Unternehmen befinden sich in der Phase der Cloud-Transformation, und dieser Prozess dauert eine gewisse Zeit und kann möglicherweise nicht migriert werden Platz auf einmal. In diesem Zustand sind tatsächlich viele Hintergrundlogiken und -operationen involviert, sodass die Anpassung und Weiterentwicklung der Architektur auch eine Karriererichtung für die spätere Entwicklung von Go-Ingenieuren sein kann. Je nach Entwicklungsstand verschiedener Unternehmen können sie, nachdem sich in Zukunft weitere Unternehmen entwickeln, die Nachfrage nach Infrastrukturbau erhöhen, ihre eigene Infrastruktur fördern und unterhalten, und somit wird auch die Nachfrage nach Go-Sprachingenieuren entsprechend steigen.
Mehr Informationen
- Offizielle Website-Adresse: CloudWeGo
- Projektadresse: https://github.com/cloudwego
- Hertz: https://github.com/cloudwego/hertz
- Hertz v0.2.0-Version : Hertz v0.2.0-Version | CloudWeGo
- Kitex: https://github.com/cloudwego/kitex
- Netpoll: https://github.com/cloudwego/netpoll
-
Thirftgo: https://github.com/cloudwego/thriftgo
-
Netpoll-http2: https://github.com/cloudwego/netpoll-http2
{{o.name}}
{{m.name}}