Come organizzare una grande applicazione Rails?

3

Sto lavorando a un grande progetto Rails (livello ERP). Abbiamo 150 tavoli e oltre 150 modelli. Ci vogliono minuti per trovare un modello. Dovremmo aggiungere tutti i modelli sotto la cartella dei modelli o dovremmo inserirli in diverse sottocartelle? La stessa cosa vale per i controller e le viste.

    
posta Metin 10.01.2011 - 00:48
fonte

2 risposte

3

Penso che tu stia correndo nei limiti di una singola applicazione Rails. Proprio come avere troppi codici in un modulo, sembra che tu abbia troppi moduli in una sola applicazione.

Dovresti prendere in considerazione la possibilità di suddividerlo in più applicazioni utilizzando un modello di servizio, oppure potresti anche seguire il percorso dei plugin o guardare ancora meglio alla nuova struttura del motore.

Questo ti avvantaggerà in molti modi. Ti costringerà ad esercitare una buona incapsulamento e ad avere buoni punti di interfaccia testabili tra i pezzi.

Good Luck

    
risposta data 11.01.2011 - 18:16
fonte
0

Non penso sia necessario.
Fare la rotta dello spazio dei nomi che hai menzionato (per i modelli in directory separate) è quello che farei.

Vorrei inoltre analizzare ulteriormente il problema delle prestazioni correnti. Solo avere 150 modelli / tabelle non dovrebbe causare più di una frazione di secondo per essere in grado di trovare e utilizzare il modello! In realtà è la query db stessa che richiede molto tempo (quando non viene memorizzata nella cache)? Ciò può essere risolto in molti modi (suddivisione dei dati, aggregazione dei dati, aggiunta di indici, modifica delle query per renderli più performanti, ecc.

Potresti o meno dover fare controllori e viste in directory separate.

Per accedere alle cose organizzate in questo modo, devi solo utilizzare :: , ad es. se metti molti modelli di camere da letto e solai, seminterrati, ecc. in una sottodirectory "edifici" e poi vuoi accedervi nel controller, usa :: , ad es. attics = Buildings :: Attic.all

    
risposta data 05.03.2012 - 01:27
fonte

Leggi altre domande sui tag