Wie man ein großes Softwareprojekt alleine von Grund auf neu erstellt

Wie würden Sie anfangen?

Wenn Sie Entwickler in einem agilen Team waren, besteht Ihr einziges Ziel darin, die Sprint-Ziele zu erreichen. Wenn ja, werden Sie in 80% der Fälle gut abschneiden, wenn Sie mit der Entwicklung der Benutzeroberfläche beginnen. Weil es dem gesamten Team eine gewisse Bestätigung und ein Gefühl des Fortschritts gibt.

Ihr Solo-Nebenprojekt muss sich jedoch nicht auf Agile verlassen. Du darfst niemandem außer dir selbst antworten. Sie sollten versuchen, zuerst den schwierigsten Teil zu machen. Ich spreche davon, das Biest wirklich zu umarmen.

Um ein Kick-Ass-Produkt herzustellen, benötigen Sie neben der Lösung des Kernproblems ausnahmslos 1024 Dinge. Sie müssen sich des Abhängigkeitsmanagements sehr bewusst sein.

Sie müssen die Benutzerverwaltung durchführen, da dies der Einstiegspunkt für Daten ist. Nutzerdaten sind und bleiben Ihr wertvollstes Gut, bis Sie sich entscheiden, Ihr Unternehmen an Facebook oder Google zu verkaufen.

Damit kommt die Vernetzung. Denken Sie daran, Umgang mit Nutzlasten? Sie müssen Offline-Daten speichern und über eine mobile App / Dropbox-Integration bereitstellen, falls Ihre wertvollsten Daten nach Grönland oder in den Kongo übertragen werden.

Und damit, wie könnte man die Kosten vergessen, die mit Datenübertragungen kommen? Sie müssen das Protokoll definieren, das Ihre Nutzlast kostengünstig zwischen Parteien überträgt: HTTP, Websockets, TCP (Protobuffer) oder etwas anderes?

Datensicherheit ist die Endabhängigkeit in der Kette, sobald Sie alle anderen Abhängigkeiten definiert haben (es sei denn, Ihr Kernangebot besteht darin, ein Sicherheitsproblem zu lösen).

Wie verschlüsseln Sie Ihre Daten Ende-zu-Ende? SHA? MD5? Wie werden Sie Public-Private-Key-Handshake implementieren?

Wenn Sie diese relevanten Begriffe kennen, ist es einfach, auf GitHub zu suchen oder in Foren nach Meinungen zu fragen. Ein guter Ausgangspunkt ist es, nach einem dieser Begriffe in Wikipedia zu suchen und sich von dort aus nach oben zu arbeiten.

Lernen Sie sie kennen, lernen Sie ihre Alternativen kennen und innerhalb kürzester Zeit werden Sie ein Experte in jeder Technologie sein, die Sie für Ihr Projekt auswählen.

Als nächstes: Implementieren Sie sie alle. Ohne eine einzige Zeile Geschäftslogik zu schreiben.

Stellen Sie sicher, dass Sie das richtig gelesen haben.

Kurz gesagt: Halten Sie es so entkoppelt wie möglich von Ihrer Geschäftslogik. Schreiben Sie mit Schnittstellen, schreiben Sie mit abstrakten Klassen / Strukturen. Machen Sie konkrete Teststubs, um sie zu testen.

Ja, um dies alles mit primate UI zu testen, müssen Sie einige Testfälle schreiben. Beliebte Ratschläge in der Software sind, mit Testfällen zu beginnen, bevor Sie eine Codezeile schreiben.

TDD gibt Einblicke in Ihre Codebasis, die ein Experte nicht kann. Sie werden seinen enormen Wert erkennen, sobald Sie den nächsten Schritt implementieren.

Denken Sie immer daran: Sie könnten hier auf tausend Arten schief gehen. Aber dieser Schritt ist viel mehr als eine Lektion.

Hier geleistete Arbeit geht nie verloren. Es ist wiederverwendbar, weil es Geschäftslogik-agnostisch ist. Wenn Sie dieses Projekt in den Papierkorb werfen, denken Sie daran, dass Sie dieses Biest jederzeit wiederverwenden können, um alle Ihre zukünftigen Projekte zu beschleunigen. Ihre Entwicklungszeit wird exponentiell sinken.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.