Rubino sui binari è un meraviglioso framework per applicazioni web full-stack open source che privilegia la convenzione rispetto alla configurazione.
Grazie ai componenti riutilizzabili e facilmente configurabili normalmente utilizzati per la creazione di applicazioni, la creazione di applicazioni in Rails è più rapida e semplice, con conseguente miglioramento della produttività e della crescita aziendale.
Sta guadagnando terreno tra gli sviluppatori poiché è flessibile, scalabile e facile per gli sviluppatori web scrivere e gestire applicazioni.
Rubino sui binari pone l'accento sull'utilizzo di modelli e principi ingegneristici noti al fine di ridurre il carico di lavoro durante la creazione di applicazioni web.
Anche se esistono diversi metodi per risolvere una sfida di programmazione, Ruby afferma di fare affidamento su modelli comunemente utilizzati che rendono i siti Web Rails più facili da mantenere e aggiornare.
Le librerie open source con blocchi più piccoli di codice Rails che risolvono problemi particolari vengono comunemente utilizzate per ridurre il sovraccarico di sviluppo.
Con l'aiuto di tali blocchi di codice, gli sviluppatori possono inserire gemme stabili e ben testate invece di perdere tempo a scrivere gli stessi tipi di codici. Uno degli strumenti più potenti nella cassetta degli attrezzi di un programmatore Ruby è il modulo.
I moduli forniscono una struttura per raccogliere classi, metodi e costanti di Ruby in un'unica unità denominata e definita separatamente.
Ciò è utile per evitare conflitti con classi, metodi e costanti esistenti e anche per poter aggiungere (mixare) la funzionalità dei moduli nelle tue classi.
Creazione di un modulo: scrivere un modulo è simile a scrivere una classe, tranne per il fatto che inizi la definizione con la parola chiave module anziché con la parola chiave class.
modulo Il mio primo modulo
sicuramente saluta_ciao
mette "Ciao"
FINE
FINE
Poiché non possiamo istanziare il modulo, per utilizzare il modulo dobbiamo estendere e includere il modulo in una classe.
include: mescola i metodi del modulo specificato come metodi di istanza nella classe di destinazione
extend: combina i metodi del modulo specificato come metodi della classe nella classe di destinazione
modulo ReusableModule
def metodo_modulo
inserisce "Metodo modulo: Ciao!"
FINE
FINE
classeClassThatIncludes
includere ReusableModule
FINE
classe ClassThatExtends
estendere ReusableModule
FINE
inserisce “Includi”
ClassThatIncludes.new.module_method # “Metodo del modulo: Ciao!”
mette “Estendi”
ClassThatExtends.module_method # "Metodo modulo: Ciao!"
============================================================
Altro punto sul modulo in Ruby:
1: ) Illustrare le basi della ricerca del metodo:
modulo M
rapporto definitivo
inserisce il “metodo 'report' nel modulo M”
FINE
FINE
classe C
includere M
FINE
classe D<C
FINE
oggetto = D.nuovo
obj.report
Produzione:
#=> metodo 'report' nel modulo M
Flusso di lavoro: Supponiamo che io sia un oggetto Ruby e che mi sia stato inviato il messaggio "report". Devo provare a trovare un metodo chiamato report nel mio metodo
percorso di ricerca. il report, se esiste, risiede in una classe o modulo.
Sono un'istanza di una classe chiamata D. D definisce un report del metodo di istanza?
NO.
D si mescola in qualche modulo?
NO.
La superclasse di D, C, definisce un metodo di istanza del report?
NO.
C si mescola in qualche modulo?
Si m.
M definisce un metodo di report?
SÌ.
Bene! Eseguirò quel metodo.
2:) Definire lo stesso metodo più di una volta:
Se definisci un metodo due volte all'interno della stessa classe, la seconda definizione ha la precedenza sulla prima. Lo stesso vale per i moduli.
modulo InterestBearing
def calcola_interesse
inserisce “Segnaposto! Siamo nel modulo InterestBearing."
FINE
FINE
classe Conto Bancario
includere il cuscinetto di interessi
def calcola_interesse
inserisce “Segnaposto! Siamo nella classe BankAccount."
inserisce "E stiamo sovrascrivendo il metodo calcola_interesse!"
FINE
FINE
conto = Contobancario.nuovo
conto.calcola_interesse
Produzione:
#=>Segnaposto! Siamo in classe BankAccount.
#=>E stiamo sovrascrivendo il metodo calcola_interesse!
3:) Miscelazione in due moduli con un metodo con lo stesso nome definito:
modulo M
rapporto definitivo
inserisce il “metodo 'report' nel modulo M”
FINE
FINE
modulo n
rapporto definitivo
inserisce il “metodo 'report' nel modulo N”
FINE
FINE
classe C
includere M
includere N
FINE
c = C.nuovo
c.report
Produzione:
#=> metodo report' nel modulo N
4:) Includere un modulo più di una volta
classe C
includere M
includere N
includere M
FINE
c = C.nuovo
c.report
#=> metodo report' nel modulo N
Flusso di lavoro:
Potresti aspettarti che quando esegui il metodo report, otterrai la versione di M, perché M era il modulo incluso più recentemente.
Ma includere nuovamente un modulo non fa nulla. Poiché M si trova già nel percorso di ricerca, la seconda istruzione di inclusione M non ha alcun effetto. N è ancora considerato il modulo incluso più recentemente:
5:) Risalendo il percorso di ricerca del metodo con super: all'interno del corpo della definizione di un metodo, puoi utilizzare la parola chiave super per passare alla definizione successiva più alta, nel percorso di ricerca del metodo, del metodo che stai attualmente esecuzione.
modulo M
rapporto definitivo
inserisce il “metodo 'report' nel modulo M”
FINE
FINE
classe C
includere M
rapporto definitivo
inserisce il “metodo 'report' nella classe C”
inserisce "In procinto di attivare il successivo metodo di rapporto di livello superiore..."
super
inserisce "Di ritorno dalla chiamata 'super'."
FINE
FINE
B
C
D
c = C.nuovo
c.report
#=> metodo 'report' nella classe C
Sto per attivare il successivo metodo di rapporto di livello superiore…
Metodo 'report' nel modulo M Di ritorno dalla chiamata 'super'.
RailsCarma ha lavorato su RoR sin dalla sua fase nascente e con una forte forza lavoro addestrata in RoR, è cresciuto fino a diventare un nome di grande fiducia nella consulenza end-to-end, architettura, costruzione, gestione ed estensione di Ruby on Rails ad aziende di tutto il mondo.
Per saperne di più :