Ein Open-Source-Projekt veröffentlichen, ohne sich zu schämen [closed]


51

Ich arbeite schon eine ganze Weile alleine an einem ziemlich großen Open-Source-Projekt und es nähert sich dem Punkt, an dem ich es veröffentlichen möchte. Ich bin jedoch Autodidakt und kenne niemanden, der mein Projekt angemessen bewerten könnte.

Vor ein paar Jahren hatte ich ein kleines Stück Code veröffentlicht, das auf dem Forum, auf dem ich es veröffentlichte, (in einem kritischen Sinne) ziemlich auseinandergerissen wurde. Obwohl der Code funktionierte, war die Kritik korrekt, aber brutal. Es hat mich dazu veranlasst, nach Best Practices für alles zu suchen, und am Ende habe ich das Gefühl, dass ich dadurch ein viel besserer Entwickler geworden bin. Ich habe so oft versucht, alles in meinem Projekt zu perfektionieren, dass ich die Zählung verloren habe.

Ich glaube an mein Projekt und denke, dass es das Potenzial hat, vielen Menschen zu helfen, und ich habe das Gefühl, dass ich auf interessante Weise ein paar coole Dinge damit gemacht habe. Da ich Autodidakt bin, frage ich mich immer noch, welche Lücken in meiner Autodidaktik bestehen. Die Art und Weise, wie mein Code beim letzten Mal auseinandergerissen wurde, möchte ich nicht wiederholen. Ich denke, meine beiden größten Befürchtungen, mein Projekt herauszubringen, in das ich unzählige Stunden investiert habe, sind absolut peinlich, weil ich einige offensichtlich offensichtliche Dinge aufgrund meiner Selbsterziehung oder, schlimmer noch, wegen des Geräusches von Grillen verpasst habe.

Gibt es jemanden, der sich in einer ähnlichen Situation befunden hat? Ich habe keine Angst vor konstruktiver Kritik, solange es konstruktiv ist und nicht nur ein Scherz darüber, wie ich es vermasselt habe. Ich weiß, dass es auf StackExchange eine Codeüberprüfungssite gibt, die jedoch nicht für große Projekte eingerichtet ist, und ich hatte nicht das Gefühl, dass die Community dort noch groß genug ist, um gutes Feedback zu erhalten, wenn ich Teile meines Projekts stückweise posten würde (I mit einer Datei ausprobiert). Was kann ich tun, um meinem Projekt zumindest ein gewisses Maß an Erfolg zu verleihen, ohne sich dabei zu schämen oder zu zerstören?


17
Es gibt einen Unterschied zwischen der Veröffentlichung von Code in einem Forum und der Veröffentlichung eines Projekts mit der Quelle, die denjenigen zur Verfügung steht, die sich dafür interessieren. Selbst bei großen Open Source-Projekten mit vielen Benutzern und potenziellen Entwicklern, die sich den Code ansehen, scheinen Reaktionen vom Typ "Ich denke, Ihr Code hat Fehler X und Y" selten zu sein.

17
Aus der Beschreibung geht hervor, dass die Kritik, die Sie vor ein paar Jahren hatten, Sie zu einem besseren Programmierer machte. Warum hast du dieses Mal so viel Angst vor Kritik? Haben Sie das Gefühl, dass Sie kein besserer Programmierer mehr werden müssen? Wenn du besser werden willst, musst du dein Ego beiseite legen und ein paar Schläge einstecken.
Paul Tomblin

3
Das Coole an Open Sourcing ist, dass man die Leute bei Beschwerden immer bitten kann, die Probleme für Sie zu beheben.
blueberryfields

4
Wenn Sie bestimmte Zweifel haben, rufen Sie diese unter codereview.stackexchange.com auf .
pdr

12
Übrigens, wenn Peinlichkeit ein Problem wäre, hätten wir niemals Projekte wie Wordpress oder Joomla ... Mehr als die Hälfte der Blogs auf WP, niemand scheint sich um die Qualität der Codebasis zu kümmern ...
yannis 14.11.11

Antworten:


35

