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?
quelle
Antworten:
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.
quelle
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.
quelle
Als Faustregel gilt, dass Open-Source-Programme aus drei Personengruppen bestehen, die sich den Quellcode ansehen.
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. ;)
quelle
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 :)
quelle
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.
quelle
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!
quelle
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.
quelle
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.
quelle
Einige weise Worte von Reid Hoffman, Mitbegründer von LinkedIn:
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.
quelle
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.
quelle
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.
quelle
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.
quelle