Forum: Rails Germany Aufbau und Struktur

909a70ada757f2fe491fbdb87231fa3f?d=identicon&s=25 Rails Camper (railscamper)
on 2009-03-14 10:02
(Received via mailing list)
Eine Frage an die Design Fetischisten unter Euch.

Ich bin gerade dabei eine kleine Railsanwendung zu bauen und hänge etwas
in der Luft. Derzeit liegt alles in einem Controller - leider - von
gutem Design kann man da nicht gerade sprechen.

Problemstellung:

Folgendes Szenario. ich versuche es mal in einzelne schritte aufzuteilen
 1. Benutzer gibt Suchquery an und schickt ab
 2. das query sucht die ersten 10 Treffer bei google
 3. diese 10 Treffer werden dann mit einer zweiten abfrage jeweils
gecheckt
 4. Das Ergbnis hieraus wird dann dem Benutzer angezeigt...

 so Preisfrage, wie mache ich sowas schnell und performant und vor allem
"Railslike". Vor allem woran erkenne ich dass der User der gerade die
Anfrage abgeschickt hat auch der ist, der das Ergebniss bekommen soll?

Hilfe

Mario

--

Mario Schröder | http://www.ironschroedi.com/de/
Office: +49 361 2152062
Phone: +49 34464 62301 Cell: +49 163 27 09 807
http://www.xing.com/go/invite/6035007.9c143c
515b99d3ccd898a21eb8f2cce3c6bb77?d=identicon&s=25 Robert Retzbach (rretzbach)
on 2009-03-14 12:05
Hi, ich bin kein sehr geübter Railser, aber vielleicht kann ich schonmal
ein bisschen die Diskussion in den Gang bringen :)

Rails Camper wrote:
> Eine Frage an die Design Fetischisten unter Euch.
>
> Ich bin gerade dabei eine kleine Railsanwendung zu bauen und h�nge etwas
> in der Luft. Derzeit liegt alles in einem Controller - leider - von
> gutem Design kann man da nicht gerade sprechen.
Ich gehe jetzt einfach mal davon aus, dass du schon Views und Models
benutzt und lediglich die ganze Web-Kommunikation im Controller
abwickelst.

>
> Problemstellung:
>
> Folgendes Szenario. ich versuche es mal in einzelne schritte aufzuteilen
>  1. Benutzer gibt Suchquery an und schickt ab
>  2. das query sucht die ersten 10 Treffer bei google
>  3. diese 10 Treffer werden dann mit einer zweiten abfrage jeweils
> gecheckt
>  4. Das Ergbnis hieraus wird dann dem Benutzer angezeigt...
Also wenn du nichts persitent halten willst, fallen hier bis auf den
User schonmal die Models weg.

>
>  so Preisfrage, wie mache ich sowas schnell und performant
Mit dem "Internet" als Bottleneck würde ich erstmal die Performance
außer Acht lassen. Da kannst du dich später besser drum kümmern, wenn
dein Design deine Applikation wartbarer macht.

> und vor allem "Railslike".
Ich würde eine Zusatzbibliothek anlegen die ein Suchquery-Objekt annimmt
und 10 Treffer-Objekte von Google liefert. Diese sprichst du dann im
Controller an (Query von Benutzerinteraktion nutzen). Anschließend
könntest du die Treffer-Objekte sich selbst "checken" lassen. Und je
nachdem kannst du dann eine Liste von Treffer-Objekten als
Instanzvariable speichern und dann in der View iterieren und einzeln
anzeigen. Dazu kannst du dir auch einen Helper schreiben, wenn die View
zu unübersichtlich wird.

> Vor allem woran erkenne ich dass der User der gerade die
> Anfrage abgeschickt hat auch der ist, der das Ergebniss bekommen soll?
Egal ob du synchron oder asynchron arbeitest, das sollten die Frameworks
für dich regeln. Also mach dir darüber keine Gedanken :)

Gruß
Robert
909a70ada757f2fe491fbdb87231fa3f?d=identicon&s=25 Rails Camper (railscamper)
on 2009-03-14 12:49
(Received via mailing list)
Robert Retzbach wrote:
> Ich gehe jetzt einfach mal davon aus, dass du schon Views und Models
> benutzt und lediglich die ganze Web-Kommunikation im Controller
> abwickelst.
>
>
Ja eine einfache rudimentäre Version die die Ausgabe übernimmt gibt es
bereits. Allerdings müssen hier die Ergebnisse von Hand eingegeben werden.
Diesen Schritt würde ich gerne umgehen bzw. wegfallen lassen.
> Also wenn du nichts persitent halten willst, fallen hier bis auf den
> User schonmal die Models weg.
>
Es muss nicht persistent gehalten werden, wenn es allerdings notwendig
ist, dann kann es aber so sein.
In meiner Idee greife ich auf eine persisitent Lösung zurück, ist aber
alles andere als schön, denn alleine die Datenbankanfragen sind mit
knapp 1sek pro Speichervorgang ziemlich langsam.
> Mit dem "Internet" als Bottleneck würde ich erstmal die Performance
> außer Acht lassen. Da kannst du dich später besser drum kümmern, wenn
> dein Design deine Applikation wartbarer macht.
>
>
Das war der Sinn der Sache, wie gesagt die erste Version funktioniert.
Aber gerade jetzt wenn wir von wartbarem Code sprechen sind meinem
Know-How Grenzen gesetzt.
>
>
Meinst du mit einer Zusatzbibliothek ein eigene Lib hierfür anlegen?
> Egal ob du synchron oder asynchron arbeitest, das sollten die Frameworks
> für dich regeln. Also mach dir darüber keine Gedanken :)
>
Ich hatte schon daran gedacht, dass ich die Anfrage und Ergebnisse an
die Session binde, allerdings war diese Lösung zwar für einmalige
Abfragen okay, wenn aber zwei Abfragen innerhalb einer Session abgesetzt
werden - hinkt auch diese Lösung schon....

Danke schon einmal an Robert,

Mario

--

Mario Schröder | http://www.ironschroedi.com/de/
Office: +49 361 2152062
Phone: +49 34464 62301 Cell: +49 163 27 09 807
http://www.xing.com/go/invite/6035007.9c143c
This topic is locked and can not be replied to.