1

在設計上有一些問題,並希望我可以在這裏尋求建議。接受Grails可能是完全錯誤的工具,但這就是生活。grails設計類和外部數據(電子表格)

所以一直在網上應用程序工作,基本上只是從谷歌電子表格提供大量的信息,併發送一些更新回來。我已經設法使其大部分工作,但決定重寫它,以擺脫我荒謬的spaggeti代碼以及在整個項目中散落的許多碎片代碼。

該系統比較小,有兩三個用戶。數據量也很小。一個工作表,最多500行(四列),另一個工作表可能有5000個(四列)。所有這些都很小,但我需要它(呃,想要它)留在谷歌電子表格和應用程序從那裏餵養。

有三類,我需要這個工作, 谷歌認證類不斷密鑰和標記信息的話語,以谷歌 谷歌電子表格類保持源電子表格上的信息 谷歌數據錄入保持基於兩個電子表格的信息在一個唯一的ID

所以這裏是我的問題,我應該如何定義這些類。以爲我會使用域類,但後來才意識到這些存儲在數據庫中。有沒有一種保持域類依賴會話的方法,I.E.,兩個用戶可以在同一臺服務器上使用相同的應用程序,但從不會看到其他每個數據,並且數據在註銷時被破壞。如果沒有,是否還有其他一些我可以使用的類,類似於Domain類,但保留在內存中的用戶/會話特定。

回答

2

我不太確定你對這些課程的要求是什麼,但是這裏有一些想法。

首先,您可能想問問他們是否不能僅僅是src/groovy中的「正常」類。我在這裏說「正常」,因爲它們可能只是封裝了一些數據和行爲,並且您有責任創建它們的實例並在需要時適當調用方法。

但是,如果你希望將一些數據和行爲聯繫到用戶會話(如你似乎,因爲你問會話相關的領域類),您可能需要使用一個Grails Service with session scope。當你這樣做時,Grails會爲你的應用程序的每個會話使用一個不同的服務實例,並在同一個會話中重複使用同一個實例直到它結束。

你也可以使用一個位的每一件事情,使用與會話範圍一個服務,並有代表您從控制器到服務,反之亦然周圍傳遞數據的其他類。例如,如果您需要驗證和數據綁定,這些實際上可能是Command Objects

+0

非常感謝您埃利亞斯,會投它有用,但沒有足夠的信譽做那種東西呢。我想我會接受你的建議,使用會話範圍的實際數據,我想保持交通應用程序之間和google下來一點,然後用普通班的休息。這應該工作正常,可能是有點棘手,來確保平穩回調函數,但是,嘿,有時通心粉在您的應用程序屬於。 – vrghost

+0

不客氣,很高興它很有用。是的,它可能需要一些工作來粘合位,但如果它運作良好,嘿,意大利麪! =) – elias