Sie sollten sich keine Sorgen machen, es sei denn, das Projekt richtet sich an Entwickler (z. B. ein Entwicklungsframework, in dem Sie möchten, dass sie es kritisieren, wenn Sie dadurch noch mehr lernen.). Aber selbst dann gibt es viele Open-Source-Projekte, die sich an Entwickler richten, die Mist sind, aber die Leute lieben sie, weil sie auf den Punkt kommen (denken Sie an Codeigniter, der sehr schlecht aufgebaut ist und dennoch das beliebteste PHP-Framework ist).

Wenn es sich um eine Anwendung für normale Menschen handelt, kümmern sie sich wahrscheinlich nur um die Ergebnisse.


3
+1 Und kritische Entwickler können Ihnen tatsächlich einen Patch senden! Es ist immer respektabel, dein Wissen und deine Bemühungen für die Welt zu öffnen :)
yati sagade 13.11.11

4
Wirklich jede Kritik ist wertvolles Feedback. Auch wenn es hart ist (Sie haben die Möglichkeit, es nur als Feedback anzusehen) und das ist ein Mehrwert, der keinen Grund zur Einschüchterung darstellt. :-) Sei stolz auf deine Bemühungen! Wenn es das Beste ist, was Sie tun können, mit Ihrer Ausbildung oder Ihrem Verständnis, das ist GROSSARTIG! Jedes nachfolgende Feedback dient nur dazu, ein besserer Entwickler zu werden. Ehrlich gesagt, wird der Code von gestern immer scheiße sein, solange Sie sich verbessern und wachsen.
Robert French

+1 - Danke. Das Projekt ist für Entwickler, aber Sie machen einen guten Punkt über die Ergebnisse.
Hoffnungsvoller

1
Jeder Code ist zum Kotzen, jede Kritik als wertvolle Lernerfahrung. Wenn jemand Sie auf nicht konstruktive Weise auseinander reißt, ignorieren Sie sie als die Idioten, die sie mit Sicherheit sind
David Hayes

25

Ihr Code hat Probleme. Meiner tut das auch. Beantwortet noch jemand diese Frage? Ihr Code hat auch Probleme.

Wenn es nicht beispielsweise 10 Zeilen oder weniger sind, ist es fehlerhaft. Vielleicht tragisch.

Entwickler zu sein bedeutet, sich ständig an die Grenzen Ihrer Fähigkeiten und Ihres Verständnisses zu stoßen. Das mag für ALLE Entwickler nicht so sein, aber für mich und für die, die ich kenne, arbeiten wir fast immer am Rande unserer Kompetenz. Und Sie werden immer und immer wieder damit konfrontiert, dann haben Sie ein schönes Wochenende, dann kommen Sie Montag wieder und machen es immer und immer wieder.

Nachdem ich 15 Jahre in diesem Leben gearbeitet habe, habe ich mich auf folgende Tatsache festgelegt: Sie sind nicht Ihr Code . Sie schreiben Code. Urteil des Codes ist nicht Urteil von Ihnen . Ihr Code hat Probleme, einige kennen Sie, andere nicht. Es hilft Ihnen , wenn Sie darauf aufmerksam gemacht werden , es sei denn, Sie können nichts dagegen tun, als sich schlecht zu fühlen. Sich schlecht zu fühlen, verbessert Ihren Code nicht, sondern lässt Sie sich nur schlecht fühlen.

Sie schreiben Ihren Code und Sie schreiben ihn so gut, wie Sie wissen, wie. Vielleicht wissen Sie morgen mehr als heute, aber heute haben Sie es so gut gemacht, wie Sie es gewusst haben. Mein Rat ist: Schreiben Sie heute den Code von heute und morgen den Code von morgen. Dann wünsche ich Ihnen ein schönes Wochenende und komme am Montag wieder, um den Code für Montag zu schreiben.


24

