Esiste un sistema standard o convenzionale per l'organizzazione di programmi Ruby multi-file? Ho intrapreso il mio primo grande "progetto" in Ruby, un programma di ricerca che è logicamente organizzato in più file e directory. Ho delineato sotto la mia struttura potenzialità:Sistema per l'organizzazione di programmi Ruby multi-file?
- Il file principale. Questo file implementa la classe di ricerca e il protocollo di ricerca generale.
- Il file di analisi algoritmica. Questo file implementa funzioni che interpretano i risultati della ricerca. directory
- protocolli
- Contiene un file per ogni protocollo per la ricerca.
- Feed Directory
- Parte dello scopo del programma è quello di cercare le notizie archiviato feed. I file per questa funzione vanno in questa cartella.
Tuttavia, il codice ha attualmente una classe (chiamiamolo Searcher), che di ogni protocollo classe di ricerca eredita da (GoogleSearcher < Searcher). Per gestirlo, ho bisogno di includere il file principale in questi file di protocollo (giusto?) Che non sembra possibile data la mia struttura ideale.
Oltre al mio esempio specifico, mi chiedevo se esistessero convenzioni quali "più file anziché meno" o "la struttura logica dei file non è necessaria". È comune avere un file di funzioni "helper" (come in Rails?) Quale livello di astrazione è considerato appropriato?
Infine, ho intenzione di integrarlo in Rails un giorno come una libreria (non un plug-in, ma voglio che funzioni anche da solo). Non so se questo influenzerebbe l'organizzazione.
So che questa è una domanda abbastanza aperta, ma è perché apprezzerei qualsiasi consiglio che sia pertinente in remoto. Grazie in anticipo.
ci sono alcuni semplici strumenti per la generazione di gemme: newgem, gioielliere, ossa. Ho usato newgem per un progetto (che in realtà NON intendeva essere rilasciato come gemma) e ha funzionato abbastanza bene – RyanWilcox
Questo è buono, e lascia solo una domanda senza risposta (in retrospettiva, questa domanda era decisamente troppo ampia.) Esiste un modo per avere un'ereditarietà di classe su più file, dove la classe principale è nel file principale e le classi che ne ereditano sono in file periferici in una sottodirectory? O è un'organizzazione arretrata? –
Ruby è piuttosto clemente quando si tratta di ereditarietà. Se capisco correttamente la tua domanda, sarebbe sicuramente possibile configurarla come descrivi. Senza conoscere alcun particolare del tuo progetto, probabilmente farei la stessa cosa dove una "main class" è nella directory lib/foo/e le classi che ereditano dalla classe principale sono in lib/foo/bar, lib/foo/baz e così via. Dai un'occhiata a gemme come Nokogiri per esempi dal vivo di questo tipo di installazione. – vonconrad