Salve a tutti, vorrei iniziare a sviluppare con ruby on rails. Fino ad
ora
ho lavorato solamente con php utilizzando map su mac.
Da una settimana circa sto tentando di capire da dove iniziare ma con
scarsi risultati. Quello che correi fare :
1 - preparare l’ambiente di sviluppo (mac con lino) per creare
applicazioni
web
2- avere una guida per iniziare da zero (in inglese o in italiano
indifferente).
Ho iniziato a leggere Ruby on Rails For Dummies ma a parte il fatto che
la
guida piuttosto datata (2007) ed “windows oriente” i tools che
consiglia non esistono pi o sono stati integrati con altri tools (ad
esempio RADRAILS con APTANA STUDIO 3
Altre guide online dicono ognuna di installare tools diversi Dan Benjamin e come questa ce ne
sono
decine, ognuna con strumenti differenti.
1 - preparare l’ambiente di sviluppo (mac con lino) per creare applicazioni
web
Quello che va per la maggiore su Mac OSX RVM http://rvm.beginrescueend.com/ e homebrew o macports per gestire
eventuali
dipendenze C come imagemagick, o databases (pgsql, mysql, redis).
2- avere una guida per iniziare da zero (in inglese o in italiano
indifferente).
Prova con il classico Search - la
quarta edizione aggiornata all’ultima versione del framework.
Parti dal linguaggio. Rails un framework scritto in Ruby, quindi
innanzi
tutto devi conoscere almeno gli elementi essenziali del linguaggio Ruby.
E’ come voler sviluppare in Spring senza conoscere Java o Symfony senza
conoscere PHP.
Ti consiglio di cominciare dallo studio del linguaggio Ruby. Sperimenta
un
po’ con Ruby (ad esempio, se proprio vuoi interfacciarti al web puoi
giocare un po’ con Rack http://rack.rubyforge.org/), dopo di che
quando
ti sentirai sufficientemente confidente puoi cominciare a maneggiare
Rails.
Ci sono degli argomenti di Ruby che non puoi non conoscere se vuoi
avvicinarti a Rails (cos come qualsiasi altro framework Ruby-based) o ti
riuscir impossibile non andare avanti di copia-incolla. Argomenti come
Moduli, Classi, Mixin, Blocchi, Simboli per arrivare a Gem, RubyGems e
dipendenze, nonch ambiente di sviluppo e convenzioni.
Concordo in parte, tryruby e qualche mini progettino in locale,
slegato da rails) sono sicuramente propedeutici ad una comprensione
“corretta” di rails.
Ovviamente non e’ necessario diventare un gran maestro di ruby prima
di poter assaggiare rails
Parti dal linguaggio. Rails un framework scritto in Ruby, quindi innanzi
tutto devi conoscere almeno gli elementi essenziali del linguaggio Ruby.
non sono d’accordo. Non bisogna sapere ruby (almeno per iniziare con
rails).
non che ci sia molto ruby in:
has_many :comments
O meglio, c’e’ un sacco di ruby (symbols, metodi, etc) ma nel mio
modesto parere non e’ necessario sapere Ruby per iniziare con rails,
anzi forse e’ anche un po controproducente (finisce che riscrivi dei
metodi che gi’ esistono)
Io partirei da un classico:
ma e’ per rails 2.1 e potresti avere dei problemi se usi rails 3
O meglio, c’e’ un sacco di ruby (symbols, metodi, etc) ma nel mio modesto
parere non e’ necessario sapere Ruby per iniziare con rails, anzi forse e’
anche un po controproducente (finisce che riscrivi dei metodi che gi’
esistono)
La vedo difficile, dato che se non conosci i fondamenti di Ruby non sai
neanche cosa sia un metodo e cosa una classe…
non che ci sia molto ruby in:
has_many :comments
Ed in che linguaggio pensi che sia scritta la macro has_many? Che
linguaggi
pensi che stai usando per invocare la macro?
Se per te programmare significa scrivere assemblare chiamate a metodi
Rails
(che poi peraltro sono metodi Ruby) senza capire cosa questi facciano e
perch agiscano in questo modo, allora hai ragione.
Ma se ti sei mai trovato a dover debuggare un problema, ottimizzare
un’applicazione o banalmente capire che cosa stai scrivendo… beh,
allora
non puoi pensare di non sporcarti le manu su Ruby.
E poi, parliamoci chiaro… qualsiasi cosa che tu scrivi con Rails *
Ruby*.
Non esiste differenza. Anche quando scrivi un task di Rake, un finder di
ActiveRecord… tutto Ruby.
Pensi che una persona che non sabbia che cosa sia un simbolo, una lambda
o
un metodo di classe capisca sia in grado di scrivere questa riga di
codice
senza averla copiata da qualche parte e capendo cosa effettivamente essa
produca?
class Model
scope :within_dates, lambda { |date| where(:created_at =>
date.to_date…Date.today) }
end
Io ho i miei dubbi…
Certo, per cominciare a giocare su Rails non serve avere le competenze
di
Aaron P… ma di certo non puoi fare a meno di capire la
differenza
tra una stringa ed un simbolo o un modulo ed una classe o extend ed
include.
poi decide di passare alla modalit’ democristiana del tipo “abbiamo
ragione tutti” (ma senza vitalizio noi)
poi decide che alla fine un Flame e’ un Flame quindi:
“E’ tutto Ruby ma io me ne fotto, pensavo fosse Perl”
“Si impara a parlare, non si impara a parlare in italiano (o in inglese)
e modestamente, a me mi hanno imparato a parlare assai bene”
“Se avessi dovuto imparare le basi di ogni linguaggio per tutti i
framework che ho testato, sarei ancora li a giocare con gli Unsigned
Int”
“ora mi sto spupazzando Unity3D, scripting language disponibili:
Javascript, C# e Boo (cosa sia Boo poi boh, non si sa). Io ci scrivo gli
script in C# ma non ho mai studiato C#, che faccio mi leggo tutta la
documentazione della microsoft? Non sia mai!”
Parti dal linguaggio. Rails è un framework scritto in Ruby, quindi innanzi
tutto devi conoscere almeno gli elementi essenziali del linguaggio Ruby.
non sono d’accordo. Non bisogna sapere ruby (almeno per iniziare con rails)….
non che ci sia molto ruby in:
has_many :comments
Ciao,
io ho seguito proprio questo approccio: RoR senza sapere niente di ruby.
Va benissimo se:
non ti servono risultati concreti, vuoi solo divertirti a mescolare
incantesimi arcani per vedere l’effetto che fa;
ti piace fare programming by coincidence, e ti fa schifo sapere cosa
stai facendo e perché;
preferisci sbatterti per una settimana su un problema idiota
piuttosto che studiare due ore;
ami inventare e reinventare la stessa identica ruota sghemba così,
senza motivo;
quello che potresti fare con tre righe di codice, preferisci farlo
con cinquanta;
odi quando segui un tutorial e tutto va bene, ti piace molto di più
quando non funziona una mazza di niente e non sai perché.
Premessa: il codice di Ruby on Rails è sterminato, per forza di cose
va preso un po’ così come viene, senza cercare troppo di capire che
fa, altrimenti ci vogliono anni.
Però, specie all’inizio, alcune cose aiutano. Nel mio caso, le cose
più oscure sono state:
distinzione tra classi e istanze, distinzione fra metodi di classi e
metodi di istanze;
class variable (anche loro nel contesto della classe vs dell’istanza);
blocchi (closure): cosa sono e che fanno;
moduli e loro inclusione.
Quindi suggerisco un approccio misto, ossia: parti dai tutorial RoR;
quando qualcosa non funziona, tenta di capire perché ma, soprattutto:
2011/12/12 Davide R. [email protected]
[cut]
Se per te programmare significa scrivere assemblare chiamate a metodi Rails
(che poi peraltro sono metodi Ruby) senza capire cosa questi facciano e
perch agiscano in questo modo, allora hai ragione.
[cut]
piu’ che altro perche’ molto probabilmente finiresti a programmare con
il Cut’N’Paste Driven Development
Da un’idea di cosa devi sapere di Ruby e di Rails per iniziare.
la risposta su stackoverflow sembra pittosto ironica. quella lista
contiene la
maggior parte degli aspetti di ruby e rails da conoscere. proprio quelli
citati
da Simone
“Si impara a parlare, non si impara a parlare in italiano (o in inglese) e
modestamente, a me mi hanno imparato a parlare assai bene”
OT: Matz, in un suo talk ha esposto un concetto molto interessante: il
linguaggio che usi plasma il tuo modo di pensare.
(non riesco a recuperare il talk, parlava di z-pet, linguaggi 80% et
similia)
OT: Matz, in un suo talk ha esposto un concetto molto interessante: il
linguaggio che usi plasma il tuo modo di pensare.
“Popularly known as the SapirWhorf hypothesis, or Whorfianism, the
principle is often defined a having two versions: (i) the strong
version that language determines thought and that linguistic
categories limit and determine cognitive categories and (ii) the weak
version that linguistic categories and usage influence thought and
certain kinds of non-linguistic behavior.”
OT: Matz, in un suo talk ha esposto un concetto molto interessante: il
linguaggio che usi plasma il tuo modo di pensare.
Perfettamente d’accordo con te
Infatti credo che Perl mi abbia rovinato la vita (ehm)
Ma quello che mi spaventa dell’approccio: prima ruby poi rails , e’ il
“blocco”.
Gia’ Rails e’ un bel bagaglio di informazioni, se ci aggiungiamo Ruby
cos, da subito, finisce che l’ipotetico programmatore si stufa prima di
scrivere una sola riga di codice.
Quindi, anche se sono d’accordo sul fatto che alla lunga, il nostro
programmatore dovra’ imparare Ruby, credo che all’inizio sia meglio se
si butta nel framework e comincia a giocare con gli scaffold, le rotues,
etc…
OT: Matz, in un suo talk ha esposto un concetto molto interessante: il
linguaggio che usi plasma il tuo modo di pensare.
Perfettamente d’accordo con te
N1
[cut]
Ma quello che mi spaventa dell’approccio: prima ruby poi rails , e’ il “blocco”.
Concordo con il timore. Ma oltre a considerare almeno un primo tour
guidato con tryruby, farei andare in parallelo lo studio di ruby e
rails.
I rischi sono quelli di creare un’altra stirpe di programmatori PHP
P.S. Io ho fatto la mia prima app in rails senza conoscere Ruby,
che imparavo intuitivamente passo dopo passo. Poi, in un secondo
momento me lo sono studiato.
On Mon, Dec 12, 2011 at 3:12 PM, maurizio de magnis < [email protected]> wrote:
Bello sto file! Grazie! Utile per chi mi chiede come e dove imparare
ad
usare rails!
Intervenendo sul tema del discorso, io ho iniziato dapprima studiandomi
un
po il linguaggio e “perdendo tempo” sui libri (The rails way e quelli di Pragprog.com)… Sar che mi piace apprendere come funziona una cosa
prima
di usarla, ma reputo questo il sistema migliore e che genera risultati
migliori (anche e soprattutto in termini di mantenibilit del codice).
Dal mio punto di vista, programmare come costruire un edificio: non
puoi
partire a costruire dal tetto o dal risultato finale.
MC
–
Matteo C.
Ufficio Reti e Sistemi
Universit degli Studi di Ferrara
Tel. 0532 97 4153