Hallo Mario,

Am 12.10.2007 um 10:27 schrieb Mario Schroeder:
eine Frage, die etwas entfernt mit Rails zu tun hat, aber für mein Railsprojekt wichtig ist, weil es sehr schnell wachsen wird und andere Entwickler dazu stossen werden.

Die Prozesse die abgebildet werden müssen sind erfasst.

Also Dinge wie Check-In-Zyklus, CI, Deployment?

Die Weboberfläche ist designed

Das ist meiner Erfahrung nach von Vorteil (also wenn die Oberfläche am Anfang schon steht).

Wann entwerfe ich das Datenbankmodell und kann ich das zu einem späten Zeitpunkt erweitern und/oder migrieren?

Während der Entwicklung. Rails ist explizit darauf ausgelegt das Datenmodell iterativ zu entwickeln und entsprechend und migrieren:
http://wiki.rubyonrails.org/rails/pages/UnderstandingMigrations

Was aber viel wichtiger ist. Wie organisiere ich meine Arbeit am besten, dass neue Entwickler schnell und einfach den Einstieg finden können.

Rails sieht ja ein Standard-Projektlayout vor, daher ist es meiner Erfahrung nach sehr einfach sich in neue Rails-Anwendungen einzulesen und sich schnell zurecht zu finden.

Dokumentation ist gut, aber gibt es dafür gute Tools oder genügt die Dokumentation im Quellcode?

Zum einen gibt es ja Rdoc (für Doku-Generierung aus dem Code). Außer bei "Library-artigen" Funktionaltäten verwende ich das bei Rails eigentlich sehr selten. Controller sind meist selbsterklärend (wenn man sie entsprechend schlank hält) und die Models sind auch meist sehr deskriptiv.

z.B.
class User < AR::B
 has_many :tickets
 acts_as_searchable
end

Das braucht nun wirklich keine weitere Doku mehr. Meist reicht es, wenn man Code, der auf den ersten Blick nicht verständlich ist in eine Methode mit sprechendem Namen zu extrahieren und man kann sich die zusätzliche Doku sparen.

z.B.
# user can receive credits after 3 months of membership
if user.created_at < 3.months.ago
  send_credits
end

vs.

if user.can_receive_credit?
  send_credits
end

und im User dann eben

def can_receive_credit?
   user.created_at < 3.months.ago
end

Um zu kommunizieren "warum" man etwas tut, gibt es ja noch die Tests (wenn man Test::Unit verwendet) oder Specs (bei RSpec).

Meine persönliche Einstellung zum Thema Doku ist etwa so:
Folgende Fragen will man ja gewöhnlich beantworten:
"Wie wird etwas getan?" -> Code
"Was wird getan?" -> Code (vor allem sprechende Methodennamen)
"Warum wird etwas getan?" -> Tests

Kommentare sind meiner Meinung dann sinnvoll, wenn man irgendwelche obskuren Dinge tut und direkt im Code kommunizieren möchte warum dies so ist # We have to use the strange format YYYY-DD-MM here, because the external interface wants it that way

Das war zwar jetzt irgendwie alles sehr allgemein geraten, aber hat dann doch mit Rails/Ruby zu tun, weil man da aufgrund der Art wie Ruby als Code aussieht, mit relativ wenig Kommentaren/Doku auskommt.

Just my 2 cents... YMMV :)

Gruß,
Hendrik

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

Antwort per Email an