Questo è sempre un compromesso.
Come programmatore principiante, dovresti porti due domande quando consideri il riutilizzo del codice rispetto al reinventare la ruota quadrata:
- Imparerò di più sul problema che voglio risolvere scrivendo tutto da zero o concentrandomi sul dominio del problema e mettendo da parte la complessità non critica al problema a cui sono interessato?
- È più importante per me risolvere il problema o è più importante comprendere alcuni concetti fondamentali?
Se non devi completare il tuo progetto, va bene girare le ruote su problemi complessi che altre persone hanno già risolto, perché imparerai qualcosa. Ma probabilmente passerai a qualcos'altro prima di "finire", che potrebbe o meno interessarti. Altri progetti inizieranno a sembrare brillanti in fretta quando entri in testa in un dominio complesso che sembra semplice fino a quando non inizi a provare a risolverlo da solo.
Non ossessionarti dal rinunciare al controllo perché stai rimandando al modo di pensare di qualcun altro; concentrati maggiormente su ciò che stai cercando di realizzare.
Se il tuo obiettivo è scrivere un parser HTML perché vuoi capire come funzionano i parser, provaci. Se il tuo obiettivo è scrivere un parser HTML perché vuoi disinfettare l'input dell'utente o trasformare alcuni bit casuali di HTML, probabilmente ti concentri sulla cosa sbagliata, perché probabilmente sei più interessato all'applicazione dell'analisi piuttosto che all'analisi stessa . Se hai voglia di scrivere un parser HTML perché non vuoi prenderti del tempo per capire la libreria di qualcun altro, probabilmente stai sprecando il tuo tempo, perché, almeno in questo caso, ti garantisco che qualcun altro ha speso più tempo a capire come per risolvere questo problema in modo efficace. In casi davvero insignificanti, potresti risparmiare tempo non riutilizzando il codice, ma in quelli complessi, a meno che la libreria che utilizzi non risulti o la tua capacità di leggere la documentazione e gli esempi di codice faccia schifo,
D'altra parte, direi che vale la pena scrivere la tua libreria di grafici, poiché sarai più concentrato su algoritmi e strutture di dati trasferibili e fondamentali che sarai in grado di applicare ad altri domini, anche se finisci per usare la biblioteca di qualcun altro quando lavori su questi problemi.