Amateur in OpenSource - Lektionen in 3 Jahren gelernt

Vor langer Zeit, im Jahr 2014, habe ich ein kleines Dienstprogramm fĂŒr mich erstellt, um C # -Ansichten in TypeScript-Code zu ĂŒbertakten. Sie hat mir viel Zeit und Nerven gespart. Und so beschloss ich im September 2015, meine "Experimente am Knie" in eine verdauliche Form zu bringen und sie auf GitHub zu gießen. So begann meine amateurhafte Beteiligung an der Entwicklung von Open-Source-Software. Die Zeit verging. Und so erschien gestern im Repository mit diesem Projekt endlich ein dreihundertstes JubilĂ€um zum JubilĂ€um. Im Zusammenhang mit diesem bedeutenden Ereignis möchte ich meine amateurhaften Erfahrungen darĂŒber teilen, was Sie zu tun haben, wenn Sie plötzlich daran denken, etwas „zum Nutzen der Entwicklung der Branche“ zu entwickeln. Ich werde einige Zahlen prĂ€sentieren, einige coole Geschichten erzĂ€hlen und meine EindrĂŒcke davon teilen, wie es ist, ein Open-Source-Projekt ohne zu schreiben und zu unterstĂŒtzen MĂŒtter, VĂ€ter und Kredite UnternehmensunterstĂŒtzung, Bezahlung und ... und Freizeit. Komm unter die Katze, nimm Platz, wir fangen an.


"Tu was gut ist"


ZunĂ€chst gibt es auf GitHub ĂŒber 90 Millionen Repositories . Einige von ihnen sind bekannt, andere nicht sehr, andere sind im Allgemeinen privat. Angesichts der großen Beliebtheit wurde Github von SchĂŒlern fĂŒr Aufgaben, Lehrern fĂŒr Vorlesungen, Autoren von BĂŒchern fĂŒr Tutorials und sogar von Gesetzgebungsbegeisterten verwendet . Stellen Sie sich vor, was fĂŒr ein verdammter Abgrund an Code und Projekten das ist! Ich habe jedoch eine Flasche Cognac in die Tasche gesteckt. Wenn sich ein Journalist gerade an Sie bindet und Sie auffordert, berĂŒhmte Repositories zu benennen, rufen Sie sofort an ... na ja, irgendwo zwischen 15 und 30. Was bedeutet das? Dies bedeutet, dass GitHub ein riesiges Universum von Softwareprodukten ist, von denen die meisten sicher nur ihren Autoren bekannt sind. Und vielleicht 5-10 an ihre Freunde.


Es ist ziemlich schwierig, in dieser Menge mehr oder weniger aufzufallen, sage ich Ihnen.

Selbst wenn Sie die Daten von Bankkarten aller Benutzer der Welt stehlen und auf GitHub veröffentlichen, bin ich mir sicher, dass Sie werden verboten und strafrechtlich verfolgt niemand wird es bemerken . Warum sage ich so offensichtliche Dinge, fragst du? Und hier ... verdammt, sie sind nicht offensichtlich! Speziell fĂŒr den Autor dieser Zeilen :) Besonders vor 3 Jahren. Dann dachte ich naiv, dass es ausreicht, etwas wirklich NĂŒtzliches zu tun, Tags anzuzeigen, README zu schreiben, und die Leute werden alles selbst finden, alles selbst herunterladen. Nun, im Ernst, da eine Art linkes Pad , das im Wesentlichen aus 47 Codezeilen besteht, tausend Sterne erzielt hat, ist mein Gizmo etwas, das die Entwicklung objektiv vereinfacht - nun, 300 werden getippt, oder?


Mmm ... nein. Dies funktioniert leider nicht. Das linke Pad wurde 2014 erstellt und war bis zu den berĂŒhmten Ereignissen des Jahres 2016 niemandem bekannt . Wenn Sie sich die grafische Darstellung der Verteilung der Sterne ansehen, können wir den Anstieg bei fast 90 Grad gerade zu dieser sehr unglĂŒcklichen Zeit sehen. Es gibt offensichtlich mehrere traurige Schlussfolgerungen aus dieser wunderbaren Geschichte:


