Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Vorläufige Korrektur #9

Open
7 tasks done
Kegny opened this issue Jul 19, 2016 · 23 comments
Open
7 tasks done

Vorläufige Korrektur #9

Kegny opened this issue Jul 19, 2016 · 23 comments
Assignees

Comments

@Kegny
Copy link

Kegny commented Jul 19, 2016

Eure Abgabe ist so noch nicht in Ordnung und ihr müsst definitiv noch Gradle fixen.
Bei den Kritikpunkten, wegen der Modi-Wechsel bin ich mir teils nicht ganz sicher, ob ich einfach nur die Bedienung nicht richtig verstanden habe..

Ansonsten würde ich gerne noch etwas mehr von allen außer Bustercall sehen,
das bisherige von euch ist zu wenig. Ihr könnt euch z.B. an die Bugs setzten oder
im Ilias auf die von Jens gemachten Vorschläge eingehen.

Zu beheben:

  • Gradle; Das builded bei euch einfach daher, da Ihr nur minimalstes einfügt.
    Das gebaute soll eigtl. in irgendeiner Form euer Programm und ausführbar sein
  • Der Modus, in dem man sich befindet wird erst "angezeigt", wenn man unter "Run" was auswählt
  • Man kann im Test-Schreibe-Modus in der Klasse rumschreiben
  • Es gibt kein Feedback darüber, warum man RED nicht verlassen kann (Syntax/Test-Fehler)
    [Generell konnte ich RED nicht verlassen, mache ich da was falsch?]
  • Ich habe bei keinem der Tests diese Zusatzfunktionen sehen können
    [Bei den Babysteps wäre auch ein Timer angebracht]

Kleinere Mängel:

  • Ihr loggt die Konsole mit "CURRENT TAB: x" zu
  • Euer Programm beendet sich nicht komplett, wenn man auf X Drückt;
    Ihr habt da einen oder mehrere im Hintergrund laufende(n) Thread, der/die nicht geschlossen werden.

Was außerdem schön wäre, ist es, wenn ihr Sonderzeichen in den Funktionen vermeiden könntet,
da die Kodierungsabhängig sind und da z.B. in meinem Fall Fehler deswegen auftreten und Funktionen nicht erkannt werden.

@Bastercall
Copy link
Contributor

Was meinst du mit dem built? Deine Kurzschreibweisse ist grade nicht so aufschlussreich :-/

@ghost
Copy link

ghost commented Jul 19, 2016

Ich habe auch eine Frage zu meiner Leistung.

Bastercall (Sebastian) hat für mich lediglich den Quelltext etc. gepushed. Es kann daher den Anscheinhaben, dass ich nicht genug Eigenleistung erbracht habe. Jedoch, wenn man in die Quelltexte sieht, so sind meine Quelltexte gekennzeichnet mit meinem Namen. Von 2050 Zeilen Code habe ich 1231 Zeilen Code verfasst, also gut 70 % des gesamten Quelltextes.

Jetzt ist meine Frage, ob ich wegen mangelnder Eigenleistung vorzeitig nicht bestanden habe?

mfg Marc

@bendisposto
Copy link

Gradle baut bei euch keine einzige Klasse. Probiert mal gradle build aus und entpackt das jar, das unter build/libs gebaut wird. Ihr werdet feststellen, das dort kein Java code vorhanden ist.

