Ich arbeite schon seit Ewigkeiten mit C und C #, ich halte mich für einen "ziemlich guten" Programmierer, aber wie schon oft erwähnt, ist Programmierung nur ein kleiner Teil der Softwareentwicklung und -entwicklung. Ich bin der einzige Programmierer für meine Abteilung, aber es sieht so aus, als ob sich das ändern wird. Was ich von der Stackoverflow-Community wissen möchte, ist folgendes:
Vielen Dank im Voraus! Haben Sie einen tollen Gedenktag!
Zunächst die generischen Antworten:
Jetzt die Besonderheiten:
Wenn Sie nicht planen, planen Sie einen Fehler
Ihre Umgebung, Ihre Softwareanforderungen, Ihre Zielgruppe, Ihr Netzwerk-Support-Personal, Ihr Budget und viele andere Faktoren werden die von Ihnen bereitgestellten Lösungen stark beeinflussen. Zum Beispiel neige ich in der Art von Umgebung, für die ich code, zu einer endlichen Menge von Werkzeugen für die Lieferung von Produkten, und sie werden wahrscheinlich für Ihre Umgebung variieren:
Ich kann eine oder mehrere dieser Technologien für meine Lösung ausschließlich von dem abhängig machen, was von mir verlangt wird. Der Schlüssel ist zu verstehen, was für eine gegebene Situation relevant ist und nur diejenigen zu verwenden, die notwendig sind. Schreiben Sie beispielsweise keine vollständige Webanwendung, wenn ein Befehlszeilendienstprogramm einfach von einem einzelnen Benutzer verwendet werden kann. Schreiben Sie keine Windows-Anwendung, wenn viele Benutzer Zugriff auf eine Anwendung haben, die nicht einfach auf ihren Rechnern installiert werden kann aufgrund von Benutzereinschränkungen und eingeschränkten Systembetreuern. Schreiben Sie kein Befehlszeilendienstprogramm für Benutzer, die kaum mit der Maus durch Windows navigieren können und erwarten Sie nicht, dass ein Microsoft-Experte Ihr * nix-basiertes System unterstützt.
Stellen Sie Diagramme und Dokumentationen zur Verfügung, mit denen Probleme einfach diagnostiziert werden können. Wenn Probleme gefunden werden [und sie werden], kann der Support von users / desksides den Problem für eine bestimmte Komponente im System. Dies wird Ihnen das Leben erleichtern, da sie entweder in der Lage sind, es selbst zu reparieren oder Ihnen genügend Informationen zur Verfügung stellen, um das Problem schnell und einfach zu beheben.
Bearbeiten : Als Antwort auf Ihren Kommentar zu UML, der für diesen Zweck sehr gut ist, müssen Sie sich aber wieder Ihrer Zielgruppe bewusst sein. Wenn Sie ein einzelner Programmierer sind, der Systeme für einen kleinen Kunden entwickelt, dessen Mitarbeiter UML nicht verstehen, würden Sie genauso gut einen normalen Ablaufplan mit einfachem Englisch bereitstellen. Wenn Ihre Zielgruppe eine Softwareberatung ist, deren Aufgabe die Softwareentwicklung ist, dann ist UML auf jeden Fall ein großartiges Werkzeug - besonders wie bei einigen UML - Tools können Sie Ihre Stub - Klassen / Methoden automatisch generieren lassen, um einige davon zu automatisieren verarbeiten. Ich tendiere dazu, in kleinen Teams für kleine Unternehmen zu arbeiten, also benutze ich UML nicht so oft, wie ich möchte, und verstehe es wahrscheinlich nicht so gut, wie ich sollte, aber das heißt nicht, dass ich es nicht tun würde, wenn ich dazu aufgefordert würde putze es nicht auf. Es ist ein großartiges Tool in Ihrer Toolbox, aber verwenden Sie es nicht nur um es zu tun. Alles, was Sie im Design / in der Architektur / Entwicklung Ihrer Lösung verwenden, sollte aus einem objektiven Grund verwendet werden - verwenden Sie es nicht blind, denn jemand sagt: "Sie sollten das verwenden, weil es großartig ist".
Der Schlüssel zu guter Architektur ist dies:
Und vor allem:
Beachten Sie Folgendes:
Iteratives Entwerfen und Codieren mit jemandem, der Ihre Ideen überprüft oder teilt, ist enorm wichtig. Sie werden blinde Flecken haben. Probieren Sie sogar paar Programmierung.
Tests sind auf lange Sicht entscheidend. Sie sichern deinen Rücken und geben dir die Freiheit, dich ohne Angst zu verändern. Angst ist die Kraft, die zu Duplikation, Blähungen und Unreinheit führt.
Meiner Meinung nach ist das Lesen von Büchern, Artikeln oder Blogs sehr wichtig. Aber es ist nicht genug. Versuchen Sie, einen erfahrenen Entwickler / Architekten zu finden, der Sie leitet. Der Wechsel vom Programmierer zum Architekten wird sehr lange dauern und Erfahrung ist das Wichtigste.
Versuchen Sie, Projekte zu bekommen, in denen Sie neue Technologien erforschen und studieren können. Aber, wirklich, versuche einen Mentor zu finden.
Schritt eins: Fragen Sie die guten Leute bei Stack Overflow.
ok guten Start
Andere Schritte: Ich entschuldige mich, dass dies keine direkten Antworten auf Ihre Fragen sind, aber hoffentlich werden sie Ihnen helfen, sie zu finden.
Wenn Sie sich in der Nähe einer Universität oder technischen Hochschule befinden, können Sie, wenn Sie einen Software-Engineering-Kurs belegen, eine längere Zeit einplanen, als Sie und Ihr Unternehmen sich leisten können, aber diese Professorentypen haben normalerweise einen guten Rat.
Sie sind also eine Ein-Mann-Operation, wie? Source Control ist ein Stück Kuchen, huh? Nicht mehr, du musst lernen, dass die Kontrolle über die Quelle dein bester Freund auf der ganzen Welt ist, nicht deine Frau, nicht dein Hund, es ist deine Quellcode-App.
Stellen Sie gute Programmierer ein! Der Unterschied von einem Programmierer zum nächsten ist enorm, ein mittelmäßiger oder schlechter Programmierer in Ihrem Team ist ein großes Problem. Im Interview geben Sie ihnen Fragen, die wirklich hart sind und Sie würden wahrscheinlich selbst vermasseln, in dieser Wirtschaft sollten Sie viele zur Auswahl haben, also stellen Sie sicher, dass Sie ein Genie bekommen.
eine vorherige Antwort sagte, einen Mentor zu finden, stattdessen Joel über Software lesen.
Tags und Links architecture