Ich arbeite an meiner eigenen Bewerbung und stecke fest. Ich muss eine Funktion implementieren, kann aber keinen guten Ansatz finden, um diese Funktion zu implementieren. Ich habe ein paar Tage darüber nachgedacht, und es kamen keine guten Gedanken. Das Durchsuchen des Internets hat mich nicht inspiriert.
Ich muss weitermachen, aber ich möchte wissen, was das Beste ist:
- Denken Sie mehr nach, warten Sie mehr und suchen Sie weiter nach dem besten Ansatz
- Verschwenden Sie keine Zeit mehr und beginnen Sie mit einem schlechten Design
Was denkst du? Wie ich bereits sagte, arbeite ich an meiner eigenen Bewerbung. Ich habe keine Fristen, aber ich möchte die App so schnell wie möglich fertig codieren.
Antworten:
Abgesehen davon, dass ich mit Leuten darüber spreche (die Frage deutet darauf hin, dass Sie keine Kollegen für das Projekt haben), empfinde ich es oft als einen guten Ansatz, mich auf die Dinge zu konzentrieren, die ich tun kann .
Normalerweise gibt es einen Teil des Codes, von dem ich weiß, dass ich ihn trotzdem schreiben muss. Das, was ich noch nicht schreiben kann, wird dann durch Stubs ersetzt, die entweder Dummy-Ergebnisse liefern oder eine Näherung verwenden, die gut genug ist, um den Rest zu testen.
So bleiben Sie produktiv. Und bis Sie das fehlende Teil implementieren müssen, haben Sie die Schnittstelle. Und Sie haben in derselben Problemdomäne eine Menge Code geschrieben, der mich bei der Generierung von Ideen unterstützt: Sie wissen genauer, was Sie ausgeben müssen und welche anderen Eingaben verfügbar sind, wenn dies zur Lösung des Problems beiträgt . Oft ist die Schlussfolgerung auch, dass das fehlende Stück nicht so umfassend sein muss, wie ursprünglich angenommen.
quelle
Wenn die Suche fehlschlägt, können Sie immer die erste (nicht unbedingt die beste) Idee verwenden, die Sie haben, und sie später umgestalten, wenn Sie den richtigen Ansatz finden.
Dies ist der richtige Ansatz, denn selbst wenn Sie etwas finden, das nach einer guten Idee aussieht, kann es sich später als schlecht herausstellen. Oder es mag zu dieser Zeit gut sein, aber später findest du etwas viel Besseres. Dann müssen Sie noch umgestalten.
Stellen Sie dabei sicher, dass das Design und die Implementierung so gestaltet sind, dass eine Umgestaltung problemlos möglich ist. Wenn Sie es richtig machen, müssen Sie nur den problematischen Teil ändern und nicht von vorne beginnen.
quelle
Was ist mit einer anderen Person zu fragen? Sie können Ihr Problem beispielsweise hier oder, wenn es sich eher um ein Implementierungsproblem handelt, auf stackoverflow.com beschreiben und nach Ideen fragen. Manchmal hilft es dir schon, wenn du anfängst, das Problem aufzuschreiben, auch wenn du keine guten Antworten bekommst.
quelle
Ein paar Ideen:
Schreiben Sie jede dumme Idee auf (auf Papier oder Whiteboard). Kreuzen Sie diejenigen an, von denen Sie sicher sind, dass sie nicht funktionieren. Schreib weiter. Schließen Sie Lösungen für potenziell verwandte Probleme der realen Welt ein. Löst das Mischen von Farbe, das Einstechen eines Nagels in die Wand oder das Wechseln des Öls ein reales Gleichnis?
Google um Hilfe , fragen Sie hier, fragen Sie Ihre Geek-Freunde usw.
Sie können das Problem nicht lösen , aber können Sie ein viel einfacheres Problem lösen? Oder eine ebenso komplexe, verwandte? TU das. Nehmen Sie dann kleine, individuelle Änderungen vor, um Ihre Lösung der gewünschten Lösung näher zu bringen.
Unabhängig davon, ob es sich bei Ihrer Benutzeroberfläche um einen Webdienst, eine Webseite, eine native Form, eine Kamera, eine Tastatur, einen Monitor oder etwas anderes handelt , gibt es eine Benutzeroberfläche. Schreiben Sie einige Code- / Pseudocode-Zeilen, damit die Schnittstelle funktioniert. Wende magische Methoden an, die es noch nicht gibt. Wiederholen Sie dies rekursiv für jede nicht existierende magische Methode. Später optimieren.
quelle
Es ist nichts Falsches daran, mit der schlechten Lösung umzugehen. Oft weiß man zu diesem Zeitpunkt einfach nicht genug über die Problemdomäne. Wenn Sie sich für eine schlechte Lösung entscheiden, lernen Sie mehr über das Problem. Dann können Sie immer noch zurückgehen und Ihre erste Lösung überarbeiten.
quelle
Ich versuche immer, es aus der Sicht des Endbenutzers zu betrachten. Es ist sehr einfach, sich eine "coole" Idee als Entwickler vorzustellen, an der Sie jahrelang arbeiten können und die Ihrer App tatsächlich nur sehr wenig hinzufügt.
Idealerweise möchten Sie alle Funktionen in Ihrer App abbilden und sie entsprechend dem Nutzen für den Endbenutzer priorisieren. Ich persönlich verwende MOSCoW , obwohl Ihre Methode der Priorisierung so einfach wie eine 1 sein kann, solange Sie sie beibehalten - 5.
Danach, wenn Sie immer noch feststellen, dass diese Funktion ein wesentlicher Bestandteil Ihrer App ist, fragen Sie, wie bereits gesagt wurde! Ich glaube nicht, dass ich jemals auf ein Problem gestoßen bin, das irgendwann weder von einem Kollegen noch von diesen netten Leuten bei Stackoverflow gelöst wurde.
quelle
Meine Meinung ist: Schreiben Sie niemals Code, der einfach funktioniert! Es dürfte sehr schwierig sein, in Zukunft umzugestalten.
Es ist ein sehr verbreiteter Ansatz für Entwickler (und natürlich für PMs oder Chefs). Ich habe viel Zeit gehört: "Lass es einfach funktionieren" oder "Ich werde es später beheben" (später, wenn ??? nie!), Aber ich denke, dass Qualität nicht in der Mitte des Projekts erreicht werden kann.
Mein Vorschlag ist, hör für eine Weile auf, an dein Problem zu denken ... tu etwas anderes, und irgendwann kommen die Lösungen einfach selbst heraus.
Übrigens ist das Bitten eines Kollegen eine großartige Möglichkeit, Ihre Probleme zu lösen.
quelle