Einzelnen Beitrag anzeigen

Benutzerbild von sx2008
sx2008

Registriert seit: 15. Feb 2008
Ort: Baden-Württemberg
2.332 Beiträge
 
Delphi 2007 Professional
 
#9

Re: Funktionen in DLL auslagern! Übergabe der Parameter!

  Alt 12. Dez 2009, 12:26
Meiner Erfahrung nach sollte man folgende Dinge vermeiden.
Es geht dabei weniger um Technik als vielmehr um Psychologie und Zusammenarbeit.
* keine "Kernkompetenzen" auslagern
wenn man Dinge auslagert, die den Kern des Programms ausmachen, gibt man das wichtigste Wissen aus der Hand.
Ausserdem dauert es länger einem anderen Programmierer etwas zu erklären, als es selbst umzusetzen.
Sollte der Programmierer dieser ausgelagerten Teile das Unternehmen verlassen stehst du "ohne Hosen" da.
Du möchtest den Code nicht erben (denn du bist in der Programmiersprache nicht zu Hause)
und andere haben auch keine Lust sich mit dem halblebigen Code auseinanderzusetzen.

* nichts auslagern, was später öfters angepasst werden muss
Ein C#-Programmierer, der für dich ein kleines Stückchen Software schreibt, betrachtet das nur als lästiges Übel.
Er wendet sich möglichst schnell wieder den interessanten Sachen zu.
Wenn du alle paar Wochen auf der Matte stehst und eine Änderung/Erweiterung brauchst, werden selbst gute Kumpels genervt sein.

Und noch eine allgemeine Warnung.
Ich habe selbst schon öfters mit diesen ausgelagerten Softwareteilen zu tun gehabt und jedes Mal war das Egebnis schlecht.
Beispiel 1:
ein Delphiprogramm soll von SAP Daten übernehmen wobei eine C/C++ DLL die Daten von SAP
auslesen soll.
Folge: es war jede Menge Kommunikation zwischen mir und dem C-Programmierer nötig;
in der Zeit hätte ich es selber auch geschafft.
Aber ich konnte kein Know-How über SAP sammeln.
Inzwischen wurde der Programmierer gekündigt und die DLL ist vom Konzept ein Schrotthaufen geworden,
weil auch noch andere darin rumgerührt haben (Copy, Paste und leicht abändern).

Beispiel 2:
eine C/C++ - DLL steuert Drucker, Meßgeräte und eine SPS an.
Es steckt quasi ein ganzer Ablauf in dieser DLL (angesteuert von meinen Delphiprogramm).
Folge: wenn irgendetwas nicht tut, habe ich keine Ahnung wo das Problem liegt.
Die DLL ist eine Blackbox und lässt nichts raus.
Bei jeder neuen Anlage geht die Fehlersuche von vorne los.
Innerhalb der DLL gibt es keine Exceptions mit nützlichen Meldungen sondern nur Fehlercodes.
Dummerweise wird immer nur der Fehler 1="es ist ein Fehler aufgetreten" generiert.

Auch hier wurde die DLL schon mehrfach weitervererbt.
Inzwischen ist kein Programmierer mehr greifbar, der Änderungen an der DLL vornehmen könnte.
fork me on Github
  Mit Zitat antworten Zitat