Il codice deve essere scritto per rimanere coerente con lo stile API unidiomatico di una libreria?

4

Attualmente sto usando la libreria wxPython per costruire una GUI. Un aspetto interessante della libreria che ho notato è che utilizza la notazione CamelCase per scrivere i nomi dei metodi, diversamente dalla notazione snake_case che PEP 8 consiglia * . Tuttavia, non è una sorpresa, dato che wxPython è fondamentalmente un wrapper attorno alla libreria wx, pensata per C ++. Ciò rappresenta comunque una decisione interessante.

Ovviamente sto modellando la mia struttura della GUI usando OOP, sottoclassando il widget GUI più appropriato. Spesso, devo scrivere un'estensione e convincere i metodi per completare la sottoclasse. All'inizio pensavo di scrivere i metodi usando la notazione snake_case; Solo perché wxPython ha usato CamelCase non significava che dovessi farlo anch'io.  Con il senno di poi, questo sta facendo apparire il codice incoerente e sciatto e sono abbastanza sicuro che la linea di condotta corretta sarebbe usare la notazione CamelCase per mantenere la coerenza. Tuttavia, si noti che mi piacerebbe continuare a utilizzare snake_case per le variabili, dal momento che ciò non sembra influire molto sulla coerenza. Ma mi piacerebbe avere un secondo parere prima di prendere una decisione definitiva su questo.

Il codice dovrebbe essere scritto per rimanere coerente con lo stile API unidiomatico di una libreria?

* Comprendo che PEP 8 è solo una guida di stile. Non deve seguire assolutamente. Tuttavia, poiché la maggior parte del codice Python che ho incontrato è scritta in base a PEP 8, mi piacerebbe rimanere coerente.

    
posta Christian Dean 28.10.2017 - 22:42
fonte

1 risposta

12

In generale, penso che la risposta a questo sia "dipende". Osservando più da vicino il tuo esempio specifico:

  • Se stai sottoclassi qualcosa, probabilmente è meglio restare con lo stile del codice che stai sottoclassi; i consumatori della classe chiameranno i metodi sia dal codice originale che dal tuo codice, e sarà più semplice per loro se dovranno gestire solo uno stile.
  • Se stai confezionando qualcosa, dovresti scrivere il tuo codice in uno stile idiomatico: i consumatori del tuo codice non dovranno mai occuparsi dello stile unidiomatico originale, quindi dai loro il codice nello stile che stanno per aspettati per la lingua in cui stanno scrivendo.

Sarai sempre in grado di trovare casi limite che non rientrano perfettamente in una o nell'altra di queste categorie, ma il principio generale da seguire rimane lo stesso: rendere il codice facile da usare per le persone che lo consumeranno. Di default, questo significa scrivere codice idiomatico, ma ci possono essere occasioni in cui è meglio scrivere codice unidiomatico.

    
risposta data 29.10.2017 - 00:17
fonte

Leggi altre domande sui tag