Coding Challenge, Kotlin, Spring Boot - Bitte um Feedback

Ich habe für ein Job-Angebot die bisher umfangreichste Coding Challenge ever bekommen, eine ganze Backend-App mit Sicherheit, REST-API Design, Zugriff auf externe API, etc. Das Projekt ist in Kotlin geschrieben und verwendet Spring Boot. Ist noch nicht super hübsch und ein paar Mvc Tests fehlen auch noch. Mein Spring-Foo - insbesondere bezüglich Sicherheit - ist dank Ktor ziemlich eingerostet, das merkt man.

Falls sich jemand (außer CB) meiner erbarmt, wäre ich für jedes Feedback wahnsinnig dankbar:

->Hier stand mal ein Link<-

Muss den Code bis Donnerstag einreichen, dann lösche ich auch den Thread hier.

gerade nur mal schnell durch geklickt
Was mir fehlen würde Wäre logging :wink:
Außerdem Transaktionen, beim Anlegen eines neuen Rezepts hast du ja mehrere Dinge die gespeichert werden. Auf den ersten Blick kann es so dazu kommen dass du ein Rezept drin hast aber weil das Speichern einiger Zutaten fehl schlägt ist es unvollständig in der DB.

Auf den ersten Blick sehe ich nur eine Security Geschichte, unterscheide nicht zwischen „User nicht gefunden“ und „Falsches PW“ weil dann weiß man welche existieren und man könnte dann die PW durchprobieren :wink:

das ist mir jetzt so auf die Schnelle aufgefallen

1 „Gefällt mir“

Hi,

Trivial: aus den Anforderungen- Es fehlt eine setup.MD.

Schau dir mal Spring Bean Validation an:

https://docs.spring.io/spring-framework/reference/core/validation/beanvalidation.html

Gerade weil du die Data von den Entities trennst, solltest du das auch ausnutzen.

In deinem Fall sammelst du die Fehler in eine Liste. Wieso nicht in einer Liste zurück geben? Der zukünftige Client könnte die Fehler besser zu bestehenden Feldern Mappen.

Da es sich um eine reine API handelt, sollte man prüfen, wie die Antworten serialisiert sind.

Hier ein Beispiel: JSON:API — Latest Specification (v1.1)

Da weiß ich immer nicht: Muss das so sein oder ist das mit Kanonen auf kleine Spatzen geschossen.

1 „Gefällt mir“

Danke an euch beide, ich habe die meisten Vorschläge umgesetzt. Ich habe das Projekt jetzt abgeliefert. Ist sicher nicht perfekt, aber für die kurze Zeit ziemlich gut, und ohne Code, den ich als hässlich ansehen würde.

Da bin ich mal gespannt…

Habe den Job bekommen, danke nochmal!

4 „Gefällt mir“