Prüfen. Anfang August 2017
Alles begann damit, dass ich ein Vorstellungsgespräch bei einem der Unternehmen hatte, bei dem der erste Schritt darin bestand, eine Testaufgabe zu schreiben. Die Aufgabe bestand darin, einen Code zu schreiben, der zwei Bilder gleicher Größe vergleicht, die Unterschiede zwischen ihnen findet, sie gruppiert und ein Rechteck um sie zeichnet. Da ist das erste Bild:-
Codacy – Codequalität. Es lohnt sich wirklich, darauf zu achten.
-
Travis CI ist ein CI-Tool (Continuous Integration), das ein Projekt erstellt, Tests durchführt und meldet, ob das Projekt erfolgreich erstellt wurde. Wenn beispielsweise einer der Tests aufgrund der neuen Änderungen nicht bestanden wurde, wird die Meldung angezeigt, dass die Projekterstellung nicht erfolgreich war, und die Meldung wird rot angezeigt.
-
Coveralls ist ein Tool, das anzeigt, wie viel Prozent Ihres Codes von Tests abgedeckt werden.
-
BetterCode Hub ist ein weiteres Tool zur Analyse der Codequalität. Eine sehr nützliche Sache, die Ihnen nicht nur sagt, was schlecht ist, sondern auch beschreibt, warum und einen Link zu einem Buch bereitstellt, in dem Sie mehr darüber erfahren können.
Bibliothekspfad. Juli 2018
Logo
Irgendwann habe ich festgestellt, dass mein Projekt oft von Menschen besucht wird, und das passiert jeden Tag. Ich war darüber erstaunt und noch mehr erstaunt über die Tatsache, dass sie etwa ein Jahr später eine AUSGABE erstellten, in der stand, dass ein bestimmter Grafikdesigner mir anbot, ein Logo für mein Projekt zu erstellen. Sie sagen, dass er dies gerne für OpenSource-Produkte macht und es absolut kostenlos machen wird. Wir begannen mit der Zusammenarbeit. Es wurden mehrere Optionen vorgeschlagen, aber letztendlich haben wir uns für diese entschieden:Erster Seitenfehler
Mir ist aufgefallen, dass ein bestimmter Entwickler aus China ein Problem für mich erstellt hat , in dem er beschrieb, dass er einen Fehler in der Arbeit der Bibliothek festgestellt hat, dass bei der Verwendung großer Bilder ein StackOverflowError angezeigt wird . Der Mann beschloss, einen Vorteil auszunutzen und entdeckte einen Fehler. Und ich habe es nicht einfach gefunden. und schrieb auch über sie. Dies ist ein neuer Schritt in der Entwicklung der Bibliothek. Außerdem hatte ich keine wirkliche Lösung. Irgendwann schlug einer der Tester aus Russland eine Lösung vor. Aber es war roh und nicht richtig zubereitet und ich habe es nicht akzeptiert. Und als es an der Zeit war, die Bibliothek in Maven Central zu veröffentlichen, musste etwas mit diesem Fehler behoben werden; ich wollte sie nicht zusammen mit ihr veröffentlichen. Darüber hinaus gab es noch einen weiteren Defekt, den ich nie behoben habe und der ebenfalls viele Unannehmlichkeiten mit sich brachte.Verwendung der Befehlszeile. Herbst 2018
Der nächste Entwicklungsschritt war die Kommunikation mit einem Schweden (Renato Athaydes), der die Bibliothek über die Kommandozeile nutzen wollte und hierfür einige Änderungen und Ergänzungen notwendig war. Auch hierüber war ich erstaunt und überrascht. Nachdem mir der Grafikdesigner geschrieben hatte, war meine Überraschung etwas geringer, aber immer noch sehr groß. Der Gedanke, dass jemand meinen Code wirklich brauchte, erfüllte mich mit unglaublichen Gefühlen. Er nahm die notwendigen Änderungen vor und bereitete den Code vor. Ich habe eine Codeüberprüfung durchgeführt, das heißt, ich habe mir die Änderungen angesehen, es gab Kommentare, die geändert wurden, und die Änderungen waren bereits in der Bibliothek. Ich habe diese Änderungen als Version v2.0 bezeichnet. Der nächste Schritt bestand darin, die Bibliothek zu Maven Central hinzuzufügen – einem zentralen Repository, von dem aus Sie sie für jedes Projekt herunterladen und als Abhängigkeit verwenden können. Zu diesem Zeitpunkt hatte ich keine Ahnung, wie ich das bewerkstelligen sollte, nicht einmal aus der Ferne, also sagte ich, ich sei beschäftigt und bat ihn, alle Schritte durchzuführen, die für die Einrichtung des Projekts notwendig waren. Dies reichte jedoch überhaupt nicht aus und das Interessanteste war, eine Verbindung mit Maven Central herzustellen. Das ist ein großer Aufwand, den ich beim ersten Mal nicht konnte, und erst am 15. April konnte ich das Projekt auf Maven Central veröffentlichen. Es war nicht einfach, aber wie andere gerne sagen: „Jeder, der seinen Java-Code veröffentlichen möchte, muss das durchmachen.“ Bevor ich die Bibliothek veröffentlichte, fand ich endlich heraus, was und wie ich mit den seit langem bestehenden Fehlern umgehen sollte, und veröffentlichte eine neue Version v2.0.2 , in der ich mich bei allen bedankte, die mir geholfen haben, und beschrieb, was und wie ich gemacht habe .Veröffentlichung in Maven Central. Frühling 2019
Um eine Bibliothek korrekt zu veröffentlichen, müssen Sie über ein gutes Verständnis der Versionierung und des korrekten Festlegens von Versionen verfügen. Ich bleibe bei diesem Schema:- XX.YY.BBBB , wobei XX ein Hauptversionsupdate ist, das Änderungen mit sich bringt, die mit dem vorherigen nicht kompatibel sind (z. B. die Änderung des zurückgegebenen Ergebnisses in Methoden);
- YY ist ein kleines Update – eine interne Änderung oder Erweiterung, die nichts an BBBB ändert – das sind Fehler, die behoben wurden.
- Version 2.0.2 bedeutet beispielsweise, dass die Hauptversion 2 ist, es keine kleineren Updates gab und es zwei Updates für Mängel gibt.
Kommunikation mit den Schweden. Mai 2019
Nachdem ich die Bibliothek veröffentlicht hatte, schickte mir ein anderer Schwede (Mika Kytöläinen) eine E-Mail und bat seinen Freund, Änderungen an meiner Bibliothek vorzunehmen. Er sagt, dass er das wirklich braucht und er wird sich sehr freuen, wenn wir es tun, und zwar schnell. Natürlich war ich nicht gegen die notwendigen Änderungen. Er schlug vor, eine Liniendickenkonfiguration hinzuzufügen, die ein Rechteck zeichnet. Für diejenigen, die schlecht sehen, wird dies beispielsweise eine nützliche Änderung sein. Habe den Code vorbereitet . Nachdem ich noch ein paar Änderungen vorgenommen hatte, habe ich Version v2.2.0 veröffentlichtKommunikation mit einem Deutschen. Mai 2019
Danach hat ein Deutscher ein Problem erstellt , in dem er sagt, dass er es zum Testen verwenden möchte, es aber an Funktionalität mangelt. Er machte viele Vorschläge, die sehr interessant waren. Er schlug vor, statt nur das resultierende Bild mit dem Ergebnis des Vergleichs zurückzugeben, einen Satz von Daten zurückzugeben: was verglichen wurde, das Ergebnis (falls erforderlich) und den Zustand, in dem es sich befand wird MATCH, MISMATCH, SIZE_MISMATCH sein. Habe sogar die Änderungen vorgenommen. Sie berücksichtigten jedoch überhaupt nicht den vorherigen Code und wurden in aller Eile erstellt. Ich lehnte sie ab und bot an, sie so auszuführen, wie ich es für richtig hielt. Trotzdem reagierte er mehr und ich beschloss, es selbst zu tun und eine neue Version zu veröffentlichen. Gleichzeitig schlug Mika Kytöläinen eine weitere interessante Funktionalität vor – das Hinzufügen von Bereichen, die nicht in den Vergleich einbezogen würden. Das ist ein echter Fall. Und das alles wurde in v3.0.0 veröffentlichtVerwendung in einem realen Projekt
Ende Mai schrieb mir ein Automatisierungstester aus Kiew, der sich für die Bibliothek interessierte und sie in einem echten Projekt einsetzen möchte, das Geld einbringt. Es war ein Durchbruch! Es irgendwo in einem Lieblingsprojekt zu verwenden ist eine Sache, aber es in einem echten Projekt zu verwenden, ist eine ganz andere Sache. Wir haben besprochen, was und wie es funktioniert. Der Antrag ist sehr interessant: In seinem Antrag werden Schecks gedruckt, und es musste überprüft werden, ob die Schecks nach einer bestimmten Vorlage erstellt werden und sich nicht ändern. Allerdings gab es das Problem, dass sich Abschnitte wie Datum und Uhrzeit immer änderten und ignoriert werden mussten. Wir hatten bereits Funktionen hinzugefügt, um einige Bereiche zu ignorieren, aber es stellte sich heraus, dass sie für den tatsächlichen Einsatz noch sehr ungeeignet waren, und wir haben trotzdem mehrere Wochen lang fruchtbar daran gearbeitet. Das Ergebnis war die Veröffentlichung der Version v3.1.1Eine Nische finden
Danach wurde mir klar, dass die eigentliche Nische für meine Bibliothek darin bestand, sie in Tests zu verwenden. Zu diesem Zweck habe ich beschlossen, eine Art Forum für Tester zu finden und ihnen darüber zu schreiben, um Feedback zu erhalten und den Bekanntheitsgrad zu steigern. Ich habe ein russischsprachiges Forum gefunden und dort einen Artikel veröffentlicht: Organisation des Testens von Bildern – Vergleich zweier ähnlicher Bilder . Darin erhielt ich echtes Feedback zum Code und zur Funktionalität, das ich anwendete und eine neue Version v3.2.0 und dann v.3.3.0 veröffentlichte .Jetzt
Die Bibliothek hat derzeit 60 Sterne auf Github und verfügt über 33 Forks. Ich finde das sehr cool, wenn man bedenkt, dass ich es in keiner Weise beworben habe, außer durch einen Artikel im Forum für Automatoren. Vielen Dank an alle, die bis zum Ende gelesen haben. Es stellte sich tatsächlich heraus, dass der Artikel viel länger war, als ich erwartet hatte. Ein Artikel darüber, wie man eine Bibliothek in Maven Central veröffentlicht. Wenn Sie etwas hinzuzufügen haben, schreiben Sie! Wenn Sie Vorschläge zur Verbesserung der Bibliothek haben, schreiben Sie! Ich werde alles lesen und mir die nötige Zeit nehmen. Wer den Artikel mochte und ihn nützlich fand – bewertet ihn und schreibt in die Kommentare. Abonnieren Sie außerdem mein Github-Konto romankh3. Siehe auch meine anderen Artikel:- Technische Fragen während eines Vorstellungsgesprächs
- Wie finde ich einen Job? Tipps zum Versenden von Lebensläufen
- Professionelles Burnout. Wie kann man widerstehen?
- Erfolgsgeschichte. 20 Stunden Programmieren pro Woche, Master-Abschluss und Privatleben
- Erstellen eines Systems zur Überwachung der Flugticketpreise: eine Schritt-für-Schritt-Anleitung [Teil 1]
- Leitfaden zum Erstellen eines Clients für die Skyscanner-API und zum Veröffentlichen in jCenter und Maven Central [Teil 1]
- Protokollierung: Was, wie, wo und womit?
- Debuggen in Intellij IDEA: eine Anleitung für Anfänger
GO TO FULL VERSION