Perché seguiamo la convenzione?

2

Prefazione: non sto discutendo contro le convenzioni, ma piuttosto voglio avere una maggiore comprensione del perché la convenzione è qualcosa che dovrei seguire e quali sono i vantaggi / gli svantaggi di farlo.

Ho trovato nel mio sviluppo che la convenzione è qualcosa che ritengo di dover cercare per qualsiasi tecnologia o piattaforma che sto sviluppando. Credo in questo al punto che cerco regolarmente quali convenzioni specifiche della piattaforma sono state definite. Tuttavia, non ho un ragionamento concettuale completamente valido per farlo. Quello che di solito cito quando viene chiesto è il fatto che se viene seguita una convenzione, fornisce una base più ampia di conoscenza da cui attingere e più pratiche standard che possono essere adottate nello sviluppo.

Sono convinto che con una sufficiente conoscenza del dominio e solidi principi di progettazione tra una squadra di sviluppo la convenzione possa essere abbandonata per una convenzione personalizzata finché un intero team si è impegnato a mantenere un nuovo standard. Tuttavia, tra i team che hanno una visione dello sviluppo approssimativamente centralizzata, è meglio fare affidamento su un principio convenzionale standardizzato.

Dovrei, in qualità di sviluppatore, cercare la convenzione come un modo per risolvere le decisioni di sviluppo o se avessi sviluppato un errore rispetto alle convenzioni che sarebbero diventate un ostacolo?

    
posta Dinkles 27.04.2018 - 19:56
fonte

3 risposte

5

Penso che la tua risposta sia parzialmente nella tua domanda:

a development team convention can be dropped for a custom convention as long as an entire team has committed to maintaining a new standard.

È difficile convincere un gruppo di persone ad accordarsi su una convenzione. Cose banali come, schede o spazi, involucro variabile e registrazione possono occupare settimane di tempo. Alcune di queste convenzioni sono banali e possiamo sprecare molto tempo a discutere. È spesso più efficace nel tempo dire "Segui la convenzione standard".

Alcune lingue hanno convenzioni costruite così strettamente nella loro comunità che gli strumenti sono costruiti attorno ad esso. Prendi python per esempio. PIP 8 è uno standard ampiamente accettato per le convenzioni di denominazione. È così ampiamente accettato che la maggior parte degli IDE gestiscono il controllo della conformità per te. L'uso di una convenzione impostata ti consente di utilizzare strumenti che controllano tale convenzione.

    
risposta data 27.04.2018 - 20:43
fonte
5

Why do we follow Convention?

Per ridurre il carico cognitivo.

Nel mondo di oggi (sofware), la complessità è nascosta sotto ogni pietra. Per ottenere un compito semplice come show me a list of all users in my browser window devi costruire un sistema molto complesso di molte parti mobili. Per svolgere questo compito in un ragionevole lasso di tempo, la convenzione aiuta a ridurre il numero di cose su cui si deve ragionare, cioè il numero di decisioni che si devono prendere. Quindi sei libero di svolgere il tuo vero lavoro di risoluzione dei problemi e non sei bloccato in problemi laterali o meta.

È come ha detto @Robert Harvey

For the same reasons you follow traffic lights: because it reduces chaos.

Ma il motivo per cui il caos dovrebbe essere evitato non è che il caos di per sé sarebbe cattivo, ma è più dispendioso in termini energetici per affrontarlo. Se hai risorse limitate, le convenzioni ti aiutano a non sprecare troppo. È un modello organizzativo.

E questo non è limitato al software.

    
risposta data 28.04.2018 - 09:22
fonte
4

La convenzione è importante quando ci sono più opzioni disponibili senza una ragione chiara per preferire l'una sull'altra. Il miglior esempio che ho per questo è determinare quale lato della strada dovresti guidare. La risposta è da qualunque parte stia guidando chiunque altro. Nessuna delle due parti è intrinsecamente migliore quindi l'unico modo per evitare un gran casino è sceglierne una più o meno arbitrariamente e far seguire a tutti quella convenzione.

La convenzione può essere problematica quando è sostituita dal pensiero critico. Se la convenzione è di fare qualcosa in un modo specifico, ma una nuova scoperta o uno strumento consente un approccio superiore, scegliere la convenzione sui risultati è chiaramente follia.

    
risposta data 27.04.2018 - 20:17
fonte

Leggi altre domande sui tag