Perché il codice sorgente Java contiene così tante variabili a singola lettera? [chiuso]

-2

Ho letto il codice sorgente di alcune classi di librerie Java, in particolare CompletableFuture . Ho notato che gli autori fanno ampio uso di variabili criptiche (a singola lettera) nel codice, il che rende il codice probabilmente illeggibile e difficile da rintracciare.

C'è un motivo / logica specifica dietro questo approccio? (poiché le convenzioni di denominazione Java ufficiali suggeriscono la denominazione di variabili semanticamente ricche, evitando le variabili a lettera singola, tranne in contesti specifici, come ad esempio i cicli)

Ho trovato questa domanda correlata , ma Penso che non sia un duplicato, dal momento che sto parlando delle librerie standard di Java (non snippet o tutorial), che idealmente dovrebbe essere ottimale in termini di manutenibilità e leggibilità.

Penso anche che le risposte a queste domande non siano altamente basate sull'opinione pubblica, perché devono essere supportate da dati per essere solide. Ad esempio, la risposta di @ Jorg di seguito è supportata da una spiegazione molto approfondita, che mostra come le variabili a lettera singola potrebbero far parte del modello di dominio e invece essere intenzionali-rivelatrici per ingegneri esperti (specialmente per componenti interni non pubblici). / p>     

posta Dimos 03.02.2017 - 17:52
fonte

1 risposta

5

Gli identificatori dovrebbero descrivere la semantica delle cose che stanno identificando nella lingua del dominio in modo tale che possano essere facilmente comprese dagli esperti di dominio . Non sono un esperto nel campo dell'implementazione simultanea di API di libreria standard di basso livello su HotSpot JVM, quindi non posso dire autorevolmente se questi nomi di variabili abbiano o meno un senso.

Ci sono alcuni che posso commentare, tuttavia:

  • fn è un'abbreviazione ampiamente usata di "function".
  • È comune nella programmazione funzionale chiamare semplicemente un'entità di un tipo sconosciuto x e una raccolta di tali entità xs (cioè "exes" con un plurale- "s" per indicare una raccolta). Se si tratta di un valore che ha il tipo di una variabile di tipo, spesso verrà chiamato dopo quella variabile di tipo, cioè i due argomenti di una funzione di tipo (A, B) → C saranno spesso chiamati a e b . Lo puoi vedere in alcuni casi qui:

    • t è un valore sconosciuto del tipo sconosciuto T ,
    • u è un valore sconosciuto del tipo sconosciuto U ,
    • tr è r castato a T .
  • ex è un nome standard per un oggetto Exception in Java.

  • e è un Executor .
  • r è il risultato.
  • Credo che p sia una promessa.

In generale, inventare nomi in un codice generale molto astratto può essere difficile, perché, beh, è molto astratto e generale: è supposto lavorare in molti contesti diversi con molte cose diverse di molti tipi diversi, completamente indipendente da un dominio particolare.

    
risposta data 03.02.2017 - 19:05
fonte

Leggi altre domande sui tag