Tutte buone risposte.
Vorrei solo aggiungere "minimizzare la struttura dei dati". Questo potrebbe anche essere più semplice in C, perché se C++ è "C con classi", OOP sta cercando di incoraggiarti a prendere ogni nome/verbo nella tua testa e trasformarlo in una classe/metodo. Questo può essere molto dispendioso.
Ad esempio, si supponga di disporre di una serie di letture della temperatura in punti nel tempo e di visualizzarle come un grafico a linee in Windows. Windows ha un messaggio PAINT e, quando lo si riceve, è possibile eseguire il looping della matrice eseguendo le funzioni LineTo, ridimensionando i dati mentre si procede per convertirli in coordinate pixel.
Quello che ho visto troppe volte è che, poiché il grafico è costituito da punti e linee, le persone costruiranno una struttura di dati costituita da oggetti punto e oggetti linea, ognuno capace di disegnare Stesso, e quindi renderlo persistente, su la teoria che è in qualche modo "più efficiente", o che potrebbero, solo forse, essere in grado di passare il mouse su parti del grafico e visualizzare i dati numericamente, quindi costruiscono metodi negli oggetti per affrontarli, e , ovviamente, comporta la creazione e l'eliminazione di ancora più oggetti.
Così si finisce con un'enorme quantità di codice che è leggibile in modo non trascurabile e si limita a dedicare il 90% del tempo alla gestione degli oggetti.
Tutto questo viene fatto nel nome di "buona pratica di programmazione" ed "efficienza".
Almeno in C il modo semplice ed efficiente sarà più evidente e la tentazione di costruire piramidi meno forti.
fonte
2009-03-19 13:16:51
La filosofia Unix è piuttosto utile per organizzare grandi progetti: [http://www.faqs.org/docs /artu/ch01s06.html](http://www.faqs.org/docs/artu/ch01s06.html) – newDelete