Ohne richtiges Marketing bleibt Ihre beste Idee der Welt unbemerkt.
Schwarze PR ist auch PR.
Nicht immer eine verrĂŒckte Anzahl von Sternen deutet darauf hin, dass das Projekt gut ist.

Aber nicht alles ist so schlecht. Wenn Sie bereits bereit sind, darĂŒber depressiv zu werden, ist mein Rat, Ihre TaschentĂŒcher und das schluchzende Kissen beiseite zu legen.


Mach lieber etwas NĂŒtzliches. Zuallererst - nĂŒtzlich fĂŒr sich.

SchĂ€tzen Sie, ohne welches Softwareprodukt Ihr Leben keine Freude ist. Hier lesen Sie persönlich diesen Beitrag. Welche Anwendung, Framework, Service Hölle vermisst du Bei Ihrer Arbeit oder in Ihrem tĂ€glichen Leben. Hast du es herausgefunden? Großartig. Hammer in Google und wenn von der Ausgabe auf Ihre Anfrage es mit Melancholie und verschwommen blĂ€st - fahren Sie fort! Starten Sie ein Repository, öffnen Sie eine IDE und schreiben Sie. Schreiben Sie, wovon Sie getrĂ€umt haben, sammeln Sie und legen Sie aus. Die Antwort ist einfach: Wenn Ihr Projekt speziell fĂŒr Sie von Nutzen ist, gibt es auf der ganzen Welt höchstwahrscheinlich tausend oder zwei Personen, die ebenfalls helfen und Ihnen dankbar sind. Ich bin sicher, dass Sie zum ersten Mal mehr als genug von einem solchen Publikum haben werden. Dann ist es an der kleinen Sache - all diesen wunderbaren Menschen ihre Errungenschaften zu vermitteln und nicht auf der Straße zu planschen.


PR ohne Hose


Ich habe gehört, dass einige Unternehmen diese Praxis haben. Wenn der Kandidat im Interview sein OpenSource-Projekt erwĂ€hnt, beginnt er im nĂ€chsten Absatz, ihn zum Thema „Wie viele Sterne?“, „Wie viele Downloads?“, „Wie viele Live-Projekte werden verwendet?“ Zu kreuzigen. Also erklĂ€re ich Ihnen gegenĂŒber verantwortlich: Sie mĂŒssen solche Fragesteller mit einer schnellen und entschlossenen Bewegung Ihrer Zunge schicken, aufstehen und das Interview verlassen, den Namen dieser Firma fĂŒr immer vergessen und Ihren Freunden davon erzĂ€hlen. Wenn der Manager (oder wer auch immer Sie dort interviewt) eine solche Frage stellt, dann hatte er mit nahezu absoluter Wahrscheinlichkeit nie ein Problem mit der Entwicklung freier Software, er hat noch nie von Marketing gehört und legt insgesamt wenig Wert auf die GerĂ€usche, die er macht . Arbeiten damit funktioniert nicht.


Es ist traurig, aber anscheinend eine Tatsache: Nach meinen Beobachtungen stehen Unternehmen hinter populĂ€ren und großen Projekten irgendwie.

Zum Beispiel in Form einer direkten Entwicklungsfinanzierung: Wenn das Projekt wĂ€hrend der Arbeitszeit durchgefĂŒhrt wird, wird es de facto bezahlt. Ja, ja, auch wenn Sie einen "Freitag fĂŒr Ihre Projekte" haben - was, denken Sie, ist er nicht im Budget enthalten? Oder in Form von InformationsunterstĂŒtzung (Artikel, Konferenzen, Videos). Nun, oder in Form der UnterstĂŒtzung durch "Mitarbeiter", a la "Vasya, helfen Sie Oleg, ein Feature in seinem Projekt zu machen." Ganz zu schweigen von den sehr offenen FĂ€llen der Finanzierung von Open Source-Entwicklungen wie EntityFramework oder .NET Core, wenn ganze Abteilungen an solchen Projekten beteiligt sind. Oder auf einmal (hier mögen die Verschwörungstheoretiker die Frage stellen, "wer davon profitiert", aber wir werden darauf zurĂŒckkommen).


