Welche Best Practices gelten für die funktionale Programmierung und die Datenbankinteraktion?

8

Ich weiß, dass in reinen objektorientierten Sprachen wie Java normalerweise ORMs wie Hibernate sinnvoll sind. Aber was würde ich tun, wenn ich eine CRUD-artige Funktionalität in Clojure oder Common LISP schreibe?

SQL als Funktionen erster Ordnung weitergeben? Aber ist SQL in HTML-generierenden Code nicht sehr hässlich?

Danke,

Olek

    
mannicken 19.02.2009, 07:41
quelle

3 Antworten

3

Common Lisp ist keine selbstbewusste FP-Sprache. Clojure kann einfach Hibernate verwenden.

Für Common Lisp: Datenbanken . Hier ist ein persistentes Objekt . Und hier ist der erste Teil eines Tutorials, das es mit Hunchentoot, einem CL, verwendet Webserver und dynamisches Webseiten-Toolkit. SQL in CL kann so aussehen (was länger aussieht, als es wirklich ist, weil das SQL horizontal formatiert ist und das CL ist nicht). Und wenn Sie möchten, arbeitet dieser Typ an einem Web-Framework (mit CLSQL und Elephant, das bereits verlinkt ist), das auf Zielstrebigkeit abzielt ein Auge auf die Lichtbogenherausforderung.

EDIT: eine aktuelle Antwort erweitert dies.

    
ayrnieu 19.02.2009 08:22
quelle
1

Ur / Web kann interessant sein, obwohl es nicht auf Lisp basiert: Ссылка

Wie von ihrer Seite zitiert:

  

Ur / Web unterstützt die Erstellung dynamischer Webanwendungen, die von SQL-Datenbanken unterstützt werden. Die Signatur der Standardbibliothek ist derart, dass gut typisierte Ur / Web-Programme in einem sehr weiten Sinn "nicht schief gehen". Sie stürzen nicht nur bei bestimmten Seitengenerationen ab, sondern auch nicht:

     
  • Unter allen Arten von Code-Injection-Angriffen leiden
  •   
  • Ungültiges HTML zurückgeben
  •   
  • Enthält tote Intra-Application-Links
  •   
  • Unstimmigkeiten zwischen HTML-Formularen und den Feldern, die von ihren Handlern erwartet werden
  •   
  • Fügen Sie clientseitigen Code hinzu, der falsche Annahmen über die "AJAX" -Stil-Services macht, die der Remote-Webserver bereitstellt
  •   
  • Ungültige SQL-Abfragen versuchen
  •   
  • Verwenden Sie nicht ordnungsgemäßes Marshalling oder Unmarshalling bei der Kommunikation mit SQL-Datenbanken oder zwischen Browsern und Webservern
  •   
    
Attila Lendvai 09.04.2015 18:29
quelle
0

Eine alternative Gruppe von Common-Lisp-Tools wird in eine andere Antwort

    
Attila Lendvai 19.02.2009 17:29
quelle