Buscar..


Observaciones

Prefiere vals, objetos inmutables y métodos sin efectos secundarios. Alcanzarlos primero. Use vars, objetos mutables y métodos con efectos secundarios cuando tenga una necesidad específica y una justificación para ellos.

- Programación en Scala , por Odersky, Spoon, y Venners

Hay más ejemplos y pautas en esta presentación de Odersky.

Mantenlo simple

No complique las tareas simples. La mayoría de las veces solo necesitarás:

  • tipos de datos algebraicos
  • recursion estructural
  • Api similar a la mónada ( map , map flatMap , fold )

Hay muchas cosas complicadas en Scala, tales como:

  • Cake pattern o Reader Monad para inyección de dependencia.
  • Pasando valores arbitrarios como argumentos implicit .

Estas cosas no están claras para los recién llegados: evite usarlas antes de que las entienda. El uso de conceptos avanzados sin una necesidad real confunde el código, haciéndolo menos fácil de mantener.

No empacar demasiado en una expresión.

  • Encuentra nombres significativos para unidades de cómputo.
  • Utilice for comprensión o map para combinar cálculos juntos.

Digamos que tienes algo como esto:

if (userAuthorized.nonEmtpy) {
  makeRequest().map {
    case Success(respone) =>
      someProcessing(..)
      if (resendToUser) {
        sendToUser(...)
      }
    ...
  }
}

Si todas sus funciones devuelven Either u otro tipo de Validation , puede escribir:

for {
  user     <- authorizeUser
  response <- requestToThirdParty(user)
  _        <- someProcessing(...)
} {
  sendToUser
}

Prefiero un estilo funcional, razonablemente

Por defecto:

  • Use val , no var , siempre que sea posible. Esto le permite aprovechar al máximo una serie de utilidades funcionales, incluida la distribución del trabajo.
  • Utilice recursion y comprehensions s, no bucles.
  • Utiliza colecciones inmutables. Este es un corolario al uso de val siempre que sea posible.
  • Concéntrese en las transformaciones de datos, la lógica de estilo CQRS y no CRUD.

Hay buenas razones para elegir el estilo no funcional:

  • var se puede utilizar para el estado local (por ejemplo, dentro de un actor).
  • mutable da mejor desempeño en ciertas situaciones.


Modified text is an extract of the original Stack Overflow Documentation
Licenciado bajo CC BY-SA 3.0
No afiliado a Stack Overflow