Quanto deve fare "automaticamente"?

3

Sto leggendo il codice completo 2 e sono nel capitolo in cui si dice (parafrasando) "evitare di programmare attraverso l'interfaccia". Perché è male programmare "attraverso" l'interfaccia?

Un esempio più concreto: se ho un metodo di una classe che presenta una foto divertente, cosa c'è di sbagliato con la registrazione anche in me? Dovrei semplicemente fornire più metodi "helper" che lo fanno automaticamente?

Sarebbe preferibile suddividerlo in:

  • set_login (username, password)
  • login ()
  • submit_picture (funny_picture)
  • easy_submit (funny_picture) # dove si collegherà (se non già) e invia
posta Lionel 17.12.2010 - 09:04
fonte

3 risposte

7

In generale, i metodi più brevi sono più leggibili e più facili da testare con i test unitari. Anche se non hai intenzione di riutilizzare il login e / o il metodo di invio, suddividerlo rende più semplice il test e la manutenzione.

    
risposta data 17.12.2010 - 09:35
fonte
4

È elementare, mio caro Watson! Riutilizzo del codice. Quando si separa l'attività di accesso e l'invio di immagini, anche qualcun altro può usare il proprio login e qualcun altro può anche usare il proprio send_picture. Inoltre se hai login e send_picture separati, quanto è difficile creare easy_submit?

    
risposta data 17.12.2010 - 09:28
fonte
2

Errato o corretto dipende dal livello in cui verrà usato quel codice. Cosa succederà se vuoi inviare più di una foto? In questo esempio, lo dividerei in due livelli, ad esempio core e application . Il livello principale fornisce le funzionalità di base ( login(u, p) e submit_data(data, type) ) e il livello dell'applicazione fornisce metodi di supporto. E li userebbero in modo appropriato a seconda del contesto.

    
risposta data 17.12.2010 - 09:21
fonte

Leggi altre domande sui tag