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
on 2009-03-14 10:02
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
on 2009-03-14 12:49
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
Please log in before posting. Registration is free and takes only a minute.
Existing account
(Switch to SSL-encrypted connection)
NEW: Do you have a Google/GoogleMail or Yahoo account? No registration required!
Log in with Google account | Log in with Yahoo account
Log in with Google account | Log in with Yahoo account
No account? Register here.