Ich arbeite in einem Umfeld, in dem wir viele Projekte mit strengen Lieferfristen haben. Wir sprechen sogar direkt mit den Kunden, so dass es ein Muss ist, die Aufgaben schnell zu erledigen.
Mein Problem ist, dass ich immer Code für die erste Lösung schreibe, die mir in den Sinn kommt, was ich in diesem Moment natürlich für die beste hielt. Es endet immer hässlich, und ich habe später gemerkt, dass es bessere Möglichkeiten gibt, aber ich kann es mir nicht leisten, aus zeitlichen Gründen Änderungen vorzunehmen.
Gibt es Tipps, mit denen ich meinen Code effizienter gestalten und dennoch pünktlich liefern kann?
self-improvement
gladysbixly
quelle
quelle
Antworten:
Wenn der Code gewartet werden muss, erklären Sie, dass zusätzliche Zeit erforderlich ist, um den Code wartungsfreundlicher zu machen, wodurch Geld für das Backend gespart wird. Mit anderen Worten, machen Sie wartbaren Code zu einer Anforderung.
Wenn sie sich nicht darum kümmern, müssen Sie meines Erachtens nichts anderes tun, als immer besser zu werden und das Beste zu tun, um, wann immer möglich, Best Practices zu integrieren.
quelle
Okay, das klingt vielleicht ein bisschen verrückt, aber ich schwöre, es funktioniert. Es ist nicht nur zum Programmieren gedacht, sondern ein Rezept für mehr Kreativität, Konzentration und Gedächtnis:
Bevor Sie es bemerken, werden Sie eine deutliche Verbesserung Ihrer Programmierproduktivität und der Qualität der Lösungen feststellen (ganz zu schweigen von Verbesserungen in anderen Bereichen).
Quellen:
quelle
Es ist nicht intuitiv, aber Sie müssen wahrscheinlich langsamer fahren. Wenn Sie die erste Lösung implementieren, die Ihnen in den Sinn kommt, müssen Sie sich später viel zusätzliche Arbeit leisten. Mit "die Straße runter" meine ich noch am späten Nachmittag. Die Probleme, die Sie für sich selbst erstellen, entwickeln sich in wenigen Monaten. Betrachten Sie Ihre Optionen. Geben Sie weniger ein und überlegen Sie mehr. Sogar in einem kurzen Projekt werden Sie feststellen, dass weniger Codierung Sie tatsächlich beschleunigen kann.
Versuchen Sie, Projekte mit wiederverwendbaren Komponenten zu erstellen, wenn sich Ihre Kunden in bestimmten Branchen zusammenfinden. Code nicht zu schreiben ist schneller als ihn zu schreiben.
Aus Sicht Ihres Kunden riecht dies ein wenig nach " Schnell, gut und billig, wählen Sie zwei ". Klar, wir alle wollen sofort, was wir wollen, aber Ihre Kunden müssen sich überlegen, ob dies auf lange Sicht das Beste ist. Versuchen Sie, die Kompromisse zu artikulieren und ihnen dabei zu helfen, gute Entscheidungen zu treffen.
quelle
Suche einen anderen Job.
Sie werden feststellen, dass nach ca. 6 MOS. bis zu einem Jahr, in dem Sie keinen Stolz auf Ihre geleistete Arbeit haben werden. Außerdem haben Sie keine Zeit damit verbracht, sich mit neuen Techniken, Technologien oder Frameworks vertraut zu machen. Nach einem Jahr waren Sie also nicht in der Lage, mit den neuen Technologien Schritt zu halten. Nach einem Jahr sind Sie im Vergleich zum Markt ein schlechterer Programmierer als zu Beginn.
Wenn zu viel Zeit vergeht (sagen wir, ein paar Jahre oder länger), fällt es Ihnen sehr schwer, irgendwo eingestellt zu werden, außer bei solchen schnellen Jobs, bei denen Qualitätscode nicht geschätzt wird, sondern nur Geschwindigkeit.
Das heißt, als eine "reale Welt" Lernerfahrung, gibt es etwas zu sagen für die schnelle Umgebung, aber ich würde sagen, dass etwa 6 Monate. ist genug. Darüber hinaus sollten Sie sich mit ein paar Personalvermittlern treffen und einen besseren Ort suchen. Sie werden viel glücklicher sein, ehrlich.
quelle
Aus Sicht Ihrer Kunden ist die Codeeffizienz möglicherweise nicht so kritisch und kann recht teuer sein. Heutzutage muss beim Erstellen von Code Stunden an CPU-Zeit gespart werden, um eine Stunde Ihrer Zeit zu rechtfertigen. Für die meisten Programme ist die Effizienz nicht so kritisch. Sogar für diejenigen, wo es ist, muss der größte Teil des Codes nicht so effizient sein. Angesichts der Auswahl würde ich lieber eine einfach zu wartende Lösung als einen effizienteren, schwieriger zu wartenden Code bevorzugen.
Wenn Sie sich Zeit nehmen, um Ihre Codierung zu planen, bevor Sie beginnen, haben Sie möglicherweise Zeit, Lösungen zu bewerten und alternative Ansätze in Betracht zu ziehen. Dies sollte Ihnen Zeit beim Codieren und Testen sparen. Ich habe festgestellt, dass oft einfacher Code effizienter ist.
Layouten Sie den Code sauber und verwenden Sie so viele Zeilen wie nötig. Komplexer Code kann den Optimierer verwirren und zu langsamerem Code führen. Moderne Compiler sind sehr gut darin, den Code zu optimieren und darauf zu vertrauen, dass er seine Aufgabe erfüllt.
Akzeptiere, dass gut genug gut genug ist. Wenn Sie effizientere Ansätze finden, machen Sie sich eine Notiz. Wenn Sie etwas Zeit haben, vergleichen Sie einige Ihrer effizienteren Designs mit denen, die Sie implementiert haben. Probieren Sie sie im kleinen (nur der betroffene Code) sowie im großen (das Programm, das sie verwendet). Dies gibt Ihnen ein Gefühl dafür, wann ein effizienterer Ansatz angemessen ist.
Viele Leute halten vorzeitige Optimierung für einen schlechten Ansatz. Die Implementierung kann kostspielig sein. Leider sind viele vorzeitige Optimierungen nicht so effizient wie der Code, den sie optimiert haben. Um den Code richtig zu optimieren, müssen Sie ihn vor und nach der Änderung instrumentieren, um festzustellen, ob Sie die Effizienz wirklich verbessert haben.
Studiertechniken, mit denen Sie saubereren Code mit geringer Kopplung und hoher Kohäsion schreiben können. In vielen Fällen erhöht die Reduzierung der Komplexität die Effizienz. Techniken, die Ihnen helfen, die Fehler zu minimieren, die Sie während der Entwicklung beheben müssen, helfen Ihnen dabei, schneller zu liefern. Dadurch haben Sie möglicherweise mehr Zeit, um alternative Ansätze zu testen.
quelle
Robert behandelte die wichtigsten Aspekte.
Ich habe in solchen Umgebungen gearbeitet, in denen der Code nicht länger als sechs Monate gültig ist (sein kann). Es gibt ein paar Daumenregeln, die ich mir vorstellen kann:
quelle
Sprechen Sie in der Entwurfsphase mit Kollegen .
Besprechen Sie Ihr Design und wie Sie es tun möchten, und lassen Sie sie Ihre Entscheidungen hinterfragen. Wenn Sie sich alle einig sind, was schlau ist, haben Sie ein viel solideres Design.
quelle
Trainieren. Üben Sie, guten Code zu schreiben, bis er zur zweiten Natur wird. Dann übe das Codieren schneller. Üben Sie dann das Codieren besser. Und wenn Sie fertig sind ... üben Sie noch etwas.
quelle
Nein, das ist nicht dein Problem. Das ist eine Tugend. Es ist das Einfachste, was funktionieren könnte. Dies funktioniert jedoch nur in Kombination mit Refactoring. Es ist ein kontinuierlicher Prozess: Machen Sie die nächst einfachere Sache, die möglicherweise immer wieder funktionieren könnte, so dass Ihr System immer ein Ausdruck Ihres aktuellen Verständnisses des Lösungsraums ist.
Ihr Problem ist, dass Sie ein Management haben, das die tatsächlichen Lebenszykluskosten von Softwaresystemen nicht kennt. 90% dieser Kosten entfallen auf die Wartung und nicht auf die Erstimplementierung. Testen und Refactoring sind unsere besten Werkzeuge, um die Gesamtlebenszykluskosten eines Softwaresystems zu senken . Wenn Ihre Manager Sie diese Dinge nicht tun lassen, sind sie unverantwortlich und müssen umgeschult werden. Oder Sie müssen einen neuen Job finden.
Zum Schluss: Wie ich bereits sagte *, müssen Sie lernen, wie man nein sagt .
* Wie programmiere ich nach einem sehr engen Zeitplan?
quelle
Wenn sie den Umfang und die Zeit festsetzen, können Sie nur die Drop-Qualität festlegen, um die Frist einzuhalten.
Wenn möglich, lassen Sie die externe Qualität fallen, die für die Stakeholder sichtbar ist, und machen Sie keine Kompromisse bei der internen Qualität, die Ihre Habitabilität in der Codebasis beeinträchtigt.
Ich glaube wirklich nicht, dass Selbstverbesserung Ihnen in dieser Situation helfen wird. Wenn überhaupt, dann ist es normalerweise Durchsetzungsvermögen.
Versuchen Sie, einen Fuß in die Tür zu bekommen, wenn die Arbeit geschätzt wird. Wie kann Ihr Chef abschätzen, wie lange Sie brauchen, um etwas zu tun?
Treffen Sie Ihrem Chef und / oder Kunden eine Auswahl. Zu oft entscheiden sich Entwickler selbst dafür, die Qualität zu reduzieren, ohne etwas zu kommunizieren. Verspätete Projekte / Arbeiten sind sehr verbreitet und werden in der Regel „verwaltet“. Handeln Sie rechtzeitig und warnen Sie die Leute, wenn Sie eine versäumte Frist sehen.
Sie können den Rahmen nicht kürzen oder die Frist verschieben, wenn Sie ihnen nichts mitteilen.
Wenn Sie bei der Qualität in irgendeiner Form Kompromisse eingehen wollen, lassen Sie es ihre Entscheidung sein. Geben Sie ihnen Sachen gegeneinander ab.
Einige Dinge, die nur DU entscheiden kannst. Wenn Sie es gerade zum Laufen gebracht haben. Aber es ist sehr unerreichbar. Vielleicht sind Sie sich nicht sicher, ob es in allen Fällen funktioniert. Sagen Sie niemandem, dass Sie fertig sind. Mach es nochmal. Sehr oft ist es eine Entscheidung, die nur Sie treffen können. Entweder weil das Problem sehr zeitaufwendig ist, oder weil Sie einen nicht-technischen Manager haben.
Manchmal ist das Teil Ihrer Arbeitsmoral. Würden Sie einfach einen Patienten zusammennähen, ohne sich die Hände zu waschen, weil Sie keine Zeit haben?
Denken Sie vor allem daran: Es gibt kein späteres.
quelle
Ich bin ein .NET-Entwickler und arbeite an Webanwendungen.
Ich habe angefangen zu tun:
Wenn es sich um C # -Code handelt, versuche ich, diesen Code zuerst in LinqPad zu schreiben (falls möglich).
Wenn es sich um Javascript handelt, schreibe ich diesen Code zuerst und teste ihn in jsfiddle / jsbin (falls möglich).
Ich stellte fest, dass dies die Qualität des Codes verbessert, mich aber nicht verlangsamt (und in einigen Fällen stellte ich fest, dass er schneller ist).
quelle