Scala es uno de los lenguajes de programación más atractivos en este momento. Hay un gran despliegue publicitario a su alrededor y los programadores de todo el mundo lo reconocen públicamente como la próxima gran cosa posible en la programación. Este es el por qué. Scala tiene que ver con la programación funcional en un contexto orientado a objetos. Intenta tomar lo mejor de ambos mundos y combinarlos en un lenguaje altamente eficiente, inteligente y relativamente fácil de entender. En este momento es el líder en el renacimiento actual de los lenguajes de programación funcionales..
Hace poco terminé el curso Scala de Martin Odersky y me resultó muy difícil descubrir cómo empezar. Ya sabes, ese primer paso cuando quieres comenzar a codificar, pero no sabes qué herramientas están a tu disposición, qué IDE usar o qué marco de prueba de unidad elegir. Este tutorial será sobre usted, el recién llegado a Scala, que prepara su entorno de desarrollo para que pueda comenzar más fácilmente..
Aquí están las piezas de rompecabezas de las que hablaremos en esta lección, siéntase libre de saltar las que ya conoce:
Tomaremos cada tema de la lista y lo discutiremos a un nivel principiante y finalmente veremos cómo todas estas piezas trabajan juntas..
Antes de comenzar, asegúrese de tener el último SDK de Java instalado en su computadora. Dado que Scala se ejecuta en la máquina virtual de Java (JVM), se requiere el SDK. El resto de los temas de nuestra lista pueden requerir el SDK de Java, ya sea directa o indirectamente, por lo que es bueno tener.
Tú No necesitas tener Scala instalado. Hablaremos de esto en el próximo capítulo..
Si eres un desarrollador de PHP, probablemente estés familiarizado con Composer. Si eres un gurú de Ruby, conoces y amas a Bundler. Si programa en otro idioma, estoy seguro de que también hay un administrador de paquetes para eso..
SBT es similar a los administradores de paquetes anteriores, pero, aunque Composer requiere que usted tenga PHP preinstalado de la misma manera que Bundler necesita a Ruby, Scala no necesita estar instalado en el sistema antes de poder usar SBT. De hecho, la versión específica de Scala que desea utilizar para su proyecto se puede especificar simplemente como una dependencia en SBT. Usted puede preguntarse cómo es esto posible. Como mencioné antes, Scala se ejecuta en la JVM; Básicamente, es sólo una biblioteca de Java. Los paquetes para Scala también pueden ser simples archivos .jar. Entonces, SBT, en sí mismo, es solo un programa Java. Solo necesitas Java, que probablemente ya tengas.
Hay muchas maneras diferentes en las que puede acercarse a la instalación de SBT. Por razones multiplataforma entre Linux, Mac y Windows, mi forma preferida de instalar SBT es simplemente tomar el archivo, colocarlo en un directorio, extraerlo en mi directorio principal y agregar su ruta al sistema.
Descarga el último SBT estable del repositorio oficial. Busque una carpeta sin un "Beta" o "R" o "METRO" al final. Esa será la versión estable. En el momento de escribir este tutorial la última versión estable es 0.12.3..
El archivo contiene una sbt
Directorio dentro de él. Simplemente extraiga esto en su ubicación favorita. Prefiero que esté en algún lugar de mi directorio personal como / home / csaba / Programación / Scala / sbt
A continuación, agregue la ruta a su directorio bin SBT, a su variable PATH. En sistemas similares a UNIX, si usa Bash, agregue una línea como esta a su ~ / .bash_profile
o ~ / .bashrc
expediente:
PATH = $ PATH: $ HOME / Programming / Scala / sbt / bin export PATH
los $ HOME
La variable generalmente apunta a su directorio de inicio. Puedes reutilizarlo en tus archivos de configuración. Los usuarios de Windows pueden tener una variable diferente para esto. No olvides el exportar
comando en la segunda línea, de lo contrario su CAMINO
La variable solo estará disponible dentro del archivo de configuración..
Ahora, pruebe que su instalación SBT fue exitosa. Abra una consola o una herramienta de línea de comandos y escriba:
$ sbt --version sbt launcher versión 0.12.2
los PS
El signo es el indicador de Bash, el resto es el comando que ingresará. Como puedes ver, tengo instalada la versión 0.12.2.
Para otras formas de instalar SBT, puede consultar la documentación de configuración oficial.
Cree una carpeta donde desee que esté su código futuro, abra una consola, cambie al directorio que acaba de crear y simplemente ejecute el comando sbt
.
csaba @ csaba ~ / Personal / Programming / NetTuts / From Zero to Hello World en Scala / Sources $ sbt [info] Cargando plugins globales desde /home/csaba/.sbt/plugins [info] Actualizando file: / home / csaba / .sbt / plugins / default-e430ed… [info] Resolviendo org.scala-sbt # precompiled-2_10_0; 0.12.2… [info] descargando 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) […] Muchas más descargas aquí [info] [SUCCESSFUL] org.scala-tools.testing # test-interface; 0.5! Test-interface.jar (239ms) [info] Actualización realizada. [info] Establezca el proyecto actual en default-f502c6 (en el archivo de compilación: / home / csaba / Personal / Programming / NetTuts / From% 20Zero% 20to% 20Hello% 20World% 20in% 20Scala / Sources /)>
Tenga en cuenta que el proyecto actual se estableció en la carpeta en la que se encuentra y que su consola ha cambiado. Ahora estás dentro de la consola SBT. Puede salir de esta consola presionando CTRL + d o CTRL + c o emitiendo el comando salida
.
En esta consola, puedes decirle a SBT que haga muchas cosas. Solo presiona TAB dos veces y confirma con y
para ver la lista completa de comandos disponibles.
El uso de la configuración de todo el sistema o del usuario para todos sus proyectos puede no ser la mejor opción. Cada proyecto es diferente, necesita diferentes dependencias, tiene un nombre diferente, etc. Para informar a SBT sobre información como esta, tenemos que crear un archivo llamado build.sbt
. Debe colocarse en la carpeta raíz del proyecto, que puede encontrar en la última línea, en el ejemplo anterior.
El lenguaje utilizado en estos archivos es un DSL que se parece a la sintaxis de Scala, pero mucho menos complejo. Para mantenerlo simple, generalmente solo definirás algunos valores como el nombre y la versión de tu proyecto o las dependencias, como qué versiones de Scala o SBT usar. Los nombres de estos valores se llaman "claves". Trabajaremos solo con algunos de ellos. Echa un vistazo a la página de Keys.scala para obtener una lista completa de las claves.
Para nuestro proyecto especificaremos solo cuatro claves. Sus nombres los hacen bastante auto explicativos:
name: = "Hellow World" version: = "1.0" scalaVersion: = "2.10.1" sbtVersion: = "0.12.3"
Tenga mucho cuidado con las líneas vacías en el archivo de configuración. Cada definición de clave-valor debe estar separada por una línea vacía. Ahora corre sbt actualizacion
en el directorio de tu proyecto.
$ sbt update [info] Cargando plugins globales desde /home/csaba/.sbt/plugins [info] Establezca el proyecto actual en Hellow World (en el archivo de compilación: / home / csaba / Personal / Programming / NetTuts / From% 20Zero% 20to% 20Hello% 20World% 20in% 20Scala / Sources /) [info] Actualizando file: / home / csaba / Personal / Programming / NetTuts / From% 20Zero% 20to% 20Hello% 20World% 20in% 20Scala / Sources / default-f502c6 ... [info] Resolviendo org.scala-lang # scala-library; 2.10.1… [info] Actualización realizada. [éxito] Tiempo total: 1 s, completado el 13 de mayo de 2013 8:17:54 PM $ sbt [info] Cargando plugins globales desde /home/csaba/.sbt/plugins [info] Configura el proyecto actual en Hellow World (en compilación file: / home / csaba / Personal / Programming / NetTuts / From% 20Zero% 20to% 20Hello% 20World% 20in% 20Scala / Sources /)> sbt-version [info] 0.12.3> scala-version [info] 2.10.1 > salir
Como puede ver, Scala 2.10.1 se seleccionó automáticamente y se descargó si es necesario. También actualizamos SBT a 0.12.3 sobre la marcha. Finalmente, notará que llama a nuestro proyecto por su nombre cuando se carga: "Establecer el proyecto actual en Hellow World".
Si bien puede simplemente colocar todos sus archivos de origen en el directorio raíz del proyecto, SBT recomienda y utiliza, por convención, una estructura de directorios similar a Maven. Actualicemos nuestros directorios para que se vean como el árbol de abajo. Debes crear solo el src
En el directorio y sus hijos, el resto se generó cuando jugamos con los comandos SBT. Si no lo fueran, no te preocupes, solo te interesa el src
directorio.
├── proyecto │ └── objetivo │ └── config-classes ├── src │ ├── recursos principales │ ├── └── │ └── scala │ prueba ├── recursos │ └─ ─ scala └── objetivo
Ahora que hemos aprendido los conceptos básicos de SBT, necesitamos un IDE para escribir nuestro código. Si prefiere utilizar editores simples, como Sublime Text, puede hacerlo y omitir este paso..
NetBeans ha tenido soporte para Scala mucho antes de SBT. Hay un complemento llamado "nbscala" que puede crear proyectos Scala para NetBeans y usar el lenguaje Scala instalado en el sistema. En este momento, este complemento está en transición hacia SBT y eventualmente tendrá la capacidad de crear y administrar proyectos SBT..
Actualmente, SBT y NetBeans se integran bastante bien. Lo único que debe crear manualmente al momento de escribir este artículo es el proyecto SBT inicial. Después, NetBeans puede integrarse con él muy bien.
Abramos NetBeans, vamos a Herramientas / Complementos, Selecciona el Plugins disponibles pestaña y desplácese hacia abajo hasta la letra S. Compruebe todos los complementos relacionados con Scala, haga clic en Instalar y deje que instale los complementos con todas las dependencias necesarias.
Si tiene curiosidad acerca de cómo se escribe este complemento, puede consultar su repositorio Github.
Sí, lo has leído bien, SBT tiene su propio sistema de complementos que puede generar proyectos NetBeans para ti. Solo tienes que revisar un repositorio git y publicarlo localmente. Cambie a un directorio en el que le gustaría que su plugin sea desprotegido e instalado, luego ejecute los siguientes comandos:
git clone [email protected]: dcaoyuan / nbsbt.git cd nbsbt sbt limpio compilar publish-local
Ok, ya casi terminamos. Tenemos el complemento, ahora tenemos que decirle a SBT que lo use. Puede hacerlo por proyecto si lo desea, pero le recomiendo que lo agregue a la configuración SBT de su usuario: ~ / .sbt / plugins / plugins.sbt
los ~
se refiere a su directorio de inicio, ya debería tener un directorio llamado .sbt
en ella (note el punto como primer carácter). Puede o no tener un plugins
directorio, si no lo hace, simplemente créelo y luego cree el plugins.sbt
expediente. Ahora agrégale lo siguiente:
addSbtPlugin ("org.netbeans.nbsbt"% "nbsbt-plugin"% "1.0.2")
Eso es todo, ahora su SBT puede generar proyectos NetBeans para usted cuando ejecuta el netbeans
comando en la consola SBT. Alternativamente, en NetBeans, simplemente puede abrir (no un proyecto nuevo, pero abrir) cualquier proyecto SBT y generará automáticamente las cosas de NetBeans para usted.
Entonces todas las dependencias del proyecto serán actualizadas y la netbeans
El comando se ejecutará en una consola SBT, dentro de NetBeans.
Ahora puede ver más desplazamiento de texto en la pantalla dependiendo de las dependencias necesarias para la instalación, y debería poder ver que netbeans
El comando se ejecutó automáticamente para nosotros.
En el panel izquierdo, en la buscador de proyectos pestaña, incluso puede ejecutar comandos SBT básicos simplemente haciendo clic derecho en el proyecto y ejecutando Recargar
, Limpiar
, Compilar
y así.
Ahora, este no es un tutorial para aprender Scala. Solo escribiremos un código muy básico, un clásico Hello World. Entonces, puede seguir adelante y expandir su proyecto Scala y en la entrada "Paquetes Scala", haga clic derecho en
objeto HelloWorld def main (args: Array [String]) = println ("Hello World!")
Si no está familiarizado con Scala, un objeto se ejecutará automáticamente y un método llamado principal
se mirará hacia arriba. La definición del método es solo una simple línea de impresión de Hola Mundo
.
Vaya a su consola SBT para este proyecto: si lo cerró por error, simplemente haga clic derecho en el proyecto Scala en el panel izquierdo y seleccione Consola sbt abierta. Ahora, escriba correr
En la consola, para ejecutar el programa..
El primer paso es instalar Scalatest para que tengamos un marco de prueba. La forma más fácil de hacerlo es editar nuestro build.sbt
archivo y añadir la siguiente línea; recuerda que debes dejar una línea vacía entre cada línea.
libraryDependencies + = "org.scalatest" %% "scalatest"% "1.9.1"% "test"
Ahora, en su consola SBT puede emitir una actualización (opcional) y ejecutar la prueba
mando. Todavía no tenemos ninguna prueba, por lo que el comando no debe fallar.
Crear nuestra primera prueba será bastante fácil. Lo único que debes saber es que debe estar en el src / test / scala
carpeta. O, si expandes Paquetes de prueba Scala en su visor de proyectos y haga clic derecho en
import org.scalatest.FunSuite class ExampleSuite extiende FunSuite prueba ("los valores esperados de la prueba 2 son iguales") afirmar (2 === 2) prueba ("los valores de la prueba 2 son diferentes y fallan") afirmar (2 == = 3)
Tenga en cuenta que NetBeans puede tener algunos problemas con la ejecución de sus pruebas, ya que el complemento de Scala aún no está completo. Pero no se preocupe, aún puede ejecutar las pruebas desde la consola SBT.
La prueba solo importa el conjunto de pruebas Scalatest FunSuite
(donde "Fun" viene de funcional) y ejecuta dos pruebas. Como puedes deducir del código, el primero pasará, el segundo fallará.
Si, por alguna razón, SBT se niega a compilar sus pruebas, simplemente cierre la consola en NetBeans, haga clic derecho en su proyecto y seleccione Proyecto de recarga sbt. Esto solucionará el problema y sus pruebas se ejecutarán como se espera..
¡Ahí tienes! Acabas de completar tus primeros pasos para aprender Scala. Espero que este tutorial te haya ayudado a comprender mejor cómo comenzar. Si, en lugar de utilizar Netbeans, que es mi IDE preferido, también puede hacer una búsqueda en Google para encontrar documentación en línea bastante completa sobre cómo usar SBT y Scala con Eclipse, si eso es lo que prefiere.
Gracias por leer.