Quali caratteristiche deve avere un linguaggio di programmazione per dire che ha una buona riusabilità? [chiuso]

-1

Che cosa dovrebbe avere un linguaggio di programmazione in modo tale che si possa dire che promuova una buona riusabilità? Solo i generici e le funzioni mi vengono in mente quando sento la parola riusabilità. Cos'altro può fare un linguaggio di programmazione per scrivere codice facilmente riusabile?

    
posta Loclip 12.06.2013 - 21:37
fonte

5 risposte

2

Il primo e più importante elemento sarebbe una ben definita unità di riutilizzo e filosofia dietro la loro implementazione. Quando si osservano le implementazioni di riutilizzo di maggior successo, si hanno essenzialmente componenti o plugin. Ciò che rende questi lavori sono:

  • Un'interfaccia ben definita che separa l'implementazione e l'uso
  • Contratti ben definiti per quell'interfaccia
  • Imballaggio coerente (cioè un modo per il consumatore del componente di scoprire ciò che è disponibile)

C # e Java forniscono il concetto di programmazione di un'interfaccia proprio per questo scopo. Le interfacce non richiedono che tutte le implementazioni condividano una gerarchia di oggetti che aiuti a proteggere il codice proprietario dalla modifica di una classe base per fornire maggiore visibilità nella composizione sottoclasse. Molti dei framework di iniezione delle dipendenze da Spring (.Net) a MEF definiscono anche i requisiti di packaging che completano il quadro.

Tutto questo può essere fatto anche senza un linguaggio di programmazione orientato agli oggetti. Ad esempio, C utilizza la parola chiave extern per definire le funzioni esposte per le applicazioni da utilizzare e structs per i dati del pacchetto.

    
risposta data 12.06.2013 - 22:19
fonte
2

I namespace sono importanti per facilitare la capacità del codice di lavorare insieme. Quando si hanno nomi di classi o funzioni generiche, è possibile eseguire rapidamente collisioni senza spazi dei nomi.

Se stai utilizzando un linguaggio OO, il supporto delle interfacce e dei tratti è superiore al solo supporto dell'ereditarietà: è più facile comporre un oggetto di altri oggetti piuttosto che provare ad estendere un oggetto di cui sai ben poco.

    
risposta data 12.06.2013 - 22:00
fonte
2

La prima cosa che mi viene in mente è un buon sistema di moduli. Per supportare il riutilizzo, il sistema del modulo dovrebbe:

  • essere leggero - un sistema di moduli pesanti scoraggerà l'uso, il che scoraggia il riutilizzo.
  • supporta il controllo delle versioni - se un client può richiedere una versione specifica di un altro modulo, ciò renderà più facile l'evoluzione indipendente dei diversi moduli senza rompere i client.
  • controllo inquinamento spazio dei nomi - non vuoi che i simboli del modulo internamente definiti siano in concorrenza con quelli del tuo codice cliente, quindi sarà necessario un po 'per l'esportazione / importazione di simboli controllati o la definizione dello spazio dei nomi.
risposta data 12.06.2013 - 22:03
fonte
0

Un buon sistema di moduli è importante. Le interfacce di Go (le Java sono simili, ho sentito) sono piuttosto grandi.

    
risposta data 12.06.2013 - 22:00
fonte
-2

Vorrei aggiungere oggetti ed ereditarietà. Ciò consentirà il riutilizzo del codice da parte di un tipo figlio.

    
risposta data 12.06.2013 - 21:59
fonte

Leggi altre domande sui tag