Zoeken…


Opmerkingen

Geef de voorkeur aan vals, onveranderlijke objecten en methoden zonder bijwerkingen. Reik eerst naar hen. Gebruik vars, veranderlijke objecten en methoden met bijwerkingen wanneer u een specifieke behoefte en rechtvaardiging daarvoor hebt.

- Programmering in Scala , door Odersky, Spoon en Venners

Er zijn meer voorbeelden en richtlijnen in deze presentatie van Odersky.

Hou het simpel

Maak eenvoudige taken niet te ingewikkeld. Meestal heeft u alleen nodig:

  • algebraïsche gegevenstypen
  • structurele recursie
  • monad-achtige api ( map , flatMap , fold )

Er zijn veel ingewikkelde dingen in Scala, zoals:

  • Cake pattern of Reader Monad voor Dependency Injection.
  • Willekeurige waarden doorgeven als implicit argumenten.

Deze dingen zijn niet duidelijk voor nieuwkomers: gebruik ze niet voordat je ze begrijpt. Het gebruik van geavanceerde concepten zonder echte behoefte verdoezelt de code, waardoor deze minder onderhoudbaar is.

Pak niet teveel in één uitdrukking in.

  • Vind betekenisvolle namen voor rekeneenheden.
  • Gebruik for begrip of map om berekeningen samen te combineren.

Laten we zeggen dat je zoiets hebt:

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

Als al uw functies een van Either of een ander type Validation retourneren, kunt u het volgende schrijven:

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

Liever een functionele stijl, redelijk

Standaard:

  • Gebruik val , niet var , waar mogelijk. Hiermee kunt u naadloos profiteren van een aantal functionele hulpprogramma's, waaronder werkverdeling.
  • Gebruik recursion en comprehensions s, geen lussen.
  • Gebruik onveranderlijke collecties. Dit is een gevolg van het gebruik van val waar mogelijk.
  • Focus op gegevenstransformaties, logica in CQRS-stijl en niet op CRUD.

Er zijn goede redenen om een niet-functionele stijl te kiezen:

  • var kan worden gebruikt voor de lokale status (bijvoorbeeld binnen een acteur).
  • mutable geeft betere prestaties in bepaalde situaties.


Modified text is an extract of the original Stack Overflow Documentation
Licentie onder CC BY-SA 3.0
Niet aangesloten bij Stack Overflow