Ein Projekt, zwei Vorgehensweisen und Eure Meinung...



  • Aber dieses wissen gehört doch dazu.
    Wenn ich sage eine DLL machen wir nicht, dann erkläre ich doch warum nicht.
    Dann erkläre ich doch den unterschied zwischen Lib und dll.
    Dann erkläre ich doch warum ich in diesem Fall lib nehme.
    Das gehört doch mit zur "Architektur" und deshalb durch aus ein versäumnis.



  • Ich bin für 1). Denn: eigentlich sind beide Varianten gleichwertig. Im zweiten Fall einigt man sich in der Gruppe über ein Interface und baut dann die Programme passend. Im ersten Fall kann man das aber genausogut machen. Wenn die Interfaces festgelegt sind, dann unterscheiden sich beide Varianten nur noch dadurch, ob man einen weiteren Komplexitätslayer einbaut. Da bei einem kleinen Studienprojekt diese Komplexität nicht benötigt wird(Compilation dauert wahrscheinlich < 2min, s gibt keine 1000 unabhängig voneinander implemntierten module), schlägt für mich das Pendel zur ersten Variante.

    Die ganzen Argumente darüber hinaus - von beiden Seiten - sind scheinargumente, weil es ansonsten keinen Unterschied gibt.



  • otze schrieb:

    Im ersten Fall kann man das aber genausogut machen. Wenn die Interfaces festgelegt sind, dann unterscheiden sich beide Varianten nur noch dadurch, ob man einen weiteren Komplexitätslayer einbaut.

    Es handelt sich um Studenten, die sich ein oder zwei Semester mit C++ beschäftigt haben. Ich bezweifle ganz stark, dass diese die Disziplin haben, die Interfaces zu beachten und das Hauptprogramm nicht zu verändern (kann bei Anfängern ganz schnell mal passieren, muss nichtmal absichtlich sein).



  • otze schrieb:

    Ich bin für 1). Denn: eigentlich sind beide Varianten gleichwertig. Im zweiten Fall einigt man sich in der Gruppe über ein Interface und baut dann die Programme passend. Im ersten Fall kann man das aber genausogut machen.

    Ja, kann. Die Beschreibung klingt aber nicht danach als ob das vorgesehen wäre.

    Natürlich kann man die DLL-Sache bei Variante 2 weglassen, die ist eben nicht der Knackpunkt bei Variante 2. Der Knackpunkt ist dass bei Variante 2 vorgeschrieben ist dass ein Interface definiert wird, und nur über dieses zugegriffen werden darf (bzw. mit DLLs: kann).

    Und genau das ist der Unterschied, und genau deswegen sind die Varianten eben nicht gleichwertig.



  • IMHO ist es hier nicht angebracht ein Diskussion über Sinn und Unsinn von DLLs vom Zaun zu brechen.
    Ob das in der Realisierung der Variante 2 eine DLL wird oder eine statische Lib - oder womöglich ein paar Source-Dateien, aber mit wohldefiniertem Interface, halte ich für zweitrangig.
    Ich interpretiere den Hilferuf von themerx (ich unterstelle es ist ein Hilferuf) so, dass er sich die Bestätigung hier abholen möchte, dass er mit seinem Vorschlag auf einem besseren Weg ist, als es der Prof vorgeschlagen hat.

    Aus meiner Erfahrung heraus kann ich sagen, dass man sich bei jedem Programmentwurf von Anfang an zwingend über die 'grobe' Struktur Gedanken machen muss. Und zwar insbesondere darüber, wie es am Ende(!) aussehen soll. Und die endgültige Fassung besteht doch hier ohne Zweifel aus genau einem Programm, für das jeder der Beteiligten seinen Beitrag abzugeben hat.
    Und ohne eine vorhergehende Planung wie diese Teile zusammen spielen sollen, ohne jede Diskussion oder klärende Leitlinien wie das geschehen soll - so interpretiere ich die Variante 1 - ist so etwas bei nicht trivialen Programmen zum Scheitern verurteilt.

    Aber das wichtigere Thema hier ist IMHO die von themerx beschriebene Reaktion des Profs. Also ein zwischenmenschliches Problem.
    Wir kennen die Meinung des Profs nicht, sondern nur die von themerx. Deshalb möchte ich mich auch mit jeder Beurteilung seiner Person zurückhalten.
    @themerx: ich würde Dir empfehlen, Dich an Deine Studentenvertretung zu wenden. Und zwar möglichst frühzeitig, bevor irgendwas eskaliert. Und auch nicht nach dem Motto "der böse Prof", sondern eher "ich habe ein Problem".
    Wenn alles 'normal' läuft, wirst Du mit ihm klar kommen müssen. Die Frage, die Du Dir nur selber beantworten kannst, ist: wie mache ich das?

    Solltest Du später mal die Gelegenheit haben, eine SW-Architektur zu gestalten, so wirst Du schnell merken, dass es nicht nur darauf ankommt, eine technisch gute Lösung zu haben, sondern sie auch verkaufen zu können. Die größten Widerständen resultieren dabei aus folgenden Denk-Schemata:

    "die Idee ist nicht von mir, also kann sie nicht gut sein"
    "das verstehe ich nicht, was soll das"
    "das haben wir schon immer so gemacht"

    Am Anfang meiner Karriere habe ich auch großzügig meine Gedankengänge an meine Kollegen weiter gereicht und mir dabei manch blutige Nase geholt. Im Laufe der Zeit bin ich mehr dazu übergegangen Fragen zu stellen. .. wenn Du wirklich gut bist, bekommst Du es so hin, dass der andere denkt, es wäre seine Idee 😉 Aber auch da muss man vorsichtig sein, man kann auch mit Fragen jemanden bloß stellen.
    Und wenn man sich dann irgendwann mal einen guten Ruf erarbeitet hat, dann darf man auch mal zu "wir machen das jetzt so - und Basta!" greifen; und das wird dann auch akzeptiert.

    Mich würde noch interessieren, welchen Background der Prof hat. Wie alt ist er? Wie viel praktische Erfahrung hat er? An welchen Projekten hat er mit wie vielen Beteiligten führend mit gewirkt?

    Schöne Ostertage
    Werner



  • Schöne Antwort Werner.

    Werner Salomon schrieb:

    Aber das wichtigere Thema hier ist IMHO die von themerx beschriebene Reaktion des Profs. Also ein zwischenmenschliches Problem.
    Wir kennen die Meinung des Profs nicht, sondern nur die von themerx. Deshalb möchte ich mich auch mit jeder Beurteilung seiner Person zurückhalten.

    Natürlich kennt ihr die Sicht des Profs nicht, deshalb habe ich auch versucht die Varianten so neutral wie möglich zu beschreiben. Ich wollte ja auch eine ehrliche Meinung und keine erhaschte Bestätigung.

    Werner Salomon schrieb:

    @themerx: ich würde Dir empfehlen, Dich an Deine Studentenvertretung zu wenden. Und zwar möglichst frühzeitig, bevor irgendwas eskaliert. Und auch nicht nach dem Motto "der böse Prof", sondern eher "ich habe ein Problem".
    Wenn alles 'normal' läuft, wirst Du mit ihm klar kommen müssen. Die Frage, die Du Dir nur selber beantworten kannst, ist: wie mache ich das?

    Es sollte definitiv was unternommen werden, jedoch habe ich Bedenken und glaube dass es die Sache verschlimmern könnte wenn ich ein Gespräch aufsuche.
    Je nachdem wie sich die kommenden Vorelsungen enwickeln werde ich meine Entscheidung treffen.

    Werner Salomon schrieb:

    Solltest Du später mal die Gelegenheit haben, eine SW-Architektur zu gestalten, so wirst Du schnell merken, dass es nicht nur darauf ankommt, eine technisch gute Lösung zu haben, sondern sie auch verkaufen zu können. Die größten Widerständen resultieren dabei aus folgenden Denk-Schemata:

    "die Idee ist nicht von mir, also kann sie nicht gut sein"
    "das verstehe ich nicht, was soll das"
    "das haben wir schon immer so gemacht"

    Das verrückte ist, ich bin neben meinem Studium selbständig als Programmierer und habe als Freelancer mit einigen Firmen an Projekten gearbeitet. Dort wurden Vorschläge erwünscht statt niedergetrampelt. Ein Grund der mich auch wohl so aufwühlt. Warum schmettert ein Prof gut gemeinte Ideen ab bzw. warum buttert er einen dabei noch runter. Es war ja nie böse gemeint,... im Gegenteil, man möchte Einsatz zeigen.
    Für mich wirkt das eher als hätte er ein grundlegendes Problem damit, wenn man eigene und eventuell bessere Vorschläge bringt.

    Werner Salomon schrieb:

    Mich würde noch interessieren, welchen Background der Prof hat. Wie alt ist er? Wie viel praktische Erfahrung hat er? An welchen Projekten hat er mit wie vielen Beteiligten führend mit gewirkt?

    Der Prof müsste so mitte 50 sein. Sein Schwerpunkt ist die Bildverarbeitung. Genauer möchte ich nicht auf seinen Beruf eingehen (wo er mal gearbeitet hat usw., da ich ihn hier auch nicht an den Pranger stellen möchte).
    Seine Erfahrungen beruhen auf die damalige "struktierte" Programmierung, jedoch nicht mehr auf die heute "objektorientierte" Programmierung. Da liegt auch das eigentliche Problem, denke ich. So etwas wie Vererbungen oder Schnittstellen lehnt er grundsätzlich ab und sagt dann "zu kompliziert, versteht keiner,...".

    Werner Salomon schrieb:

    Schöne Ostertage
    Werner

    Danke. Wünsche ich Dir/Euch auch.

    PS: auch ein großes Danke an alle die sich an dieser Diskussion beteiligen.



  • themerx schrieb:

    Seine Erfahrungen beruhen auf die damalige "struktierte" Programmierung, jedoch nicht mehr auf die heute "objektorientierte" Programmierung. Da liegt auch das eigentliche Problem, denke ich. So etwas wie Vererbungen oder Schnittstellen lehnt er grundsätzlich ab und sagt dann "zu kompliziert, versteht keiner,...".

    Ja, sowas kenne ich auch. Hatte auch Profs, die bei C und Nassi-Schneidermann stehengeblieben sind und alles andere ist dann zu kompliziert und braucht keiner. Am besten erst gar nicht versuchen mit denen zu diskutieren, sondern einfach ignorieren. In deinem Fall leider schon zu spät.
    Da gibt es einfach völlig unterschiedliche Menschen, sowohl Profs als auch in Firmen. Wundert mich ein bisschen, dass du die Erfahrung nicht schon früher gemacht hast. Einige Profs sind offen für Vorschläge und neue Ideen, andere wollen einfach ihre Vorlesung, die sie genauso seit 20 Jahren halten, in Ruhe durchziehen. Sowas sollte man vorher in Erfahrung bringen, bevor man mit eigenen Vorschlägen kommt. Hatte auch schon paar Profs, die versucht haben, bestimmte Studenten zu schickanieren. Macht halt einfach Spass und bringt etwas Abwechslung in den langweiligen Professorenalltag, wenn man sich schon weigert, was neues zu lernen 😉
    Ist in Firmen genauso. Da wirst du sicher noch genug Leute treffen, die es gar nicht haben können, wenn jemand eine eigene Meinung oder eigene Vorschläge hat.



  • themerx schrieb:

    Seine Argumente waren in etwa so "Das versteht doch keiner, DLLs nutzt niemand, warum sollte man die Module vorkompilieren,...".

    War das, was er gesagt hat, nicht vielleicht eher etwas in der Art von "vorkompilierte DLLs kann nicht jeder nutzen"? 😉



  • themerx schrieb:

    Seine Erfahrungen beruhen auf die damalige "struktierte" Programmierung, jedoch nicht mehr auf die heute "objektorientierte" Programmierung. Da liegt auch das eigentliche Problem, denke ich. So etwas wie Vererbungen oder Schnittstellen lehnt er grundsätzlich ab und sagt dann "zu kompliziert, versteht keiner,...".

    Auch heute ist Objektorientierung lediglich ein möglicher Ansatz ein Problem zu lösen. Nicht der einzige. Oft eignet er sich gut. Nicht immer ist das jedoch so. Wenn man ein Beispiel braucht wo übertriebene Anwendung von Objektorientierung und Vererbung zu komplizierter Software geführt hat, die kaum jemand noch versteht (und verstehen will!), braucht man nur in die Java-Welt zu blicken.

    Klar definierte Schnittstellen sind jedoch praktisch immer sinnvoll, haben aber erstmal nichts mit Objektorientierung zu tun.



  • themerx schrieb:

    Ein Nachteil ist, und der wurde hier genannt, dass es ein bisschen Zeit zur Einarbeitung bedarf, jedoch sind wir in einem Studiengang der Informatik und haben schon im 3. Semester ein C++ Fach. Da sollte man sowas langsam können. Zudem habe ich mich komplett um das Hauptprogramm, das SDK sowie ein vier seitiges Tutorial gekümmert, womit jeder problemlos einsteigen konnte.

    Darum wird es in deiner Gruppe auch funktioniert haben. Ich kann mir gut vorstellen, dass eine andere Gruppe, die keine Ahnung hat, wie man ein SDK per DLL verwendet, die Hälfte der Zeit damit verbracht hätte und dann nicht mehr genügend Zeit für das eigentliche Projekt gehabt hätte.

    themerx schrieb:

    Ebenfalls ist er selbst dafür verantwortlich wie er z.b. an Daten wie das geladene Bild, die Breite und Höhe bekommt.

    Wenn das wirklich so vom Prof vorgegeben wurde ist das ziemlich schrecklich. Zumindest dafür sollte es eine einheitliche Schnittstelle geben, ob diese Schnittstelle per DLL oder direkt zugreifbar ist, ist für diese Miniprojekt egal.

    Das Problem ist halt, dass an vielen Unis/von vielen Profs immer noch Mathematik mit programmieren gelert wird und nicht Informatik.


Anmelden zum Antworten