Ruby on Rails SS09 07

Loading...

Flash Player 9 (or above) is needed to view presentations.
We have detected that you do not have it on your computer. To install it, go here.

0 comments

Post a comment

    Post a comment
    Embed Video
    Edit your comment Cancel

    Favorites, Groups & Events

    Ruby on Rails SS09 07 - Presentation Transcript

    1. Daniel Dengler web developer Ruby on Rails Workshop SS 2009 „Ruby on Rails“ and the Rails-Logo are registered trademarks of David Heinemeier Hansson – www.rubyonrails.org
    2. 7 Ruby on Rails ActiveRecord (2) Exkurs: Projektplanung
    3. ActiveRecord Relationen
    4. Beziehungstypen • 1:1 • 1:N • N:M • Vererbung
    5. 1:1 Beziehungen 1 1 User Profile
    6. 1:1 Beziehungen 1 1 User Profile users profiles id integer id integer name string user_id integer ... ... date_of_birth date ... ...
    7. 1:1 Beziehungen 1 1 User Profile users profiles id integer id integer name string user_id integer ... ... date_of_birth date ... ...
    8. 1:1 Beziehungen 1 1 User Profile class User < ActiveRecord:Base class Profile < ActiveRecord:Base has_one :profile belongs_to :user end end
    9. 1:1 Beziehungen 1 1 User Profile class User < ActiveRecord:Base class Profile < ActiveRecord:Base has_one :profile belongs_to :user end end Zugriff erfolgt über: user_instanz.profile => liefert das zugeordnete Profil profile_instanz.user => liefert den zugeordneten Benutzer
    10. 1:1 Beziehungen 1 1 User Profile Es kann sinnvoll sein diesen Beziehungstyp in einer Tabelle zu vereinigen
    11. 1:1 Beziehungen User users id integer name string date_of_birth date ... ...
    12. 1:N Beziehungen 1 N Project Task
    13. 1:N Beziehungen 1 N Project Task projects tasks id integer id integer title string project_id integer ... ... title string ... ...
    14. 1:N Beziehungen 1 N Project Task projects tasks id integer id integer title string project_id integer ... ... title string ... ...
    15. 1:N Beziehungen 1 N Project Task class Project < ActiveRecord:Base class Task < ActiveRecord:Base has_many :tasks belongs_to :project end end
    16. 1:N Beziehungen 1 N Project Task class Project < ActiveRecord:Base class Task < ActiveRecord:Base has_many :tasks belongs_to :project end end Zugriff erfolgt über: project_instanz.tasks => liefert die zugeordneten Aufgaben als Array task_instanz.project => liefert das zugeordnete Projekt
    17. N:M Beziehungen N M User Group users group_users groups id integer group_id integer id integer name string user_id integer title string ... ... ... ...
    18. N:M Beziehungen N M User Group users group_users groups id integer group_id integer id integer name string user_id integer title string ... ... ... ...
    19. N:M Beziehungen N M User Group class User < ActiveRecord:Base class Group < ActiveRecord:Base has_and_belongs_to_many :groups has_and_belongs_to_many :users end end
    20. N:M Beziehungen N M User Group class User < ActiveRecord:Base class Group < ActiveRecord:Base has_and_belongs_to_many :groups has_and_belongs_to_many :users end end Zugriff erfolgt über: user_instanz.groups => liefert die zugeordneten Gruppen group_instanz.users => liefert die zugeordneten Benutzer
    21. Vererbung User Manager
    22. Vererbung User users id integer name string type string ... ... Manager Vererbungsmethode: Single Table Inheritance
    23. Vererbung User users id integer name string type string ... ... Manager Vererbungsmethode: Single Table Inheritance
    24. Vererbung User class User < ActiveRecord:Base end class Manager < User end Manager
    25. Lebenszyklus von ActiveRecord Objekten Realisiert durch Callbackmethoden, die beim Aufruf von .save oder .destroy durchlaufen werden. Durch implementieren der Methoden in den eigenen Modellen kann Funktionalität an der gewünschten Position eingefügt werden.
    26. model.save() neu bestehend before_validation before_validation before_validation_on_create before_validation_on_update VALIDIERUNG VALIDIERUNG after_validation after_validation after_validation_on_create after_validation_on_update before_save before_save before_create before_update SPEICHERUNG SPEICHERUNG after_create after_update after_save after_save
    27. model.destroy() before_destroy LÖSCHUNG after_destroy Verwendung: class Profile < ActiveRecord:Base def after_destroy # Bild im Dateisystem löschen end end
    28. Transaktionen Gewährleisten Datenkonsistenz, falls nötig. klassisches Beispiel: Geld von einem Bankkonto auf ein Anderes transferieren
    29. Transaktionen account_a.transaction do account_a.withdraw 100 account_b.deposit 100 end Entweder werden alle Aktionen ausgeführt oder gar keine
    30. EXKURS Projektplanung
    31. 1 Projektbeschreibung
    32. Projektbeschreibung • Einfache Beschreibung des Projektes erstellen • Ziel der Applikation • Zielgruppe • Benutzer / Rollen • Aktivitäten • etc.
    33. Beispiel: PMS Ziel: • Einfache Anwendung zur Verwaltung von Projekten, Aufgaben und Projektmitarbeitern • Auf die wesentlichsten Features reduzieren
    34. Beispiel: PMS Zielgruppe: • kleine, unabhängige Projektteams • wenig IT Erfahrung • kurze, einfache Projekte
    35. Beispiel: PMS Benutzer / Rollen: • Projektverwalter (Admin) • Mitglieder • keine Gäste -> Login nötig
    36. Beispiel: PMS Aktivitäten: • Projekte verwalten (Admin) • Benutzer verwalten (Admin) • Benutzer Projekten zuweisen (Admin) • Aufgaben verwalten (Alle)
    37. 2 Features
    38. Features • Aus der Projektbeschreibung ergeben sich verschiedene Features • Features in kleinen Einheiten festhalten • Möglicherweise hierarchisch Gliedern • Features priorisieren (Auf Abhängigkeiten, Machbarkeit und Aufwand achten!) • In abgeschlossene Abschnitte zusammenfassen
    39. ❑ Projekte • ❑ anlegen • ❑ einsehen • ❑ bearbeiten • ❑ löschen ❑ Attribute • ❑ Titel • ❑ Beschreibung • ❑ Fortschritt • ❑ Zeitstempel • ❑ Aufgaben -> Aufgabe ❑ Aufgaben • ❑ anlegen • ❑ einsehen • ❑ bearbeiten • ❑ löschen ❑ Attribute • ❑ Titel • ❑ Details • ❑ Status • ❑ Zeitstempel • ❑ Projekt -> Projekt • ❑ Bearbeiter -> Benutzer ❑ Benutzer • ❑ anlegen • ❑ einsehen • ❑ bearbeiten • ❑ löschen • ❑ Berechtigungen ❑ Attribute • ❑ Vorname • ❑ Nachname • ❑ E-Mail • ❑ Kennwort • ❑ Zeitstempel • ❑ Admin • ❑ Projekte -> Projekt • ❑ Aufgaben -> Aufgabe ❑ Persönliche Startseite • ❑ zugewiesene Aufgaben • ❑ offene Aufgaben in Projekte an denen Benutzer betiligt ist ❑ Suchfunktion • ❑ Volltextsuche ❑ Filterfuktionen • ❑ Projekt • ❑ Aufgaben Status ❑ E-Mail Benachrichtigungen • ❑ Benutzer wurde Projekt zugewiesen • ❑ Benutzer wurde aus Projekt entfernt • ❑ Aufgabe wurde erstellt • ❑ Aufgabe wurde Benutzer zugewiesen • ❑ zugewiesene Aufgabe wurde geändert
    40. ❑ Projekte sehr hoch • ❑ anlegen sehr hoch • ❑ einsehen sehr hoch • ❑ bearbeiten sehr hoch • ❑ löschen sehr hoch ❑ Attribute sehr hoch • ❑ Titel sehr hoch • ❑ Beschreibung hoch • ❑ Fortschritt niedrig • ❑ Zeitstempel sehr hoch • ❑ Aufgaben -> Aufgabe hoch ❑ Aufgaben hoch • ❑ anlegen hoch • ❑ einsehen hoch • ❑ bearbeiten hoch • ❑ löschen hoch ❑ Attribute hoch • ❑ Titel hoch • ❑ Details mittel • ❑ Status hoch • ❑ Zeitstempel hoch • ❑ Projekt -> Projekt hoch • ❑ Bearbeiter -> Benutzer niedrig ❑ Benutzer mittel • ❑ anlegen mittel • ❑ einsehen mittel • ❑ bearbeiten mittel • ❑ löschen mittel • ❑ Berechtigungen niedrig ❑ Attribute mittel • ❑ Vorname mittel • ❑ Nachname mittel • ❑ E-Mail mittel • ❑ Kennwort mittel • ❑ Zeitstempel mittel • ❑ Admin mittel • ❑ Projekte -> Projekt niedrig • ❑ Aufgaben -> Aufgabe niedrig ❑ Persönliche Startseite niedrig • ❑ zugewiesene Aufgaben niedrig • ❑ offene Aufgaben in Projekte an denen Benutzer betiligt ist niedrig ❑ Suchfunktion • ❑ Volltextsuche ❑ Filterfuktionen • ❑ Projekt • ❑ Aufgaben Status ❑ E-Mail Benachrichtigungen • ❑ Benutzer wurde Projekt zugewiesen • ❑ Benutzer wurde aus Projekt entfernt • ❑ Aufgabe wurde erstellt • ❑ Aufgabe wurde Benutzer zugewiesen • ❑ zugewiesene Aufgabe wurde geändert
    41. 3 Datenmodell
    42. Datenmodell • Objekte identi zieren • Attribute identi zieren • Verbindungen identi zieren
    43. Objekte • Projekte • Aufgaben • Benutzer
    44. Attribute project task user title title rstname description details lastname progress state email timestamps timestamps password admin timestamps
    45. Attribute project task user title title rstname description details lastname progress state email timestamps timestamps password admin timestamps progress kann berechnet werden
    46. Attribute project task user title title rstname description details lastname timestamps state email timestamps password admin timestamps
    47. Verbindungen
    48. Verbindungen 1 has many n project task n m n created works on many many is assigned n 1 to many 1 user
    49. Verbindungen project task created assigned to user
    50. 4 Struktur
    51. Struktur • Sitemap • Work ows • Zustände • etc.
    52. Home projects users contact view project edit project view user new user edit user edit task
    53. 5 User Interface
    54. User Interface • Gestaltungsziele • Inspiration • Skizzen • feinere Skizzen • Wireframes
    55. Gestaltungsziele • klar • sauber • schnell • übersichtlich • benutzbar • kompakt • etc.
    56. Inspiration • ähnliche Anwendungen • andere Anwendungen • Design-Verzeichnisse • Pattern-Verzeichnisse • eigene Erfahrung • Experimente • etc.
    57. Skizzen & Wireframes
    58. Werkzeuge (basis) • Papier • Bleistift • Buntstifte / Marker • Künstler-Radiergummi
    59. Skizzenset (1) • Papier • Skizzenbuch • Markerpapier (beschichtetes Spezialpapier) • große Karteikarten • Künstler-Radiergummi • Spitzer
    60. Skizzenset (2) • Stifte • Druckbleistift (verschiedene Stärken) • Buntstift (hellblau) • Fine-Liner (schwarz, verschiedene Stärken) • Marker (dick, dünn) • schwarz, grau (warm + kalt) = Layout • hellblau = allgemeine Markierungen • rot, gelb, grün = spez. Markierungen
    61. ToDo projects users contact You are logged in as Hans Maulwurf | logout Projects listing Create new project project one Title project two project three Description project four project five project six create project Ruby on Rails Workshop SS 2009
    62. ToDo projects users contact You are logged in as Hans Maulwurf | logout Project with a long long title hide details Far far away, behind the word mountains, far from the countries Vokalia and Consonantia, there live the blind texts. Separated they project one live in Bookmarksgrove right at the coast of the Semantics, a large language ocean. A small river named Duden flows by their place and supplies it with the necessary regelialia. It is a paradisematic country, in which roasted parts of sentences fly into your mouth. project two Progress Members add members project three 50 % Hans Maulwurf Hans Maulwurf project four Hans Maulwurf Hans Maulwurf 5 / 10 Tasks completed Hans Maulwurf Hans Maulwurf project five Hans Maulwurf project six Tasks title description Assigned to nobody create task Task one Task one Far far away, behind the word mountains, far from the countries Vokalia and Consonantia, there live the blind texts. Separated they live in Bookmarksgrove right at the coast of the Semantics, a large language ocean. A small river named Duden flows by their place and supplies it with the necessary regelialia. It is a paradisematic country, in which roasted parts of sentences fly into your mouth. Task one (assigned to Hans Maulwurf) Task one
    63. ToDo projects users contact You are logged in as Hans Maulwurf | logout Project with a long long title hide details Far far away, behind the word mountains, far from the countries Vokalia and Consonantia, there live the blind texts. Separated they project one live in Bookmarksgrove right at the coast of the Semantics, a large language ocean. A small river named Duden flows by their place and supplies it with the necessary regelialia. It is a paradisematic country, in which roasted parts of sentences fly into your mouth. project two Progress Members add members project three 50 % Hans Maulwurf Hans Maulwurf project four Hans Maulwurf Hans Maulwurf 5 / 10 Tasks completed Hans Maulwurf Hans Maulwurf project five Hans Maulwurf project six Tasks title description Assigned to nobody create task Task one Task one Far far away, behind the word mountains, far from the countries Vokalia and Consonantia, there live the blind texts. Separated they live in Bookmarksgrove right at the coast of the Semantics, a large language ocean. A small river named Duden flows by their place and supplies it with the necessary regelialia. It is a paradisematic country, in which roasted parts of sentences fly into your mouth. Task one (assigned to Hans Maulwurf) Task one Task one Task one Task one Task one Task one Ruby on Rails Workshop SS 2009
    64. ?

    + Daniel DenglerDaniel Dengler, 6 months ago

    custom

    215 views, 0 favs, 0 embeds more stats

    More info about this document

    © All Rights Reserved

    Go to text version

    • Total Views 215
      • 215 on SlideShare
      • 0 from embeds
    • Comments 0
    • Favorites 0
    • Downloads 0
    Most viewed embeds

    more

    All embeds

    less

    Flagged as inappropriate Flag as inappropriate
    Flag as inappropriate

    Select your reason for flagging this presentation as inappropriate. If needed, use the feedback form to let us know more details.

    Cancel
    File a copyright complaint
    Having problems? Go to our helpdesk?

    Categories