Als Faustregel gilt, dass Open-Source-Programme aus drei Personengruppen bestehen, die sich den Quellcode ansehen.

  1. Personen, die erwägen, den Code zu ändern, damit das Programm für sie etwas anders funktioniert, auf eine andere Plattform portiert oder als Ausgangspunkt für ihre eigenen Programme dient. Wenn ihnen der Code nicht gefällt, wird er normalerweise nicht verwendet, und Sie werden nie etwas von ihnen hören.
  2. Studenten, die versuchen zu lernen, wie man in der von Ihnen verwendeten Sprache codiert. Diese werden Sie so gut wie nie kontaktieren, aber gelegentlich erhalten Sie eine E-Mail mit der Frage, warum Sie etwas auf die eine oder andere Weise getan haben. (Um fair zu sein, ich habe seit vielen Jahren keine dieser E-Mails mehr erhalten. Ich denke, dass Websites wie StackExchange diese Interaktion ersetzt haben könnten.)
  3. Sicherheitsforscher wie die von OpenBSD versuchen zu entscheiden, ob Ihr Tool sicher genug ist, um in ihre Distribution aufgenommen zu werden. Ist dies nicht der Fall, möchten sie Ihr Programm jedoch trotzdem einbeziehen, werden sie mit Ihnen in Kontakt treten, um einen Weg zu finden, wie Sie es sichern können. (Und wenn Ihr Programm populär wird, kann ich mir vorstellen, dass es wahrscheinlich auch Forscher mit schwarzen Hüten anzieht, die Sie nicht kontaktieren, egal was sie finden.)

In der realen Welt werden die Leute Ihren Quellcode aus keinem anderen Grund als diesen wirklich lesen, weil sie es einfach nicht müssen. Sie haben zuvor nur eine solche Menge an Feedback erhalten, weil Sie den Code in einem Forum gepostet haben, was impliziert, dass Sie Feedback zum Code erhalten möchten.

Ich glaube nicht, dass Sie sich wirklich Sorgen über einen Strom von Missbrauch machen müssen. Die einzigen Personen, die sich wahrscheinlich überhaupt mit Ihnen in Verbindung setzen, sind Personen, die Funktionen hinzufügen oder Fehler beheben möchten, die bereits die Codebasis durchsucht haben und nicht schreiend nach den Hügeln gelaufen sind. ;)


5

Ich verstehe die Psychologie hinter dieser Frage wirklich nicht ... eine bessere Frage, die Sie sich stellen sollten, wäre: "Was muss ich durch die Veröffentlichung dieser Software verlieren?"

Müssen Sie etwas verlieren, auch wenn Ihr Projekt voller Code-Gerüche ist?

Selbst wenn der Code schrecklich ist und sich jemand die Zeit nimmt, Ihnen eine Flammen-Mail zu schreiben, raten Sie mal, er hat Ihre Software wahrscheinlich so oft verwendet, dass er einige Änderungen daran vornehmen und sie verbessern wollte.

Darüber solltest du dich freuen! Akzeptiere die Kritik und verbessere deinen Code. Frag den wütenden Kerl, der sich die Zeit genommen hat, dir zu schreiben. Er kümmert sich!

Nach einer Weile hören die Flammenmails auf, die Leute verwenden Ihre Software weiter, Sie haben aus Ihren Fehlern gelernt und die Lücken, von denen Sie nicht wussten, dass sie in Ihrer Ausbildung bestanden, werden nicht mehr da sein.

Ich würde viel lieber mit jemandem zusammenarbeiten, der bereit ist, etwas zu tun, seine Fehler zuzugeben, sie zu beheben und weiterzumachen, als mit jemandem, der nicht bereit ist, etwas zu tun.

Wenn Sie es wirklich nicht mögen, die Software unter Ihrem Namen freizugeben, geben Sie sie unter einem Spitznamen frei. Wenn es erfolgreich ist, fordere es als dein eigenes an, wenn nicht, ändere deinen Spitznamen :)


+1 für den letzten Satz, Leute in der Musikindustrie tun dies die ganze Zeit mit ihren "experimentellen" Alben :)
MattDavey

4

