Giter Site home page Giter Site logo

kirjanystaevaet's Introduction

Hello! 👋

kirjanystaevaet's People

Contributors

ca057 avatar sunflower90 avatar

Watchers

 avatar  avatar  avatar

kirjanystaevaet's Issues

Javadoc schreiben

Erläuterungen schreiben. Wenn Interface vorhanden, Javadoc dort schreiben und nicht in der Impl.

Vorgehensweise: Siehe E-Mail.

  • {@code wort}: Schreibt "wort" in einer anderen Schrift. Verwendung bei Variablennamen im Fließtext o.ä.
  • {@link XY}: Verlinkung von Klassen/Methoden im Fließtext
  • {@see XY}: Verweise auf andere Klassen/Methoden am Ende von Javadoc, die für die dokumentierte Klasse / Methode von Relevanz sind.
  • {@see XY#z}: Verweise auf Methode z in Klasse XY

Errorcode Enums anstatt von Exceptions

Thomas hat vorgeschlagen, anstatt Exceptions zu werfen, wenn möglich Errorcode-Enums zu verwenden.
D.h.: Wenn man etwas löschen will, was nicht vorhanden ist, wird das CategoryError.DoesNotExist Enum zurckgegeben.
Die Rückgabe kann dann eine Ebene drüber geprüft werden und dementsprechend darauf reagiert werden.
Was haltet ihr davon?

Einträge mehrfach in der Datenbank vorhanden?

Kann es sein, dass Einträge mehrfach in der Datenbank vorhanden sind? Wenn man z.B. BookService.getBookByIsbn aufruft, kann es sein, dass das Ergebnis der Datenbankabfrage zweimal dasselbe Item enthält, was eigentlich nicht sein darf. Die ISBN ist doch der Key Oo

"Archivierung" der Orders

Zu diesem Orderproblem in der Datenbank.

Es soll dem Nutzer ermöglicht werden, seine Bestellungen, die er getätigt hat, einzusehen.
Problem: Ändern sich Daten in Book (Preis!), ändern die sich auch in der Order. Das sollte nicht sein.

Lösungsidee:
Es wird eine weitere Tabelle "Bestellliste" (Namensvorschläge gerne gehört) zwischen Book und Order gelegt. Die enthält als Identifizierer die Ordernumber, außerdem die ISBN (um wieder auf alle Daten von Book zu kommen), dann den Preis (Preis von Book zum Zeitpunkt der Bestellung) und die Anzahl des bestellten Produkts.
Order widerum enthält mehrere Bestelllisten (Name nicht gut gewählt, was haltet ihr von Orderitems?).

Zur Veranschaulichung seht eine Skizze des Schemas im Anhang.

Die Frage ist: Was außer Preis muss außerdem "archiviert" werden. Meiner Meinung nach nichts. Ändern sich andere Daten (Autor, Titel) dann haben wir auch ein anderes Bookobjekt mit einer anderen ISBN. Und Beschreibung und Bild empfinde ich nicht als wichtig genug zum Archivieren, weshalb da immer auf die Daten des aktuellen Bookobjekts zugeriffen werden sollte.

Ich bitte um ein Feedback, was ihr von diesem Schema haltet.
img_20160106_112119

NullPointer bei getAllCategories

Ich habe festgestellt, dass es zu Fehlern kommt, wenn man z.B. in der View auf Java klickt.

Das lässt sich auf folgendes zurückführen:
Es wird wohl CategoryService.getAllCategories aufgerufen.
Diese Methode ist jedoch nicht implementiert.
Es ist nur eine CategoryService.getAllCategoryNames implementiert, die eben alle CategoryNames liefert (als List)

Die Frage hier: Was braucht ihr an der Stelle? Wenn die Strings, verwendet bitte die entsprechende Methode.
Wofür soll die andere Methode sein? Um die IDs zu bekommen? Oder die Categories als Objekte (List)? Sagt, was hier sinnvoll wäre (wenn überhaupt) und ich implementiere das!

DB-Connection TimeOut

Nach ein paar Minuten: com.mchange.v2.resourcepool.CannotAcquireResourceException: A ResourcePool could not acquire a resource from its primary factory or source

Nutzerprofil: Profilbilder nicht zu den anderen statischen Ressourcen legen

Damit wir dran denken:
Da Zugriffe auf alle statischen Ressourcen (/css/.., /img/.., /js/..) keinerlei Authentifizierung erfordern, dürfen wir (falls es welche geben sollte) Nutzerbilder nicht in diesen Ordnern ablegen. Wir müssen uns irgendeinen Bereich schaffen, in dem wir diese "sensiblen" Informationen ablegen können.

HTTP 403 bei login - Zugriff auf Mein Konto daher nicht möglich

Die Standardimplementierung für Spring-Security habe ich eingebaut, damit sollte ein Login eigentlich möglich sein. Derzeit ist das allerdings nicht möglich aufgrund der folgenden Fehlermeldung:

HTTP Status 403 - Invalid CSRF Token 'null' was found on the request parameter '_csrf' or header 'X-CSRF-TOKEN'.

→ Habe ich bei der Implementierung etwas übersehen?
→ Fehlt noch etwas?

Neu angelegte Datensätze sind nicht persistent

(Getestet habe ich das mit Autor:in (darauf bezieht sich im folgenden der "Datensatz")): Lege ich einen neuen Datensatz an und lade die Seite neu, existiert dieser in der Datenbank (siehe Autor:innen
löschen in der Dropdown-Liste). Ich kann mich auch aus- und einloggen, und der Datensatz ist weiterhin vorhanden. Falls aber der Security Context gecleart wird (siehe Console in STS, passiert nach einiger Zeit oder wenn man schnell oft neu lädt (so erscheint es mir zumindest)), ist nach einem erneuten Login (muss gemacht werden, weil man rausgeschmissen wird) der Datensatz nicht mehr vorhanden. Da wird also irgendwas noch nicht so absolut richtig abgespeichert.

Suche umbauen: Autor*in trennen in Vor- und Nachname

Bei der Implementierung der getBooksByMetadata-Methode sind einige Fragen für mich offen:

  • Der Nutzer gibt in der Suche bei Autor einen Namen ein --> Welches Searchfield muss ich nehmen? Oder ändern wir das Frontend, so dass bei der Suche Vor- und Nachname eingegeben werden muss?
  • Das Jahr, welches bei der Suche eingegeben wird entspricht dem pubdate-Key?

Login-Views korrekt aufbauen

Wie sehen die einzelnen Logins aus? Entsprechend sollten die Views definiert werden.

Der Nutzer muss eine Email eingeben? Als input-type email verwenden etc.

Services umstrukturieren

Es würde sich für die Views anbieten, die Services abzuändern. Vermutlich reicht es, wenn wir mit einem weiterarbeiten und dann z.B. eine Methode getAll(Enum entity) haben. MMn würde sich das auch vom Abstraktionslevel auf dieser Ebene anbieten.

Klassen absichern (Sichtbarkeit, final)

Einschränken der Sichtbarkeit von Methoden / Variablen so weit wie möglich -> package private bzw. private
Variablen als final markieren, falls möglich und sinnvoll
Parameterabfrage einbauen

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.