Das Unternehmen stellte mir Ressourcen zur VerfĂŒgung, mit Ausnahme der kostenlosen PrĂŒfung meiner Entwicklungen an lebenden Menschen. Und nein, ich beschwere mich nicht - ich selbst habe darauf bestanden, damit alle Rechte und die Kontrolle ĂŒber die Entwicklung bei mir bleiben. Und fĂŒr das Unternehmen, mit dem mich die Vertragsbeziehung seit 4 Jahren verbindet, ist die IT weniger ein KerngeschĂ€ft. Es ist unpraktisch, Leute irgendwie abzulenken. Im Allgemeinen lautete das Fazit wie folgt: Das Unternehmen geht verstĂ€ndnisvoll vor, unterstĂŒtzt moralisch und stellt sein System zur ÜberprĂŒfung und AusfĂŒhrung des Projekts fĂŒr Live-Benutzer bereit. Im Gegenzug erhĂ€lt es ein vorrangiges Recht auf Support und Fehlerbehebung sowie auf Konsultationen, Implementierung und Schulung des Personals. Bozhechki, ich sage die Worte eines großen Integrators, obwohl es in meinem Projekt nur ungefĂ€hr fĂŒnftausend Zeilen gibt (ohne Tests).


Lyrischer Exkurs ĂŒber die Hilfe der Unternehmen

Oh, da war so ein interessanter Fall. Ich habe das 2015 Studio, 2017 Community Edition, gekauft, aber zusĂ€tzlich verwende ich ReSharper von JetBrains. Und ich habe es auch gekauft. Unter anderem habe ich auch ein Konto bei Azure, wo es fĂŒr ein nominelles Geld eine einfache Website mit Informationen ĂŒber mich, Links zu Projekten und Dokumentation gibt. Da ist es also. JetBrains bietet ein kostenloses Lizenzprogramm fĂŒr Open Source-Entwickler. Nun, ich denke - gib es, ich werde es reparieren Ein hĂŒbscher Penny, aber ich werde sparen. Ich werde ein Geschenk ReSharper haben. Warum nicht? Ich schrieb dann einen Brief an die gewĂŒnschte Adresse. Wie, so und so. Ich mache so und so ein Projekt, eine Art Open Source. Geben Sie, sagen sie, eine Lizenz. Die Antwort lautet:


