Scala è uno dei linguaggi di programmazione più interessanti in questo momento. C'è molto clamore intorno a questo e i programmatori di tutto il mondo lo riconoscono pubblicamente come la prossima grande novità in programmazione. Ecco perché. Scala è tutto incentrato sulla programmazione funzionale in un contesto orientato agli oggetti. Cerca di prendere il meglio di entrambi i mondi e combinarli in un linguaggio altamente efficiente, intelligente e relativamente facile da capire. In questo momento è il leader nell'odierna rinascita dei linguaggi di programmazione funzionale.
Recentemente ho terminato il corso Scala di Martin Odersky e ho trovato molto difficile capire come iniziare. Sai, quel primo passo quando vuoi iniziare a programmare, ma non sai quali strumenti sono a tua disposizione, quale IDE usare, o quale quadro di test unitario scegliere. Questo tutorial riguarderà te, il nuovo arrivato di Scala, preparando il tuo ambiente di sviluppo in modo da poter iniziare più facilmente.
Ecco i pezzi del puzzle di cui parleremo in questa lezione, sentiti libero di saltare quelli che già conosci:
Prenderemo tutti gli argomenti della lista e discuterne a livello di principianti e finalmente vedremo come tutti questi pezzi lavoreranno insieme.
Prima di iniziare, assicurarsi di disporre dell'ultimo SDK Java installato sul computer. Poiché Scala viene eseguito su Java Virtual Machine (JVM), è richiesto l'SDK. Il resto degli argomenti del nostro elenco potrebbe richiedere l'SDK Java, direttamente o indirettamente, quindi è bello averlo.
tu Non ho bisogno avere installato Scala. Ne parleremo nel prossimo capitolo.
Se sei uno sviluppatore PHP, probabilmente conosci bene Composer. Se sei un guru dei Ruby, conosci e ami Bundler. Se si programma in un'altra lingua, sono sicuro che esiste anche un gestore di pacchetti.
SBT è simile ai precedenti gestori di pacchetti, ma, mentre Composer richiede che PHP sia preinstallato nello stesso modo in cui Bundler ha bisogno di Ruby, non è necessario che Scala sia installato sul sistema prima di poter usare SBT. In effetti, la specifica versione di Scala che si desidera utilizzare per il proprio progetto può essere semplicemente specificata come dipendenza in SBT. Potresti chiederti come sia possibile. Come ho detto prima, Scala funziona sulla JVM; fondamentalmente, è solo una libreria Java. I pacchetti per Scala possono anche essere semplici file .jar. Quindi, SBT, di per sé, è solo un programma Java. Hai solo bisogno di Java, che probabilmente hai già in ogni caso.
Esistono molti modi diversi per approcciare l'installazione di SBT. Per ragioni cross-platform tra Linux, Mac e Windows, il mio modo preferito per installare SBT è solo quello di prendere l'archivio, metterlo in una directory, estrarlo nella mia home directory e aggiungere il suo percorso al sistema.
Scarica l'ultimo SBT stabile dal repository ufficiale. Cerca una cartella senza un "Beta" o "R" o "M" alla fine. Questa sarà la versione stabile. Al momento della stesura di questo tutorial, l'ultima versione stabile è la 0.12.3.
L'archivio contiene un sbt
directory al suo interno. Basta estrarre questo nella tua posizione preferita. Preferisco che sia da qualche parte nella mia home directory come / Home / Csaba / Programmazione / Scala / sbt
Quindi, aggiungere il percorso alla directory bin SBT, alla variabile PATH. Sui sistemi UNIX, se usi Bash, aggiungi una linea come questa al tuo ~ / .Bash_profile
o ~ / .Bashrc
file:
PERCORSO = $ PERCORSO: $ HOME / Programmazione / Scala / sbt / bin PERCORSO di esportazione
Il $ HOME
variabile di solito punta alla tua home directory. Puoi riutilizzarlo nei tuoi file di configurazione. Gli utenti Windows possono avere una variabile diversa per questo. Non dimenticare il esportare
comando sulla seconda riga, altrimenti il tuo SENTIERO
la variabile sarà disponibile solo all'interno del file di configurazione.
Ora verifica che l'installazione SBT abbia avuto esito positivo. Aprire una console o uno strumento da riga di comando e digitare:
$ sbt --version sbt launcher versione 0.12.2
Il $
il segno è il prompt di Bash, il resto è il comando che inserirai. Come puoi vedere, ho installato la versione 0.12.2.
Per altri modi di installare SBT, è possibile controllare la documentazione di installazione ufficiale.
Crea una cartella in cui desideri inserire il tuo futuro codice, apri una console, cambia nella directory appena creata e semplicemente esegui il comando sbt
.
csaba @ csaba ~ / Personal / Programming / NetTuts / Da zero a Hello World in Scala / Sorgenti $ sbt [info] Caricamento di plugin globali da /home/csaba/.sbt/plugins [informazioni] Aggiornamento di file: / home / csaba / .sbt / plugins / default-e430ed ... [info] Risoluzione di org.scala-sbt # precompiled-2_10_0; 0.12.2 ... [info] download http://repo.typesafe.com/typesafe/ivy-releases/org. scala-sbt / actions / 0.12.2 / jars / actions.jar ... [info] [SUCCESSFUL] org.scala-sbt # actions; 0.12.2! actions.jar (3648ms) [...] Molti altri download qui [info] [SUCCESSFUL] org.scala-tools.testing # test-interface; 0.5! Test-interface.jar (239ms) [info] Fine aggiornamento. [info] Imposta il progetto corrente su default-f502c6 (nel file di build: / home / csaba / Personale / Programmazione / NetTuts / Da% 20Zero% 20a% 20Ciao% 20Mondo% 20in% 20Scala / Fonti /)>
Si noti che il progetto corrente è stato impostato sulla cartella in cui ci si trova e che la console è stata modificata. Ora sei nella console SBT. Puoi lasciare questa console premendo CTRL + do CTRL + c o emettendo il comando Uscita
.
In questa console, puoi dire a SBT di fare un sacco di cose. Basta premere due volte TAB e confermare con y
per vedere la lista completa dei comandi disponibili.
L'utilizzo delle impostazioni a livello di sistema o di livello utente per tutti i tuoi progetti potrebbe non essere l'opzione migliore. Ogni progetto è diverso, ha bisogno di diverse dipendenze, ha un nome diverso e così via. Per comunicare a SBT informazioni come questa, dobbiamo creare un file chiamato build.sbt
. Deve essere inserito nella cartella principale del progetto, che puoi trovare nell'ultima riga, nell'esempio precedente.
Il linguaggio usato in questi file è un DSL che assomiglia alla sintassi di Scala, ma molto meno complesso. Per semplificare, di solito definirai alcuni valori come il nome del tuo progetto e la sua versione o dipendenze, come ad esempio le versioni Scala o SBT da utilizzare. I nomi di questi valori sono chiamati "chiavi". Lavoreremo solo con alcuni di loro. Controlla la pagina Keys.scala per un elenco completo delle chiavi.
Per il nostro progetto verranno specificate solo quattro chiavi. I loro nomi li rendono abbastanza auto esplicativi:
nome: = versione "Hellow World": = "1.0" scalaVersion: = "2.10.1" sbtVersion: = "0.12.3"
Fai molta attenzione con le righe vuote nel file di configurazione. Ogni definizione di valore chiave deve essere separata da una riga vuota. Ora corri aggiornamento sbt
nella directory del tuo progetto.
$ sbt update [info] Caricamento dei plugin globali da /home/csaba/.sbt/plugins [info] Imposta il progetto corrente su Hellow World (nel file di build: / home / csaba / Personal / Programming / NetTuts / From% 20Zero% 20to% 20Hello% 20World% 20in% 20Scala / Fonti /) [informazioni] Aggiornamento file: / home / csaba / Personale / Programmazione / Tagli / Da% 20Zero% 20a% 20Ciao% 20Mondo% 20in% 20Scala / Fonti / default-f502c6 ... [info] Risolvi org.scala-lang # scala-library; 2.10.1 ... [info] Fine aggiornamento. [successo] Tempo totale: 1 s, completato il 13 maggio 2013 8:17:54 PM $ sbt [info] Caricamento dei plugin globali da /home/csaba/.sbt/plugins [info] Imposta il progetto corrente su Hellow World (in compilazione file: / home / csaba / Personale / Programmazione / NetTuts / Da% 20Zero% 20a% 20Ciao% 20Mondo% 20in% 20Scala / Fonti /)> versione sbt [info] 0.12.3> scala-versione [informazioni] 2.10.1 > esci
Come puoi vedere, Scala 2.10.1 è stato selezionato automaticamente e scaricato se necessario. Abbiamo anche aggiornato SBT a 0.12.3 al volo. Infine, noterai che durante il caricamento chiama il nostro progetto per nome: "Imposta il progetto corrente su Hellow World".
Anche se puoi semplicemente inserire tutti i tuoi file sorgente nella directory radice del progetto, SBT consiglia e utilizza, per convenzione, una struttura di directory simile a Maven. Aggiorniamo le nostre directory in modo che assomiglino all'albero sottostante. Dovresti creare solo il src
directory e i suoi figli, il resto sono stati generati quando abbiamo giocato con i comandi SBT. Se non lo fossero, non ti preoccupare, ti interessa solo il src
elenco.
├── progetto │ └── obiettivo │ └── classi di configurazione ├── src │ ├── principale │ │ ├── risorse │ │ └── scala │ └── test │ ├── risorse │ └─ ─ scala └── bersaglio
Ora che abbiamo imparato le basi di SBT, abbiamo bisogno di un IDE per scrivere il nostro codice. Se preferisci usare editor semplici, come Sublime Text, puoi farlo e saltare questo passaggio.
NetBeans ha avuto il supporto per Scala molto prima di SBT. C'è un plugin chiamato "nbscala" che può creare progetti Scala per NetBeans e usare il linguaggio Scala installato sul sistema. Al momento, questo plugin sta passando a SBT e alla fine avrà la capacità di creare e gestire progetti SBT.
Attualmente, SBT e NetBeans si integrano abbastanza bene. L'unica cosa che devi creare manualmente al momento della stesura di questo articolo è il progetto SBT iniziale. Successivamente, NetBeans può quindi integrarsi perfettamente con esso.
Apriamo NetBeans, vai a Strumenti / plugins, seleziona il Plugin disponibili scheda e scorrere fino alla lettera S. Controlla tutti i plugin relativi a Scala, clicca Installare e lascia che installi i plugin con tutte le dipendenze necessarie.
Se sei curioso di sapere come viene scritto questo plugin, puoi controllare il suo repository Github.
Sì, hai letto bene, SBT ha un proprio sistema di plugin che può generare progetti NetBeans per te. Devi solo controllare un repository git e pubblicarlo localmente. Passare a una directory in cui si desidera controllare e installare il plug-in, quindi eseguire i seguenti comandi:
git clone [email protected]: dcaoyuan / nbsbt.git cd nbsbt sbt clean compile pubblica-locale
Ok, abbiamo quasi finito. Abbiamo il plugin, ora dobbiamo dire a SBT di usarlo. Puoi farlo per progetto, se lo desideri, ma ti consiglio di aggiungerlo alle impostazioni SBT dell'utente: ~ / .Sbt / plugins / plugins.sbt
Il ~
si riferisce alla tua directory home, dovresti già avere una directory chiamata .sbt
in esso (notare il punto come primo carattere). Potresti o non potresti avere un plugins
directory, se non lo fai, basta crearlo e quindi creare il plugins.sbt
file. Ora aggiungi il seguente:
addSbtPlugin ("org.netbeans.nbsbt"% "nbsbt-plugin"% "1.0.2")
Questo è tutto, ora il tuo SBT può generare progetti NetBeans per te quando esegui il NetBeans
comando nella console SBT. In alternativa, in NetBeans, puoi semplicemente aprire (non un nuovo progetto, ma aprire) qualsiasi progetto SBT e genererà automaticamente il materiale NetBeans per te.
Quindi tutte le dipendenze del progetto verranno aggiornate e il NetBeans
il comando verrà eseguito in una console SBT, all'interno di NetBeans.
Ora puoi vedere più testo scorrere sullo schermo a seconda delle dipendenze necessarie per essere installato, e dovresti essere in grado di vedere che il NetBeans
il comando è stato eseguito automaticamente per noi.
Nel riquadro sinistro, sul browser di progetto scheda, è anche possibile eseguire i comandi SBT di base semplicemente facendo clic con il pulsante destro del mouse sul progetto ed eseguendolo Ricaricare
, Pulito
, Compilare
e così via.
Ora, questo non è un tutorial per imparare Scala. Scriveremo solo un codice molto semplice, un classico Hello World. Quindi, puoi andare avanti ed espandere il tuo progetto Scala e nella voce "Pacchetti Scala", fai clic con il tasto destro del mouse su
oggetto HelloWorld def main (args: Array [String]) = println ("Hello World!")
Se non conosci completamente Scala, un oggetto verrà eseguito automaticamente e verrà chiamato un metodo principale
sarà alzato lo sguardo. La definizione del metodo è solo una semplice linea di stampa di Ciao mondo
.
Vai alla tua console SBT per questo progetto: se lo hai chiuso per errore, fai clic con il pulsante destro del mouse sul progetto Scala nel riquadro sinistro e seleziona Apri console sbt. Ora, digita correre
nella console, per eseguire il programma.
Il primo passo è installare Scalatest in modo da avere un framework di test. Il modo più semplice per farlo è modificare il nostro build.sbt
file e aggiungi la seguente riga; ricorda che devi lasciare una linea vuota tra ogni linea.
libraryDependencies + = "org.scalatest" %% "scalatest"% "1.9.1"% "test"
Ora, nella tua console SBT puoi rilasciare un aggiornamento (opzionale) ed eseguire il test
comando. Non abbiamo ancora nessun test, quindi il comando non dovrebbe fallire.
Creare il nostro primo test sarà abbastanza facile. L'unica cosa che devi sapere è che deve essere nel src / test / Scala
cartella. Oppure, se espandi Pacchetti di test Scala nel visualizzatore del progetto e fai clic con il pulsante destro del mouse su
importare la classe org.scalatest.FunSuite ExampleSuite estende FunSuite test ("test 2 valori attesi sono uguali") assert (2 === 2) test ("test 2 valori sono diversi e fail") assert (2 == = 3)
Tieni presente che NetBeans potrebbe avere alcuni problemi con l'esecuzione dei test, poiché il plug-in di Scala non è ancora completo. Ma non fatevi prendere dal panico, è ancora possibile eseguire i test dalla console SBT.
Il test importa solo la suite di test Scalatest FunSuite
(dove "Fun" deriva da funzionale) e esegue due test. Come potresti capire dal codice, il primo passerà, il secondo fallirà.
Se, per qualche ragione, SBT rifiuta di compilare i test, basta chiudere la console in NetBeans, fare clic con il pulsante destro del mouse sul progetto e selezionare Ricarica il progetto sbt. Questo risolverà il problema e i test verranno eseguiti come previsto.
Ecco qua! Hai appena completato i tuoi primi passi verso l'apprendimento di Scala. Spero che questo tutorial ti abbia aiutato a capire meglio come iniziare. Se, invece di usare Netbeans, che è il mio IDE preferito, puoi anche fare una ricerca su Google per trovare una documentazione online abbastanza completa su come usare SBT e Scala con Eclipse, se è quello che preferisci.
Grazie per aver letto.