2010-07-31 8 views
8

The Pragmatic Programmer è altamente recommended da molte persone. Ho appena finito di leggerlo, e posso capire perché le persone lo consiglio, anche se vorrei sottolineare che codice completo copre quasi tutti dello stesso materiale in modo molto più approfondito.Forse di The Pragmatic Programmer gli autori dimenticano YAGNI?

Tuttavia, una cosa che mi infastidiva era il modo in cui gli autori non menzionavano mai alcun aspetto negativo della flessibilità, della generalizzazione e del margine di sviluppo futuro. Questi concetti sono tutti molto buoni, ma cosa è successo al principio di YAGNI (che non ne hai bisogno), che impedisce agli sviluppatori di perdere tempo a implementare una flessibilità che non verrà mai utilizzata?

Una ricerca rivela SO 400 domande su YAGNI, quindi dubito che il concetto era troppo oscuro per gli autori. Naturalmente non sono affatto esperto quanto loro, quindi perché non hanno menzionato l'uso della moderazione in tutto il libro?

Grazie.

+2

Davvero dovresti chiederlo, anche se suppongo che il motivo sia che dire che YAGNI non vende libri. – Oded

risposta

2

Loro non chiamano YAGNI, ma non v'è parola chiave a pagina 11 che ha almeno la stessa attenzione:

sapere quando fermarsi!

+2

Non penso che sia davvero la stessa cosa però. Sapere quando smettere di manipolare il codice è diverso dal sapere quando non progettare eccessiva flessibilità nel sistema. Forse sono confuso su cosa sia YAGNI. – Dijkstra

+0

Posso solo immaginare se Hunt & Thomas avesse in mente "YAGNI" quando hanno scritto quel passaggio, ma ho la netta sensazione che la loro intenzione fosse nella stessa direzione. –

0

Non hanno dimenticato. Penso che il libro sia appena passato prima che YAGNI si facesse conoscere.

0

[YAGNI] impedisce agli sviluppatori di sprecare il loro tempo di attuazione flessibilità che non è mai sta per essere utilizzato

Implementare la flessibilità non significa necessariamente richiedere più tempo. Nella mia esperienza è qualcosa che può (e dovrebbe ) far parte del vostro stile di programmazione naturale. Il codice IMHO che è inflessibile è generalmente dovuto a pratiche di programmazione scadenti.