Die beste Methode, eine Proof of Concept (PoC) -App zu schreiben?

7

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:

  • Formularebene - redet mit Datenebene.
  • Datenschicht - spricht mit Datenbank und Interop-Ebene.
  • Interop Layer - spricht mit einem COM-Objekt.
  • Das COM-Objekt

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.

    
Nathan W 02.02.2009, 05:03
quelle

8 Antworten

8

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:

  • Schreiben Sie einen vorgefertigten Netzwerk-Client mit Shell-Skripten ( netcat und viele bash )
  • Schreiben Sie einen Server in Python, Ruby oder einer anderen RAD-Sprache, mit der Sie vertraut sind
  • Verwenden Sie eine Technologie, die einfacher ist als Ihre Produktionstechnologie (kommunizieren Sie über statische Dateien anstelle von TCP oder verwenden Sie einen sehr einfachen RPC-Mechanismus anstelle eines Middleware-Produkts)
  • Verwenden Sie Software mit inkompatibler Lizenzierung, damit das Produkt nicht freigegeben werden kann (GPL ist dafür geeignet, für alles, was tatsächlich verteilt wird).
  • Schreiben Sie ein Webformular als statische HTML-Seite (kein Styling oder irgendetwas, hässlich wie Sünde)
  • Wenn möglich, ersetzen Sie alle Remote-Interaktionen (Datenbank, Netzwerk) durch lokale Objektinteraktionen, wobei Handwaving bedeutet, dass "diese beiden Schritte wirklich separat auftreten"
Tom 02.02.2009, 05:33
quelle
3

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.

    
Rex M 02.02.2009 05:06
quelle
2

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.

    
Eclipse 02.02.2009 05:07
quelle
2

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.

    
Andy Dent 02.02.2009 05:41
quelle
2

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.

    
mmcdole 02.02.2009 05:13
quelle
1

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.

    
Andy White 02.02.2009 05:07
quelle
1

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.

    
Steven Oxley 02.02.2009 05:08
quelle
1

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.).

    
William 02.02.2009 07:16
quelle

Tags und Links