Wir haben Ihr Open Source-Projekt ĂŒberprĂŒft, um festzustellen, ob es alle Anforderungen des Open Source-Lizenzprogramms von JetBrains erfĂŒllt.
Wir mĂŒssen Sie darĂŒber informieren, dass wir gemĂ€ĂŸ den Regeln unseres Programms keine kostenlosen Lizenzen zu allgemeinen Bedingungen ausstellen können, wenn das Projekt kostenpflichtige Dienstleistungen (Schulungen, Beratung usw.) erbringt.
Wie ich auf der Website Ihres Projekts sehen kann, bietet es einige kommerzielle Dienste ( http://www.reinforced-sc.com/Info/Contact ), daher kann ich leider keine kostenlosen Open Source-Lizenzen fĂŒr Sie bereitstellen Projekt.

Kurz gesagt, die Details weglassen. Im Wesentlichen gefiel ihnen das auf meiner Website (die von 3.5 anonymus besucht wird) nicht. Ich schrieb, dass ich bereit war, fĂŒr jedes meiner Projekte (von zwei, hehe) kommerzielle Beratung und individuelle kommerzielle UnterstĂŒtzung zu leisten. Weder die Kosten fĂŒr Dienstleistungen noch bestimmte Bedingungen - einfach heißt es: "Wenn Sie plötzlich mĂŒssen - schreiben Sie, wir sind uns einig." Wie Sie wissen, sind natĂŒrlich keine VorschlĂ€ge eingegangen. Was ich ein Mitarbeiter von JetBrains bin und versucht habe in einer kurzen Korrespondenz zu erklĂ€ren. Letztendlich bekam ich diese Antwort:


Wenn Ihr Projekt keine kommerziellen Dienstleistungen erbringt, entfernen Sie bitte den kommerziellen Bereich von der Website und lassen Sie es mich wissen, sobald Sie dies tun. Ich werde dann eine Open Source-Lizenz fĂŒr Sie ausstellen.

"Nun, egal", dachte ich, "es bedeutet, dass ich Informationen ĂŒber die Offenheit fĂŒr kommerzielle Angebote von der Website entfernen muss, um 200 US-Dollar (die Kosten fĂŒr eine Lizenz fĂŒr ReSharper) pro Jahr zu erhalten ?! Nein Leute, dies ist ein mittelmĂ€ĂŸiges Angebot. Danke." , nicht nötig". Und er setzte den Dialog nicht fort.


Es gibt natĂŒrlich viele Fragen: Erstens: Wie viel himmlisches Mana sollte wĂ€hrend der Entwicklung verwendet werden, um nicht fett zu werden? Wenn mein Projekt in dem Unternehmen verwendet wird, in dem ich arbeite, ich es aber in meiner Freizeit entwickle, wird dies als Bereitstellung kommerzieller Dienstleistungen angesehen? Zweitens: Wenn mein Projekt nicht im GeschĂ€ftsleben verwendet wird - ist es nutzlos? Ist JetBrains bereit, wertlose Projekte zu finanzieren? und wenn ich mein OpenSource-Projekt im Lebenslauf anzeige und dies meine Chancen erhöht, eingestellt zu werden - ist dies auch eine kommerzielle Nutzung? Kann es also auch nicht im Lebenslauf angegeben werden? Es kommt aber auch vor, dass Unternehmen den Mitwirkenden informativ unterstĂŒtzen - ist das auch Geld nur in einer anderen Form? MĂŒssen klarstellen! Ich verstehe ĂŒberhaupt nichts.


Wie Sie wissen, stand ich im Allgemeinen allein vor der Aufgabe der Werbung und PR. Die erste Idee, die mir in den Sinn kam, war zu schreiben, wie man alles benutzt. Hier habe ich beschlossen, nĂŒtzlich mit nĂŒtzlich zu betrĂŒgen und zu kombinieren - ich habe den ersten Artikel ĂŒber RT in einem Geek-Magazin geschrieben (zu dem UFO eingeladen wurde). Die Idee war nicht so sehr in der PR "Ich habe", sondern darin, wie man zumindest eine russischsprachige Dokumentation auf dem Hub platziert. Meine Kollegen sind alle gleich aus Russland, deshalb brauchten sie mindestens ein kleines Handbuch, wollten es aber nicht jedem in der Korrespondenz oder per Stimme erklĂ€ren. So entstanden die ersten drei Artikel, die vom Publikum eher kalt aufgenommen wurden. Das ist verstĂ€ndlich - es ist unwahrscheinlich, dass sie jemandem aus der Habr-Community nĂŒtzlich waren, also mache ich mir darĂŒber keine Sorgen.


Informationen zur Dokumentation


Die Idee, dass es schön wĂ€re, den Leuten Wissen ĂŒber die Verwendung meines Frameworks zu vermitteln, gab mir keine Ruhe, bis ich es schließlich in dieser Form formulierte:


Hier ist die Sache mit der Dokumentation: Sie ist ohne Projektcode nutzlos, und Projektcode ist ohne sie nutzlos.

Wunderbare Idee, aber ich wusste katastrophal wenig ĂŒber das Schreiben von Dokumentation. Neben Mechikov und Witzen ĂŒber undokumentierten Code war der Grundgedanke, dass es notwendig war, Verben zur Beschreibung von Methoden zu verwenden, und Konstruktoren mĂŒssen nicht dokumentiert werden. In dieser Hinsicht war mein Wissen vielleicht erschöpft. Ich erstellte die erste Version von README , fĂŒllte die Projektbeschreibung aus und begann nachzudenken.


Wie geht ein Amateur mit dem Schreiben von Dokumentation um? Was kann sich ein Programmierer durch Sauerstoff nur noch vorstellen? Kaum gesagt als getan. Mein Ziel war es, XMLDOC zu wĂŒrgen (es ist wie Javadoc, nur in C #), damit die Assembly in Release nicht "ĂŒber fehlende Kommentare fĂŒr öffentlich sichtbare Mitglieder" informiert.


- C# , , "", . , internal private C#. : 150 ( — 250), 700 260 . - . , .


20 , - , . , , ? , . . , : — . : MSDN! .


"Gets or sets whether..." — - !

, .


30 , - " ". , , , . , , internal ( package Java). , ! . , .


, , .


, ! doxygen .

, reference-, doxygen-, 150 , enum-, . — ! XMLDOC- , "" . , .


XMLDOC-, , . Autofac, ReadTheDocs.ord. reStructuredText. , . ? . ? ? , ? ? .


chebureque, . , . , , . , . , 
 , , ! , , , . . , .


, — . .

: , github wiki markdown- , . , , , , GitHub. . .


image


. -, , . , - . .




. 9 NuGet, , . , 2016 -. ( ?) !


?

"european it conferences 2016" . C# TypeScript. web, , , , IoT. , . , ! , , , , , " ". " ", " ", " ". , ! ", -, !". .


, , DeveloperDays 2016 . — ? , . , , — , 10 . — , . , , . , . . , , , .


— — — .
— , ! ! —
 . , — , . .

. NuGet , 10 . , . , , issues! : . , . , faq, , , , .


StackOverflow! , !

C#- TypeScript, . — ! README , Support policy. StackOverflow , . FAQ. RSS .



, RT StackOverflow — , . ! stargazers Barclays Microsoft. — , , , , , 
 ! , Insights , JIRA - .


StackOverflow , , . . issues , - . . - . , - . , , ( , — ) , .


TDD — , .

— - , - . ,


image


, -. ( ), — 10, 99% - .


-, , C# TypeScript . , !


RT, dnx, .NET Standard, 3 .NET Core, 20 TypeScript , .

, - .NET Core :)



, , . , ( !). , , 
 - ? , : , , , . ( .NET Core, ). ? , .


3 . ? ? ! . , . . zip- — GitHub ! , , , OSS- - .


opensource- ? .

?
OSS : (opensource ) ( ). Microsoft OSS — .NET Core "Microsoft loves Linux" MS-, — Azure . — ! , .


opensource. -, Percona mysql, , " ". , , mysql , . mysql .


, OSS- , , . — : OSS- , . , .


OSS, , — , , , Apache Harmony, Sun Microsystems JRE ( , -).


OSS , . - — , , " " — . . — , , " — , " .. .


OSS — , . — - . , user group, community, , . — , . - . "member of something user group, contributor".


- OSS- , , , . .


, — . , , , . , — .

, , community. — , , , , — , , .


, , , — , , linux. "" Linux. , — . . - , " ", , opensource . . , . , .


. - , - " opensource", — .


, .

opensource, " " opensource- — , .


: OSS- OSS- — . , . .

, , , , " " " opensource". , OSS, . . , , . . , . , — . ? ...


, . :


  • 5000 , 225 , 1428 , 380 ;
  • 43 ;
  • 84 issues ;
  • 10 ;
  • 107 ;
  • 28 ;
  • 1100 ;
  • ~50 000 - NuGet ( 40 );

GitHub, NuGet.


!

Source: https://habr.com/ru/post/de435878/


All Articles