Dove dovrebbero essere collocate le funzioni di "conversione"?

1

Ho un tipo Bound come una sorta di "alias" per un array di tre numeri (che funziona in TypeScript con: type Bound = [number, number, number] ). L'ho fatto fondamentalmente per aiutare la leggibilità specificando nel nome a cosa serve l'array. Tuttavia, a volte nella mia app ho bisogno di convertire un numero in un Bound e viceversa (ad esempio 99 si tradurrebbe in [0, 9, 9] ). Il codice per questo è abbastanza semplice, ma mi chiedo dove mettere una tale funzione? Sembra che non ci sia posto concordato per mettere le funzioni di conversione.

Questo è il mio problema specifico, ma la domanda generale è la seguente: Dove dovrebbero essere posizionate le funzioni che convertono i tipi?

    
posta naiveai 13.06.2016 - 13:08
fonte

4 risposte

1

Questa è una questione di convenzione e non una regola assoluta, ma nella mia esperienza di programmazione, le funzioni di supporto dovrebbero trovarsi nella parte superiore del file, perché verranno utilizzate in seguito e quindi sono un prerequisito per capire il corpo.

Se un programmatore vuole saltare direttamente a una funzione che usa un aiutante, ma non ha letto il corpo del tuo aiutante, sarà anche in grado di tornare alla sua definizione perché è probabile che l'avrebbe vista definita in la parte superiore quando si scorre verso il basso (e / o è a conoscenza della stessa convenzione).

    
risposta data 13.06.2016 - 13:33
fonte
4

Vorrei prendere il consiglio di Robert C. Martin su questo e far leggere il tuo codice come un articolo di giornale, come spiega nel suo libro Clean Code.

Think of a well-written newspaper article. You read it vertically. At the top you expect a headline that will tell you what the story is about and allows you to decide whether it is something you want to read. The first paragraph gives you a synopsis of the whole story, hiding all the details while giving you the broad-brush concepts. As you continue downward, the details increase until you have all the dates, names, quotes, claims, and other minutia.

Supponete che qualcuno stia leggendo il vostro codice dall'alto verso il basso e quando chiamate una funzione, assicuratevi che quella funzione sia definita direttamente sotto di essa. Se la tua funzione viene utilizzata in molti posti diversi, posizionala sotto la prima chiamata.

    
risposta data 13.06.2016 - 14:16
fonte
1

Se la lingua lo permette, lo posizionerei sull'oggetto su cui opera.

Ad esempio, chiedi a un intero di convertirsi in un limite, quindi la funzione di conversione ha luogo nell'oggetto intero.

Lo stesso vale per Bound to Inte ma questa volta, sull'oggetto Bound.

    
risposta data 13.06.2016 - 15:00
fonte
0

In generale, il codice dovrebbe essere scritto come si intende leggere. Metti le tue funzioni nell'ordine che rende più facile il codice un altro programmatore per capirli. Ciò significa spesso che il funzioni che vengono richiamate per prime, come main () e altro funzioni di alto livello, dovrebbe essere all'inizio del file sorgente.

    
risposta data 13.06.2016 - 13:22
fonte

Leggi altre domande sui tag