Ich bin fest davon überzeugt, dass nicht nur Open Source, sondern auch die Entwicklung offen ist und die Menschen die vollständige Entwicklung Ihres Codes verfolgen können. Vom haarsträubenden Prototyp bis zum Arbeitscode ... Sie sollten sich niemals schämen. Sie setzen sich da raus - das braucht Mut. Besitze es und sei stolz darauf. Niemand ist perfekt.


3

Je länger ich in diesem Spiel bin, desto mehr ist mir klar geworden, dass das Kundenerlebnis das einzige Maß für die Codequalität ist. Wenn Sie eine Funktion schreiben, ist dies der Aufrufer dieser Funktion. Eine Bibliothek? Die Entwickler, die für diese Bibliothek schreiben. Eine grundlegende Struktur? Die Anwender davon. Ein Standalone? Die Person oder der Dämon, die bzw. der das Programm startet.

Netter Code hat seine Tugend, versteh mich nicht falsch - aber wenn es gesagt und getan ist, ist die einzige Maßnahme "Funktioniert es?" Ich habe viel sauberen Code gesehen, der ein Buggy-Durcheinander ist, und viel satanisch gestörter Code, der absolut zuverlässig ist (plus gut sauber und schlecht hässlich auch :))

Also, wenn die Kritiker sagen, Ihr Code ist hässlich, wen interessiert das? Wenn sie sagen, dass es nicht funktioniert - das ist die nützliche Kritik (Daten testen!), Die Sie anstreben, um Ihr Programm zu verbessern. Bleiben Sie dran, meiden Sie die Trolle im Internet und haben Sie Spaß an Ihrem Projekt!


2

Ich stimme den Aussagen anderer Poster voll und ganz zu: Auch wenn Ihr Code beschissen und nicht von hoher Qualität ist, ist es den meisten Menschen einfach egal. Jeder, der sich schon einmal mit OpenSource-Code beschäftigt hat, hat sich vielleicht gedacht, dass WTF hier passiert ist.

Aber ich kenne niemanden da draußen mit der Motivation , die Codebasis eines Projekts zu kritisieren, nur um zu sagen "Alter, dein Code sieht schrecklich aus!". Wir waren alle dort und wir alle wissen, dass jeder Code, den wir gerade schreiben, in nur wenigen Augenblicken für uns selbst ziemlich lahm erscheinen wird (meiner wird es definitiv).

Machen Sie sich also keine Sorgen - die Leute haben in ihrer Freizeit einfach viel besseres zu tun, als den Code von OpenSource-Projekten nicht zu lesen.


2

Echter Code ist immer verrottet und verschmutzt, zusammengeschlagen und annähernd ad hoc gepflegt. Die Bereinigung beschränkt sich auf die Dokumentation von Sonderfällen und Sonderkonstanten. Es besteht eine Impedanzfehlanpassung zwischen sauberem Code und der realen Welt.

Mir ist auch aufgefallen, dass jeder kompetente Ingenieur den Code eines anderen in Stücke reißen kann.

Wenn (1) die Tests bestanden werden und der Zweck erfüllt wird, ohne dass dies fehlschlägt, UND (2) Sie kleinere Änderungen mit nur geringfügigem Umschreiben vornehmen können, ist dies ein guter Code.


2

Einige weise Worte von Reid Hoffman, Mitbegründer von LinkedIn:

"Wenn es Ihnen bei Ihrer ersten Produktveröffentlichung nicht peinlich ist, haben Sie zu spät veröffentlicht."

"Sich mit Mitgliedern zu beschäftigen und zu sehen, was wirklich wichtig ist, ist ein absoluter Schlüssel ... Sie erhalten also so schnell wie möglich das Produkt mit der niedrigsten Lebensfähigkeit."

Ich denke, dies gilt insbesondere für Open-Source-Projekte, bei denen eine großartige Idee mit einem vielversprechenden Start die Menschen zum Mitmachen und Mitmachen ermutigt. Etwas, das so ausgefeilt ist, dass Sie Ihre Sonnenbrille aufsetzen, kann solche Gefühle nicht hervorrufen. Das Wichtigste bei einer frühzeitigen Veröffentlichung ist jedoch, alle Ihre Vorurteile darüber zu zerstören, was getan werden sollte, und sich in die richtige Richtung zu bewegen.


