2008-09-07 3 views
5

Wir haben ein paar Projekte, die das Erstellen einer Anwendung, die aus vielleicht 50% benutzerdefinierte Funktionalität zusammengesetzt ist, aber dann ein Wiki, ein Forum und andere Komponenten einzieht Das sind bereits erfundene "Räder", die wir nicht von Grund auf neu schreiben wollen.Best Practices für die Integration von Drittanbieter-Modulen in Ihre App

Diese Anwendungen von Drittanbietern verfügen normalerweise über eigene Datenbanken, Designs und Authentifizierungssysteme. Die Dinge funktionieren wie ein Single-Sign-On oder ein gemeinsames Theme oder das Taggen/Suchen zwischen Entitäten in mehreren Sub-Apps sind meiner Erfahrung nach ziemlich herausfordernde Probleme. Was sind die besten Praktiken für ein solches Integrationsprojekt?

Unser Ansatz bestand bisher darin, Ihre Komponenten sorgfältig auszuwählen und diejenigen zu wählen, die eine klar definierte API haben, vorzugsweise über HTTP (wie REST oder SOAP), obwohl das nicht immer möglich ist. Ich habe ein anständiges Forum gefunden, das so funktioniert. Gibt es Vorschläge, die Leute jemandem geben können, der das versucht, wie ich vermute, dass viele von uns heutzutage immer häufiger sind?

+0

Insbesondere suche ich nach einer Liste von Dingen, die man ausprobieren, vermeiden oder aufpassen sollte. –

Antwort

1

Stellen Sie sicher, dass die Schnittstelle zwischen Ihrer Anwendung und der Anwendung oder Bibliothek von Drittanbietern so beschaffen ist, dass Sie sie einfach durch eine andere ersetzen können, nur für den Fall. In einigen Fällen ist die Software von Drittanbietern möglicherweise nur eine Implementierung einer Standard-API (Java macht dies sehr oft mit JDBC, JMS, JNDI, ...). In anderen Fällen bedeutet dies, dass Sie die Bibliothek des Drittanbieters in eine API einbetten, die Ihnen zur Verfügung steht.

Natürlich gibt es Zeiten, diese Idee aus dem Fenster zu werfen und Dinge eng in die Software von Drittanbietern integriert zu haben. Seien Sie einfach sicher, dass Sie wirklich Ihre Anwendung an diesen Drittanbieter binden möchten. Sobald Sie diese Straße hinunter gehen, ist es wirklich schwierig, zurück zu gehen und Ihre Meinung zu ändern.

0

Donald Knuth sagte, dass sogar besser als wiederverwendbarer Code modifizierbarer Code ist. Wenn es also keine API gibt, sollten Sie nach einer Open Source-App suchen, die gut geschrieben und daher angepasst werden kann.

Wie für Datenbanken und Login-Systeme und andere Programmierteile (ich sehe nicht, wie zB Theming profitieren könnte), können Sie auch versuchen, je nach Umständen Wrapping Zeug, so dass Modul glaubt, es ist auf eigene Faust, aber tatsächlich spricht dein Code.

1

Wenn Sie mit Open-Source-Bibliotheken gehen, wählen Sie diejenigen mit einer guten Lizenz. Ich habe den harten Weg (beim Versuch, eine Anwendung zu OEM) herausgefunden, dass viele Unternehmen Lizenzen wie LGPL scheuen. Ich werde nicht näher auf die Gründe eingehen, aber sie bevorzugen Apache-, BSD- oder MIT-Style-Lizenzen.

Wählen Sie Werkzeuge aus, die es schon eine Weile gibt. Schau dir die Community an und stelle sicher, dass sie aktiv ist. Sehen Sie, was andere Leute benutzen und benutzen Sie diese Werkzeuge.

Wählen Sie Technologien aus, die gut zusammenarbeiten. Ich habe eine Anwendung zusammengestellt, die ORM und Web Services verwendet. Spring Framework + Apache CXF + JPA für den ORM erstellt einen schönen Technologie-Stack. Alle Werkzeuge, die ich verwende, sind im Frühling leicht miteinander zu verbinden, so dass es einfach ist, sie zusammen zu verwenden. Das letzte, was Sie tun möchten, ist Werkzeuge auszuwählen, die Sie eine Menge Code schreiben müssen, nur um sie zusammen zu verwenden.

Wählen Sie Technologien aus, die auf Standards basieren. Auf diese Weise können Sie, wenn die Bibliothek oder das Werkzeug stirbt, problemlos zu einem anderen mit demselben Standard wechseln.

0

Mein Ansatz bestand darin, für einige Kernfunktionen Drittanbietercode zu verwenden. Zum Beispiel verwende ich Subsonic für meinen Datenzugriff, Devexpress-Komponenten für die Benutzeroberfläche und Peter Blum Data Entry Suite für die Dateneingabe und -validierung. Subsonic ist Open Source, die Steuerelemente von Devexpress Peter Blum stehen gegen eine zusätzliche Gebühr zur Verfügung. Es wäre mir unmöglich, die Funktionalität dieser Kontrolle zu bekommen, wenn ich sie selbst schreiben würde.

Dieser Ansatz ermöglicht es mir, mich auf die benutzerdefinierte Funktionalität meiner Anwendung zu konzentrieren, ohne sich Gedanken darüber machen zu müssen, wie ich auf die Datenbank zugreife oder wie ich eine bearbeitbare Baumstruktur erstellen kann, die hübsch aussieht. Sicher, ich habe kein vollständig konfiguriertes und funktionierendes Forum, aber ich weiß, dass ich eine SQL-Datenbank für meine App verwenden werde und ich nicht versuchen muss, verschiedene Datenspeicherkomponenten zur Zusammenarbeit zu bekommen. Ich habe kein Wiki, aber ich weiß, wie man die Komponenten von devexpress ui benutzt, und die Formatierung und Validierung der Dateneingabe ist mit Peter Blum's Kontrollen ein Kinderspiel. Mit anderen Worten, lernen Sie Werkzeuge (und natürlich wählen Sie sie sorgfältig), die die Entwicklung all Ihrer Projekte beschleunigen, dann können Sie sich auf Teile Ihrer Anwendung konzentrieren, die angepasst werden müssen.

Ich bin nicht zu besorgt, wenn es Open Source ist oder nicht, solange Quellcode verfügbar ist. Wenn es Open Source ist, spende ich für das Projekt. Wenn es eine kommerzielle Komponente ist, zahle ich einen fairen Preis. In jedem Fall helfen die Tools, die Programmierung Spaß zu machen, und die Ergebnisse haben Datenintegrität und sehen gut aus. Wenn ich ein Wiki oder ein Forum entwickle, weiß ich, dass ich sie nahtlos zusammenarbeiten lassen kann. Alle Tools, die ich erwähnt habe, gibt es seit langem und werden von hervorragenden Entwicklern mit großem Ruf geschrieben.

Verwandte Themen