Ich arbeite gerade an einem Projekt, mit dem ich ein bisschen Proof of Concept App programmieren soll. Ich habe PoC-Apps schon geschrieben, aber sie waren nur wirklich klein und hatten nicht wirklich viele Ebenen, da die App, die ich gerade schreibe, eine hat:
Was wäre der beste Weg, um ein Programm zu schreiben, um zu zeigen, dass ich von A nach B und den Prozess, der benötigt wird, bekommen kann, ohne viel Zeit in das PoC schreiben zu müssen.
Ich habe schon die Idee in meinem Kopf, wie alles zusammen passen soll, aber ich habe ein paar Probleme, meinen Teamkollegen zu zeigen, was ich meine.
Kann jemand Tipps und Tricks bei der Programmierung von PoCs empfehlen? Oder würde es einen besseren Weg geben zu erklären, was ich meine, als Code schreiben zu müssen.
Ich stimme anderen Antworten zu, wie man einen Prototyp bekommt. Eine Möglichkeit, um sicherzustellen, dass Ihr Prototyp als solcher erhalten bleibt, ist die Verwendung einer Sprache oder Toolchain, die im endgültigen Produkt definitiv nicht verwendet werden würde, wodurch es gezwungen ist, in Produktionsqualität umgeschrieben zu werden. Einige Ideen, die ich verwendet habe:
netcat
und viele bash
) Nach meiner Erfahrung ist der beste Weg, dies schnell in Gang zu bringen, es so schnell wie möglich in einer (oder so wenig wie möglich) Ebene zu programmieren, echt böse und herzzerreißend. Sobald Ihr Code-Barf funktioniert, beginnen Sie mit einer der Ebenen in Ihrer Liste und trennen Sie sie. Wiederholen Sie dies, bis Sie die gewünschten Ebenen haben.
Dies hat auch den zusätzlichen Vorteil, dass Sie in der Lage sind, ein bestimmtes Stück herauszuholen und Ihre Kollegen zu bitten, so zu tun, als wären sie getrennt. Wenn sie das können, müssen Sie nicht die Zeit dafür aufwenden.
Als Beweis für das Konzept - ich würde jedes Bit einzeln nehmen und gefälschte Wrapper für den Rest schreiben. Eine der Gefahren bei der Herstellung von Prototypen und Konzepten besteht darin, dass sie, wenn sie nah genug an der Funktionalität sind, dazu neigen, als Endprodukt zu enden.
Schreiben Sie so viel wie möglich in ein Unit-Test-Framework in einer hochproduktiven Sprache wie Python.
Python-Unit-Tests verwenden Reflektion, um zu folgern, dass es sich um Tests handelt, und erfasst die normalen Ergebnisse. Alles in allem erfordert es sehr wenig Aufwand, um loszulegen - ich habe Python auf diese Weise verwendet, um Netzwerkprotokolle auszuarbeiten und Befehlszeilen-XSLT-Transformationen mit sächsischen Gläsern zu umbrechen.
Wenn Sie testweise mit den Fragmenten spielen, wird Ihre PoC-App nicht zu verwickelt und Sie werden die Grundlage für das Testen in der zukünftigen Implementierung legen.
Auch wenn Sie sich für eine bestimmte Sprache für die Haupt-App entschieden haben, sollten Sie etwas Leichteres für Ihre Helfer in Betracht ziehen, zum Beispiel einfache Server, die ein Netzwerkprotokoll testen.
Für Prototyping-Proof-of-Concept-Apps kann es manchmal nützlich sein, Programmiersprachen zu verwenden, die sich gut für die schnelle Anwendungsentwicklung eignen.
Python ist ein gutes Beispiel. Sie haben ein riesiges Framework, um die verschiedenen Abstraktionsschichten, die Sie in Ihrem Beitrag erwähnt haben, zu nutzen und zu erstellen, während Sie gleichzeitig die Code-Größe der Proof of Concept Apps auf ein Minimum reduzieren.
Arbeitsanwendungen sprechen mehr als Worte. Wenn Sie also einen schnellen Prototyp für Ihr Team aufstellen könnten, um ihn zu sehen und damit zu spielen, hilft es, die Zuhaltungen für sie in Ordnung zu bringen.
Es kann etwas länger dauern, das Setup zu starten, aber wenn Sie sofort ein Dependency-Injection / IoC-Framework verwenden können, wird es viel einfacher sein, verschiedene Implementierungen von Dingen auszutauschen. Spring / Spring.NET hat mir enorm geholfen.
Ich finde, dass das Zeichnen von Bildern und Diagrammen mir immer hilft, meinen Standpunkt klar zu machen. Es hilft mir auch, Dinge selbst zu durchdenken, wenn ich auf Probleme stoße.
Sie können vielleicht Ihren Teamkameraden ein besseres Verständnis dafür geben, worüber Sie sprechen, indem Sie ihnen ein paar Zeichnungen zeigen, was Sie vorhaben.
Ich habe einmal ein ähnliches Projekt mit Delphi 7 und MIDAS gemacht. Implementiert die Interop-Ebene (in-Process-AppServer in meinem Fall) als DLL-Dateien ermöglicht das Projekt auf verschiedene Datenquellen zugreifen (z. B. SQL, Access, Excel und COM-Objekte, etc.).
Tags und Links architecture design modeling