1

Wer bist du? Sind Sie jemand, den die Leute als Gott-Programmierer kennen und der sich Sorgen macht, dass Ihr Ruf sinkt? Sind Sie derjenige, der sich für den Job bewerben wird und befürchtet, dass der Arbeitgeber diese Kritik liest und denkt, dass Sie ein schlechter Programmierer sind? Was ich frage ist, warum haben Sie Angst vor Kritik, wie Sie Mist bauen. Sie können entscheiden, welche Kommentare echt sind und welche nicht. Nehmen Sie die guten als Fehler und beheben Sie sie in der nächsten Version. Ich habe nur das Gefühl, dass Sie sich über die Kritik unnötig Sorgen machen. Sie helfen der Open Source Community, das ist selbst ein sehr guter Grund. Bitte macht weiter so.


2
Was ist ein Gott-Programmierer?
Hoffnungsvoller

1
@Hoffnungsvoll. Es gibt einen Professor an der IIT Bombay University. Es geht das Gerücht, dass dieser Typ ein Programm schreibt, kompiliert und ausführt. Es gibt keine Phase, die als Neukompilieren oder Debuggen bezeichnet wird. Das ist Gott Programmierer.
Manoj R

Okay, ich bin mir ziemlich sicher, dass das nicht ich bin. Ich bin besessen vom Debuggen. Es ist ein cooles Gefühl, wenn etwas nur beim ersten Mal funktioniert. Selbst dann teste ich es noch und schreibe Tests dafür.
Hoffnungsvoller

1

Wenn Sie wirklich besorgt sind, verwenden Sie einfach ein Online-Pseudonym, wenn Sie die Software freigeben. Dann hat dies keine Auswirkung auf Ihren realen Ruf.

Wenn Sie öffentliche Kritik erhalten, führt dies zu Verbesserungen im Code und hilft Ihnen, sich als Entwickler weiterzuentwickeln. Das ist eine gute Sache.

Ich stelle fest, dass für meine Projekte die meisten konstruktiven Kritiken / Vorschläge eher privat als öffentlich gesendet werden, und selbst dann werden Sie wahrscheinlich keine Flut von Kommentaren erhalten. Deshalb empfehle ich, einfach drauf loszulegen!

Viel Glück.


1

Es ist nichts Falsches daran, sich selbst zu lernen. Man kann nicht isoliert sein und Peer Code Reviews können dabei helfen.

Sie müssen sich auch auf das konzentrieren, was Sie tun. Warum interessiert es Sie, wenn Sie negatives Feedback zu Ihrer Arbeit erhalten? Wenn Sie davon ausgehen, dass Sie Kritik erhalten, weil der Code schlecht ist oder Sie nicht gut in der Programmierung sind, kann dies der Fall sein oder auch nicht.

Der Zweck der Bemühungen besteht darin, sicherzustellen, dass der Code funktioniert und den bestmöglichen Code herauszubekommen. Aus praktischer Erfahrung ist jedoch auch nicht der gesamte kommerzielle Code herausragend. Manchmal haben Sie schlechte Anforderungen, manchmal haben Sie keine Zeit, es richtig zu machen. Manchmal wollen Entwickler als Genie rüberkommen, indem sie andere schlecht aussehen lassen.

Ich glaube nicht, dass man lernen kann, ohne Fehler zu machen, besonders wenn es etwas ist, das echte Disziplin und Anstrengung erfordert. Wenn es einfach wäre, würde es jeder tun. Versuchen Sie einfach, Fehler auf kleinere zu beschränken, indem Sie bewährte Methoden anwenden. Mir ist klar, dass das nicht immer möglich ist!

Wenn ich mir Sorgen darüber gemacht hätte, was andere von mir als Programmierer halten, wäre ich gar nicht erst auf das Feld gegangen. Abgesehen davon ist meine erste Kritik am Code, ihn objektiv zu nehmen und daraus zu lernen.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.