Ich habe keine andere Wahl , als alleine zu arbeiten, und kann keine adäquate Lösung finden, um meine Arbeit zu überprüfen, die Gesundheit zu überprüfen, jemanden zu finden, mit dem ich Ideen sammeln kann, über die besten Praktiken zu diskutieren und so weiter.
Ich dachte, ich würde eine Antwort über Jeff Atwoods Artikel bekommen: In der Programmierung ist One Is The Loneliest Number das Beste, was ich zu diesem Thema finden konnte, aber es stellte sich heraus, dass meine Frage nur wiederholt wurde.
Ich weiß, dass Stack Exchange-Sites wie diese und Code Review eine offensichtliche mögliche Antwort sind, aber wie viele es schätzen würden, ist es bei weitem nicht ideal:
Obwohl ich nicht alle Fallstricke auflisten kann, ist das Formulieren einer Frage und das Aufteilen in ein eigenständiges Problem oftmals so aufwändig, dass Sie, wenn Sie es ausreichend vorbereitet haben, Ihre eigene Frage in mehr Schritten beantwortet haben Zeit, als es sonst gedauert hätte. Durch das Ausblenden von Details, um eine genau definierte Frage zu stellen, wird die Möglichkeit ausgeschlossen, dass jemand Probleme entdeckt, an die Sie noch nicht gedacht haben. Auch wenn ich es nicht genau sagen kann, kann die Reaktionsfähigkeit der freien Konversation nicht mit jeder Form von Internetdiskussion in Textform verglichen werden, die mir einfällt. Last but not least möchte ich aus offensichtlichen Gründen nicht mein gesamtes Projekt veröffentlichen, damit die Welt es für den Rest der Ewigkeit betrachtet.
Gibt es andere Antworten, als einen Berater zu bezahlen, der meinen Code überprüft?
Antworten:
Ich war in Ihren Schuhen und glaube nicht, dass es eine einfache Lösung gibt. Wenn Sie einen Berater dafür bezahlen, dass er sich Ihren Code ansieht, ist dies kein guter Weg, um Geld auszugeben. Wenn Ihr Problem darin besteht, dass Sie sich einsam fühlen und mit niemandem über Programmierung zu sprechen haben, kann ich Ihnen dort nicht helfen, aber wenn Sie wirklich daran interessiert sind, die Qualität Ihres Codes zu verbessern, ist es das Beste, ihn einzustellen beiseite und komm in ungefähr einer Woche darauf zurück. Wenn der Code wirklich schlecht ist, liegt es auf der Hand, dass Sie keinen Sinn daraus machen und anfangen können, ihn zu überarbeiten, um Sinn zu machen. Nach einigen Iterationen dieses Vorgangs werden Sie feststellen, welche Codemuster den Code leicht verständlich machen und die Codequalität verbessern.
quelle
Nein.
Mein Rat ist, einer lokalen Entwickler- / Benutzergruppe beizutreten und Ihre Ideen mit anderen zu besprechen. Sprechen Sie über Ihr Design. Fragen Sie andere, wie sie bestimmte Probleme angegangen sind.
Wenn sie Ihr Design überprüfen, auch ohne Ihren Code anzusehen, sollte das gut genug sein.
quelle
Es gibt Selbsttesttechniken wie die testgetriebene Entwicklung, die helfen können, Feedback zu geben. Wenn es schwierig wird, Sie wissen, dass Ihre Architektur wahrscheinlich aus dem Ruder läuft.
Problem gelöst. Sie benötigen kein externes Feedback für jede einzelne Codezeile, um Verbesserungen vorzunehmen. Sie benötigen lediglich eine gute Stichprobe an den Schlüsselgabeln auf der Straße und eine sorgfältige Selbstprüfung an dazwischen liegenden Punkten.
Sie müssen über die Idee hinwegkommen, dass Sie das gleiche Qualitätsniveau für sich behalten können, wenn Sie in der gleichen Zeit arbeiten wie jemand, der in einem Team arbeitet. Es gibt einen Grund, warum Menschen in Teams arbeiten. Die gute Nachricht ist, dass Sie keine Konflikte bei Designentscheidungen haben. Die schlechte Nachricht ist, dass Sie keine Konflikte bei Designentscheidungen haben. Hoffentlich wird die zusätzliche Zeit, die Sie für die Aufrechterhaltung der Qualität aufwenden, durch die Vorteile der Einzelarbeit etwas ausgeglichen.
quelle
Ich würde empfehlen, auf Konferenzen und in lokalen Benutzergruppen so viel wie möglich zu vernetzen. Ich kenne viele Entwickler, die bereinigten Code per E-Mail oder im ganzen Jahr durchschneiden, nur um scharf zu bleiben und die Algorithmen gemeinsam zu analysieren. Nein, es ist kein persönliches Gespräch, und es ist manchmal ein Schmerz für den Code von sanitze, aber eine Überprüfung von 20 Instant Messager-Codes kann von Zeit zu Zeit ziemlich nützlich sein, besonders wenn Sie verzweifelt nach einem zweiten Paar Augen suchen.
quelle
Ich bin in einer ähnlichen Situation und verlasse mich stark auf Stack Overflow, um Feedback zu kniffligen Fragen zu erhalten. Ich finde auch, dass die Antwort oft offensichtlich wird, wenn ich tatsächlich eine Beschreibung des Problems aufschreiben muss. In Bezug auf Best Practices bin ich ein .NET-Entwickler und verwende ReSharper, das Vorschläge für bewährte Methoden zu dem von mir geschriebenen Code enthält (den ich manchmal einfach ignoriere - das kann etwas umständlich sein). Ein weiteres nützliches Tool ist FxCop, das eine statische Code-Analyse durchführt und alle Probleme hervorhebt, die nicht mit dem Regelsatz übereinstimmen.
Ansonsten liegt es an Ihnen, die aktuellen Praktiken zu lesen und auf dem neuesten Stand zu halten. Ich mag Alvin Ashcrafts Morning Dew für Links zu den Neuerungen und Verbesserungen in der .Net-Welt.
quelle
Ich würde vorschlagen, eine kleine Benutzergruppe zu erstellen (oder zu finden). Stellen Sie Ihren Code zur Verfügung und fordern Sie alle dazu auf, dafür zu sorgen, dass er funktioniert - eine halbe Stunde oder länger täglich.
quelle
Ein konstruktives Feedback aus meiner Erfahrung ist, dass es in den ersten Jahren Ihrer Entwicklung sehr wichtig, aber nicht zwingend erforderlich ist, dass ein erfahrener Entwickler Ihren Code überprüft, um die Grundlage zu legen. Sobald Sie Erfahrung haben, können Sie dem von @ davidk01 vorgeschlagenen Ansatz folgen, dh Ihren eigenen Code regelmäßig überprüfen , um die Codequalität zu verbessern.
quelle
Ich kenne keine Details zu Ihrer Situation, aber wo ich jetzt bin, gibt es viele erfahrungsbedürftige Studenten, die mehr als glücklich sind, als Praktikant zu arbeiten und etwas zu lernen.
Es mag für Sie eine zusätzliche Aufgabe sein, mit ihnen umzugehen und ihnen dies und das beizubringen, aber wir waren alle da, als wir anfingen, und ich denke, es ist an uns, das zurückzuzahlen.
Sie sind keine Experten und können Sie manchmal sogar in die Irre führen, aber in der Regel fordern sie alles heraus, stecken voller Ideen und eignen sich hervorragend für Diskussionen, bei denen Sie jedes Detail Ihres Codes verteidigen müssen.
quelle
Ich erlebe dasselbe für> 75% der Fragen, die ich poste.
Dies ist jedoch kein Argument dafür, dies nicht zu tun. Dies ist effektiv das Debuggen von Gummienten. Sie finden Antworten auf Fragen, die Ihrer Meinung nach als Antwort auf Ihre Frage auftauchen könnten. was bedeutet, dass Sie über das Problem aus der Sicht verschiedener Personen nachdenken; was bedeutet, dass Sie aus allen möglichen Richtungen über das Problem nachdenken; Das ist der beste Weg, um den Fehler zu finden.
Bestenfalls haben Sie schlüssig bewiesen, dass Sie sich die Antwort hier nicht vorstellen können. Im schlimmsten Fall beantworten Sie am Ende Ihre eigene Frage. Beachten Sie die Anführungszeichen, denn das ist überhaupt nicht schlecht. Es war vielleicht ein wenig ineffizient, aber es ist besser, das Problem langsam zu lösen, als sich schnell zu entscheiden, das Problem nicht anzugehen . Sie werden das Problem irgendwann schneller lösen können.
Ein typisches Beispiel:
Als junger Entwickler habe ich mich oft mit der ASP.Net-Fehlerseite befasst . Ich musste die Nachricht googeln, um herauszufinden, was los ist. Es kann mehrere Stunden dauern, bis ich die richtige Lösung gefunden habe. Ich habe im Grunde jeden Fehler in dem Buch gemacht und musste mich anschließend mit den Konsequenzen aus der Fehlersuche auseinandersetzen.
Wenn jetzt ein Fehler auftritt, kenne ich bereits die "üblichen Verdächtigen" dafür, was das Problem verursachen könnte. Meine mentale Liste der "üblichen Verdächtigen" basiert effektiv auf den Problemen, mit denen ich während meiner Karriere am meisten zu tun hatte. Ohne die zeitineffiziente Beinarbeit von Stunden des Googelns hätte ich diese mentale Liste nie erstellt . Aber jetzt, wo ich diese mentale Liste habe, bin ich bei der Fehlersuche erheblich schneller.
Ich bin hier etwas anderer Meinung. Sie haben Recht, dass die Internetkommunikation weniger reaktionsfreudig ist, aber Sie haben (meiner Meinung nach) Unrecht, dass dies schlecht für Sie ist.
Als Einzelentwickler sind Sie auf das Debuggen von Gummiente angewiesen. Der Schlüssel zu RDD besteht darin, dass Sie Fragen antizipieren , die die Gummiente für Sie haben könnte. Man kann sich offensichtlich nicht darauf verlassen, was die Gummiente tatsächlich sagt.
Wenn Sie sich mit langsamen Messagingsystemen befassen (Posten auf StackOverflow oder Schreiben von Briefen), sind Sie von Natur aus motiviert, sicherzustellen, dass Sie es beim ersten Mal richtig machen. Weil das Korrigieren eines Fehlers ein langsamer und mühsamer Prozess sein wird.
Beachten Sie im Vergleich dazu, dass Sie mit schnellen Messagingsystemen (Konversation, Instant Messaging) sofort etwas korrigieren können. Die Fähigkeit, etwas schnell zu korrigieren, führt dazu, dass die Menschen weniger Anreize haben, um sicherzustellen, dass es korrekt ist.
Vier Beispiele dafür:
Der Grundgedanke dabei ist, dass ein schwieriges Austauschsystem die Menschen dazu anregt, korrekte und faktengeprüfte Austausche durchzuführen . Die Schwere der Bestrafung (= schwieriger Korrekturprozess) lehrt Sie, keine Fehler zu machen.
Wenn Sie ein MCVE erstellen , sollten Sie es nicht einfach erstellen und in der Frage veröffentlichen. Sie sollten zunächst für machen es selbst , so dass Sie das Problem isolieren kann. Und dann, wenn Sie der Meinung sind, dass das Problem nicht mehr behoben werden kann und Sie die Ursache immer noch nicht erkennen können; Dann haben Sie eine gültige Frage für StackOverflow.
Ein typisches Beispiel:
Ich habe immer ein zweites Visual Studio mit einer einfachen Konsolen-App namens Sandbox. Immer wenn ich auf ein technisches Problem stoße, kopiere ich den fehlerhaften Code in die Sandbox und spiele damit herum.
In 90% der Fälle stelle ich die Ursache des Problems fest, da mir die Sandbox dabei geholfen hat, den fehlerhaften Code zu betrachten, ohne vom umgebenden Kontext abgelenkt zu werden (oder beispielsweise Unsicherheiten in Bezug auf Werte, die für verschiedene Teile des Codes vorliegen).
In den anderen 10% der Fälle verbleibt mir der minimale Code zur Reproduktion des Problems, der als perfektes Beispielsnippet zum Posten auf StackOverflow dient.
Wenn Sie Ihr MCVE bereits haben, sollten Sie nicht viel an persönlichen (oder Unternehmens-) Informationen enthalten. Wenn Sie dies tun, ist es einfach, die Dinge in ein grundlegenderes Beispiel für foo / bar / baz umzubenennen, da der Code minimal ist.
quelle