Man sieht das auch beim build: ``:compileJava UP-TO-DATE`
Es gibt keine neuen Klassen, die kompiliert werden müssen.

Vielleicht ist https://docs.gradle.org/current/userguide/java_plugin.html#N152C8 hilfreich.

@ghost
Copy link

ghost commented Jul 19, 2016

Wir haben jetzt jedoch folgendes Problem: Wir können das bauen, alles gut aber wenn wir den Programm inteenen Compiler nutzen passiert nichts. Das Problem hatten wir auch schon vorher in einigen unseren IDEs, haben festgestellt das dort statt jdk, jre oder andere Biblotheken genutzt wurden. Das haben wir behoben. Beim manuellen bauen oder eben beim bauen mit Gradle werden jedoch Null Pointer geworfend weil er eben jdk vermisst.

@bendisposto
Copy link

Woher weisst du das? Der Gradle Build macht gar nichts, deswegen kann man da auch nichts lufen lassen.

Ausserdem habt ihr die Compiler Bibliothek im Sourcecode eingebunden (und zwar ohne die Lizenz!), das ist so auch nicht gedacht.

Ich habe keinen Zweifel, dass es in eurer IDE läuft. Das ist aber nicht ausreichend, weil ihr keine reproduzierbaren Builds habt, die auch tatsächlich etwas machen.

@Kegny
Copy link
Author

Kegny commented Jul 20, 2016

Gradle:
Das Gradle erfolgreich läuft seht ihr daran, dass ihr in der .travis.yml "gradle build" aufruft, weswegen in Travis "gradle build" aufgerufen wird,
und Travis euch "build|passing" zurückgibt.
Das, dass funktioniert liegt daran, wie Jens bereits schrieb, dass ihr nichts baut.

Gradle müsst Ihr euch in der Hinsicht, wie ein Makefile vorstellen, oder eine Anweisung, wie man
das OHNE IDE kompiliert.

Seit ihr inzwischen an der Stelle weiter?

@marc
Am 27. entscheidet sich, wer bestanden hat, Ihr seit also noch dabei.
Was jetzt die Bewertung von Projekt7 jetzt angeht, müssen wir das erst einmal aufklären,
darum ja "Vorläufige Korrektur" ;)

Was meinst Du mit "meine Quelltexte"? Habt ihr euch Gegenseitig verboten gehabt, die Klassen
eines anderen anzufassen?
Und wieso hat Sebastian für dich pushen müssen? Anfangs ging das doch noch bei dir?

Welche Commits hat Sebastian für dich gepusht? Nur mit MaFeg100 oder Marc betitelte?
Oder generell, für wen alles hat Sebastian was gepusht? Dann gucke ich mir das nochmal in der Hinsicht an.

Habt Ihr sonst noch fragen o.ä.?

@Bastercall
Copy link
Contributor

So ich gebe jetzt hier mal ein paar Updateinfos:

  • Unser Gradle Build ist jetzt eingebaut und baut eine Korrekteversion des Programs. Zumindestens stand von Denis und mir (Sebastian). Eine Potenzielle Fehlerquelle die Auftreten kann ist jedoch die Abwesenheit der jdk auf dem Rechner und das damit verbunde auseinanderfliegen der Compileeinheit.
  • Farbe und Timer können wir wahrscheinlich heute noch pushen, Refactor spätestens morgen Abend
  • Man kann zwar in der Hauptklasse rumschreiben, dies hat jedoch keinen Effekt, wird theoretisch nicht gespreichert
  • Ich möchte hier nocheinmal betonen das Marc tatsächlich den meisten Code geschrieben habe. Die meisten Sachen habe ich nur gepusht, da sein Github-Eclipse einbindung verbuggt scheint, und wir hier auf Github trotzdem kontinuirlich ergebnisse zeigen wollten.

@Kegny
Copy link
Author

Kegny commented Jul 20, 2016

Einfach, weil das anscheinend nicht ganz so klar geworden ist, ich will hier niemandem etwas böses.
Die Sache ist halt einfach, dass von den Commits her (Wer sie gepusht hat + Title), es so aussieht/aussah, dass praktisch der gesamt Code von "Bastercall" bzw. Sebastian kommt. Darum fragte ich ja auch danach, welche Commits jetzt eigtl von Marc stammen..
Ich kann halt nun einmal nur bewerten, was ich sehe und nur damit dann auch die Korrektur begründen...

Ahja und was ist eigentlich mit den anderen beiden?
Haben die auch noch Commits, die so nicht gekennzeichnet sind, oder sind die euch kurz vorm Ende noch verschollen gegangen? Könntet Ihr die vll mal anhauen?

Und in wie fern "wird theoretisch nicht gespeichert"? xD
Jedenfalls gut, dass Ihr anscheinend gut vorran kommt, ich werde wahrscheinlich Freitag, vll auch erst Samstag noch einmal genauer gucken können.

@ghost
Copy link

ghost commented Jul 20, 2016

Alles gut :D 👍
Die Quelltexte sind jeweils oben mit @author gekennzeichnet.

Die Führung durch die Schritte ist jetzt klar unterscheidbar, da jetzt nicht mehr die MenuItems PhaseRED, PhaseGREEN, Refactor vorhanden sind sondern Compile und Leave Refactoring. Die Phase wird jetzt an der rechten Seite farblich angezeigt, zudem ist sie auch beschriftet. Auch wird, wenn BabySteps im XML angegeben ist ein Timer über der Phasenanzeige erstellt der die verstrichene Zeit und die gesamte Zeit, die noch zur Verfügung steht angibt. Wenn der Tab gewechselt wird, so wird die Zeit die schon verstrichen ist angehalten bis in diesem Tab weiter gearbeitet wird. Bei XML ohne Babystep wird nur eine Phasenanzeige erstellt.

Als nächstes wird dann noch implementiert, dass nach Beendigung der Zeit der Quelltext, der bis zur PhaseRot entstanden ist gelöscht wird
anders
.

@Bastercall
Copy link
Contributor

Ich weiß nicht ob die beiden anderen hier mitlesen, da ich denke das sie das tun können sie selbst etwas schreiben. Ich habe viel von Marc und ein wenig von Denis gepusht und da auch Namen rangeschrieben, wenn es nicht von mir war.

Theoretisch heißt das es funktionieren müsste ;-)

@AndreasLuepertz
Copy link
Collaborator

Sorry, dass ich jetzt erst schreibe, mein Mailprogramm hat mir grade alles hier auf einmal ausgespuckt...
Also von mir sind die Klassen Writer, FileExport und BabySteps, sowie das Handbuch.
Wenn das nicht reicht, suche ich mir gerne noch etwas aus dem ILIAS post aus. :)

@Bastercall
Copy link
Contributor

So ich merke an dieser Stelle noch etwas zu der aktuellen Version an. Sobal mit Gradel gebaut kann man das Programm starten. Es erstellt direkt neben der Jar einen LibaryFolder. Der ist leer. Um das Programm nutzen zu können einfach den Inhalt des LibaryFolders aus dem master Branch dort hinein verschieben.

@Bastercall
Copy link
Contributor

Kleiner Nachtrag: Die Downloadfunktion tut zwar was sie soll, wir haben leider keinen Anbieter gefunden der es drittprogrammen gestatet content zu ziehen, deswegen konnten wir onlinen keinen Testordner hinterlegen.

@ghost
Copy link

ghost commented Jul 23, 2016

Also geändert sind jetzt:

  • Phasen sind eindeutig getrennt
  • Farbliche Anzeige der Phasen
  • Diagramm zeigt Nutzerverhalten an( In Phase Rot fließen die Fehler nicht in die Statistik ein, da ein Fehler zum Bestehen der Phase Rot notwendig ist)
  • Das Programm terminiert vollständig ohne das im Hintergrund noch Threads weiterlaufen
  • Überflüssiger Code ist entfernt
  • Zeit läuft nur dann weiter, wenn der entsprechende Tab ausgewählt wurde
  • Babysteps merkt sich die Rücksprungtexte zu denen zurück gesprungen wird, wenn die Zeit abgelaufen ist
  • Das Diagramm aktualisiert sich alle 60 sek. oder wenn man auf den Button Compile klickt
  • Autosaves beinflussen nicht mehr die Babystepsprünge
  • Projekte sind unabhängig getimed und laufen nur dann, wenn sie ausgewählt sind( Aktionen laufen nicht im Hintergrund weiter, sodass es nicht zu Rucklern oder Unstimmigkeiten kommt)

@ghost
Copy link

ghost commented Jul 24, 2016

Damit auch noch klar wird wer was gemacht hat ist hier eine Übersicht:

  • Denis: Tester, TesterTester Gradle-Build, Fehlersuche und Korrektur sowie diverse Dokumente( Name steht drin), XML-Files für die Aufgaben
  • Sebastian: XML-Reader, Reader, ImportManager, Planung und Organisation von GitHub, GradleBuild, Fehlersuche und Korrektur, sowie diverse Dokumente( Name steht drin)
  • Marc: FolderManager, MainApp, PopUpDialog, Screen, StringFilter, Clock, CreatableTab, Diagramm, PhasenAnzeige, Task, sowie die Inneren Klassen der aufgelisteten Klassen, sowie diverse Dokumente (Name steht drin)
  • Andreas L. : FileExport, Writer und Babysteps(nicht mehr vorhanden), sowie diverse Dokumente( Name steht drin)
  • Andreas A. : XML-Files für die Aufgaben, sowie diverse Dokumente( Name steht drin)

@Kegny
Copy link
Author

Kegny commented Jul 24, 2016

Folgende Situation:
Ich verstehe nicht, wie man euer Programm Stand 03f88fe zu bedienen hat. Es ist immer noch möglich, Test- und Programm-Code zur selben Zeit zu bearbeiten. Ich habe es nicht geschafft, irgendwie aus Phase „Red“ herauszukommen.

Darüber hinaus wirft euer Programm regelmäßig Exceptions:

  • Bei mir kann man ohne Modifikation schon gar kein Trainingsset auswählen, da ihr im FolderManager \ als Trennzeichen hardgecoded habt, weshalb das Programm nur unter Windows richtig läuft. (benutzt stattdessen File.separator)
  • Beim Compilieren eines Tests wird eine NullPointerException geworfen.

Es ist wirklich sehr undurchsichtig, wer was bei euch gemacht habt. Dass jemand ganz alleine an einer Datei gearbeitet hat, könnt ihr mir nicht erzählen, deshalb zählen für mich die @auhtor-Angaben bei der Bewertung eher weniger. Der ganze Sinn von git ist ja gerade auch, dass wir die Commits anhand des (in git) angegeben Autors eindeutig einer Person als Prüfungsleistung zuordnen können. 8bc0ed8 ist so ein Beispiel, wo @Bastercall wohl für @MaFeg100 gepusht hat, da wurden aber im Wesentlichen nur Dateien gelöscht. In 4c06c8b wurde nachträglich ein @author hinzugefügt, aber durch die ganzen Merges auf dem master ist nicht mehr einfach nachvollziehbar, wo die Datei ursprünglich herkam. Dann frage ich mich auch, was bei Commits wie d32ad81 und 2ddac9d passiert ist, solche Commits mit nichts sagender Beschreibung machen die Korrektur nicht gerade einfacher. Probleme mit git dürfen eigentlich auch keine Ausrede für nicht selbst durchgeführte Commits sein, denn dafür gab es eine Vorlesung und eine Übung zu git und auch genug Zeit, ggf. jemanden nach Hilfe zu fragen. (ok wäre aber z. B. Pair-Programming, sofern das eindeutig im Commit gekennzeichnet ist) Sollte irgendein grafischer Aufsatz auf git Probleme gemacht haben (dazu zählt auch die git-Anbindung der IDE), so wurdet ihr (hoffentlich) in Vorlesung und Übung oft genug darauf hingewiesen, dass ihr (außer vielleicht für git diff und git log) keine GUI für git benutzen solltet und wir dafür auch keinen Support anbieten. [Das ist mir zwar primär „egal“, aber weiterhin lässt die Codequalität bei euch sehr zu wünschen übrig: Warum catch(Exception e){} eine schlechte Idee ist, solltet ihr eigentlich in der ersten Übung gelernt haben. Dass @SuppressWarnings, was früher mal in eurem Code war, sollte auch nicht einfach mal so verwendet werden. Eine Vergleich != "" funktioniert höchstens nur zufällig. check und read in Reader können mit den Klassen aus nio (2. Übung) wesentlich kürzer gehalten werden. Eine Instanzvariable namens n mit Package-Visibility (in Tester)? Was soll das sein?]

Nun zu den Einzelleistungen, wie ich sie gerade sehe (falls ihr das anders seht, siehe Vorschlag unten – insbesondere ist es nicht gut, wenn man sich hier nie zu Wort gemeldet hat: ihr solltet alle E-Mails erhalten, sobald hier was passiert):

  • @Bastercall hat genug getan.
  • @MaFeg100 hat ebenfalls genug getan.
  • @AndreasLuepertz Die Babysteps sind nicht mehr vorhanden und werden daher nicht gewertet. fileExport enthält nicht wirklich viel. (nicht ausreichend)
  • @denegro911 4 Commits mit wenig Inhalt (nicht ausreichend)
  • @FoxAlpha hat keine Zeile Java-Code, der irgendetwas zum eigentlichen Programm beträgt, geschrieben (nicht ausreichend)

Ich möchte nun entweder eine vernünftige Schritt-für-Schritt-Anleitung haben, wie man das Programm zu bedienen hat (und zwar so, dass man Test- und Programm-Code NICHT gleichteizig bearbeiten kann [einzige Ausnahme: Refactor], ggf. muss das noch programmiert werden)
und ich sehen kann, dass die Grundanforderungen der Aufgabenstellung erfüllt sind (das sind sie nach meinem aktuellen Eindruck eindeutig nicht und daran zu arbeiten wäre ggf. für oben genannte Leute).
Oder wir treffen uns die Tage einmal persönlich (z. B. direkt nach der Ana2-Klausur), damit ihr mir zeigen könnt, wie das Programm funktioniert und was ihr im Detail programmiert selbst programmiert habt.

@denstr95
Copy link
Collaborator

Wir können uns sehr gere nach der Ana2 Klausur treffen, ich breite dann einen Leptop vor. Wir müssten dann nur gucken, wo wir uns dann treffen.

@Kegny
Copy link
Author

Kegny commented Jul 24, 2016

Dienstag, 12:15 Uhr, im (bzw. falls besetzt vorm) Übungsraum?

@denstr95
Copy link
Collaborator

ja gerne, raum 25.12.02.33 ?

@Kegny
Copy link
Author

Kegny commented Jul 25, 2016

Das wäre Raum 25.22.00.82

@ghost
Copy link

ghost commented Jul 25, 2016

@Kegny
Ich werde auch kommen.

Doch habe ich jetzt noch eine Frage und zwar steht bei mir im Abgabesystem, dass ich nicht bestanden habe. Ist das ein Fehler und wird das nachgetragen, oder stimmt das ?

durchgefallen

@Kegny
Copy link
Author

Kegny commented Jul 25, 2016

@MaFeg100
Ihr könnt alle gerne kommen.

Das, dass bei dir so eingetragen ist liegt daran, dass Projekt 7 nur Jens eintragen kann und er von mir bisher nur die erste vorläufige Korrektur bekommen hat. Das wird noch geupdated.

@ghost
Copy link

ghost commented Jul 25, 2016

@Kegny
Okay danke, dann weiß ich Bescheid

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

6 participants