vida usar tutorial tiempo ser productividad priorizacion porque personal para ordenado más mejores matriz introduccion eficiente desventajas desde como cero aprovechar aprender apps app aplicaciones scala workflow

usar - scala tutorial



¿Cómo ser más productivo usando Scala?(Herramientas, IDEs) (8)

Scalac

Familiarízate con las opciones de línea de comando para Scalac.

  • -deprecation
  • -Xprint:all : vea cómo avanza su código a través de las fases del compilador, muy útil para ver qué implicaciones se aplican.
  • -help / -X'' / -Y` enumera todas las opciones.

Las últimas compilaciones nocturnas de scalac incluyen un archivo de finalización de bash que facilita su uso.

IntelliJ IDEA

Finalización del método con Javadoc ( CTRL - Espacio , CTRL - Q / Apple-J) Screenshot

Información de parámetros para el ejemplo en la pregunta ( CTRL - P ) Screenshot

Método de finalización de argumentos ( CTRL - MAYÚS - Espacio ). Screenshot

Necesitas tener la fuente o javadocs enlazados en las dependencias en IntelliJ para ver el Javadoc.

Actualmente no resalta los errores de tipo sobre la marcha, ya que todavía hay demasiados falsos positivos en el código complejo. Aunque esto viene.

Herramienta de construcción simple

SBT mantiene el compilador residente, y analiza las dependencias entre clases para permitir la recompilación incremental. También puede monitorear los cambios en los archivos de origen y desencadenar automáticamente la recompilación y / o la ejecución de la prueba.

  • Compilación continua: >~compile
  • Compilación continua + Prueba: ~test-quick

Tengo el proyecto SBT e IntelliJ configurado en http://github.com/scalaz/scalaz , puede usar esto como referencia.

¿Qué herramientas usan ustedes para trabajar con Scala? Para mi fase de aprendizaje, utilicé el REPL de Scala, pirateé un código con TextMate y lo compilé con el CLI de scalac . Pero a medida que los proyectos crecen en tamaño, se requieren herramientas mucho más sofisticadas.

Soy consciente de los complementos de Scala para Elipse, IntelliJ y Netbeans y los probé todos. El mejor es IMHO IntelliJ, pero lejos de ser perfecto.

El principal problema que tengo es la falta de finalización automática. Como un codificador Scala no tan avanzado, todavía no conozco la API estándar completa y tengo que cambiar entre Scaladoc e IDE regularmente. Esto se siente como "matar la productividad". Pero todos fallan en completar automáticamente los argumentos del método. (Escuché que los argumentos de los métodos no están incluidos en el código de Scala compilado, pero ¿qué hay de adjuntar una fuente para completar automáticamente?)

Otro tema muy molesto es el proceso de construcción. Estoy usando Maven para construir mis proyectos de Scala y administrar sus dependencias. Pero sin embargo, tengo que hacer una reconstrucción completa para probar mis cambios. Tal vez la reconstrucción incremental de Eclipses disponible en el mundo de Java me eche a perder, pero para mí es un gran problema.

Me gusta mucho Scala y me siento mucho más productivo mientras codifico, pero la falta de herramientas sofisticadas me hace sentir menos productivo. Y ambos parecen cancelarse ellos mismos.

Entonces, ¿cuál es mi pregunta? Dudo que todos y cada uno de los programadores de Scala scalac buen ol '' vim o emacs junto con scalac para hacer su trabajo. Entonces, ¿qué herramientas utilizas? ¿Qué flujos de trabajo ha desarrollado para acelerar el desarrollo con el lenguaje Scala?

Editar

Aclaración sobre lo que menciono con autocompletar de argumentos de método.

val myList = "foo" :: "all your base" :: Nil myList.partition(_.length > 3)

Para el código anterior, IntelliJ no me proporciona la información de que la partición requiere que tenga que pasar una función () => Boolean . De hecho, IntelliJ no comprueba este contraint. Puedo pasar un String e IntelliJ no indicará mi error hasta que haga una compilación.


Aquí está mi respuesta en un thread similar. Después de dar una hora aproximadamente a Ensime . Simplemente no puedo dejar de correr la voz. Debo decir que está muy, muy bien escrito para un paquete de Emacs.


Con Scala 2.8, vea this para obtener un mejor rendimiento de Maven.



He estado usando Scala diariamente durante los últimos seis meses. Todavía estoy usando vim (y ctags para encontrar cosas), y Maven para compilaciones. He obtenido un buen kilometraje de JRebel al trabajar en las aplicaciones web de Lift : recargará los cambios sobre la marcha sin reiniciar el servidor.

Pasé un tiempo buscando IDE, pero se deprimió muy rápido. Realmente me perdí muchas funciones de Eclipse al principio, pero después de un período de ajuste no creo que sea significativamente menos productivo ahora.

He escuchado algunos rumores de que NetBeans es el campeón actual de los IDE de Scala, pero no lo he probado de primera mano.


Me temo que tienes que esperar a que Scala se vuelva sólida como una roca. Tuve exactamente el mismo problema con Java hace diez años. Fue aún peor.

También los probé a todos. Para Scala 2.7.7 IntelliJ es el ganador, pero para Scala 2.8.0-SNAPSHOT Eclipse no es tan malo. Espere medio año después de que se libere 2.8.0 y verifique nuevamente. Debería hacerse soportable.


También deberías probar Netbeans 6.8 con la compilación nocturna de Scala. Estoy muy satisfecho programando Scala con este IDE. Para la construcción, a veces también uso Ant. Lo mejor del complemento de NB Scala es que es rápido y la finalización del código funciona a la perfección.

Por el ejemplo que dio: NB me da este error

Código completado:


Una forma simple es usar fsc , un compilador fuera de línea. Mantiene cachés de información, y el compilador estándar hablará con fsc (ejecutándose como un demonio) y usará su información almacenada en caché durante la compilación, acelerando así su ciclo de compilación.