Danke, für Deinen Input.
So wie ich Dich verstehe, werden bei diesem Ansatz wohl oder übel eine ganze Reihe BO-Code in JavaScript implementiert werden.
Dies wollte ich eigentlich überhaupt nicht, denn
- Wie modelliere ich am besten tests? Firewatir wäre eine Möglichkeit ist aber sehr langsam. - Ändere ich das DB-Schema, so muss ich den JavaScript-Code ggf. ändern. Dies widerspricht der ActiveRecord Philosophie, dass alles durch das DB-Layout definiert wird.



Nimmt man beide Punkte zusammen, so gibt dies imho eine teuflische Mischung: Wo knallt der JavaScript-Code, wenn ich ein Feld im DB-Schema umbenenne?


hmm, so rosig ist die Welt ja aber auch in rails ja nicht, oder?! Wenn man in den Views explizit Felder referenziert, die dann aus der Datenbank verschwinden oder dort umbenannt werden, dann knallt es da auch im view - das ändert sich auch mit JavaScript als View nicht - dein View ist also macht die DB-Felder also so oder so explizit und ist daher auch von Änderungen abhängig. Es sei denn, man kommt wirklich mit einer scaffolding-Lösung aus, die das ganze über Introspektion löst. Das scheint aber in den seltensten Fällen wirklich richtig gut bis in alle Verästelungen einer größeren Anwendung hinein zu funktionieren, oder hat da jemand andere Erfahrungen?! Schlimmer wird's dann ja noch, wenn man irgendeine Art von Geschäftslogik auf diesen Feldern abstützt (z.B. Konto nur belasten, wenn Konstostand > 0), dann lässt sich das DB-Schema erst recht nicht mehr ändern, ohne dass es knallt - insgesamt kann ich den Satz, dass __nur__ das DB- Layout die Anwendung definiert, so - zumindest für uns - nicht bestätigen.

Wo knallts's bei uns: In der Regel an den selben Stellen, wo es auch in normalen Views knallt: Wenn ein Feld dazu kommt, dann wird es nicht automatisch angezeigt, da muss man in einer Tabelle das entsprechende Feld dazu tun, den Editoren beibringen was sie wie anzuzeigen haben usw. - die Schichten dazwischen sind davon nicht betroffen: dem .to_json ist es natürlich egal, was es serialisiert...- knallen tut's daher an denselben Stellen, an denen es auch bei der Verwendung von vielen partials und rjs knallt: Nämlich jedesmal, wenn man etwas rendert was nicht mehr da ist oder umbenamst wurde usw.

selenium und firewatir benutzen wir nicht: das ist mir alles zu fragil, zu kompliziert aufzusetzen und man ist eigentlich die meiste Zeit damit beschäftigt, diese Testframeworks zum Laufen zu bringen, aber vielleicht fehlt mir da einfach die Geduld (hat das jemand in aller Schönheit mit Continous Integration und allem am Laufen??!)... Wir testen komplett getrennt, erst den Server, dann die Clients. Beinah jedes js-framework hat eigentlich ganz vernünftige unit-tests (z.B. GWT, http://www.ibm.com/developerworks/java/library/j-cq07247/index.html oder sproutcore, http://wiki.github.com/sproutit/sproutcore/unit-testing oder auch die div. unit-test-frameworks für prototype oder jquery - muss man zwar alles von Hand machen (gwt testen geht allerdings auch von Eclipse aus) und es läuft nicht in der Continous Integration mit, aber es ist viel praktikabler: Reicht in der Regel auch eigentlich aus, weil die beiden Schichten klarer getrennt sind: Man kann ja den Client auch erstmal ohne Server nur mit Mocks entwickeln.... - sooo teuflisch find ich das also eigentlich gar nicht: Man muss da nicht religiös werden, wenn's ans Testen geht: Es geht ja nicht um eine besonders beeindruckende Toolkette, sondern nur darum, Fehler zu finden und rauszuholen, egal wie....

Viele Grüße
Stefan







_______________________________________________
rubyonrails-ug mailing list
[email protected]
http://mailman.headflash.com/listinfo/rubyonrails-ug

Antwort per Email an