preporucujem studiju "all you have is a hammer" antipattern-a.
iz mog skromnog iskustva - stvarno je jako tesko napraviti generalizaciju u ovom slucaju, ali je podjednako glupo raditi bilo koju od pomenute 2 stvari:
1) pisati ispocetka "komponentu" koja vec postoji i naprosto radi posao i samo je deo ukupne celine i ne ugrozava sadasnju i buducu arhitekturu, performanse, la la la... naprosto - resava problem.
2) lose proceniti "komponentu" i gurati je tamo gde joj nije mesto bez prethodne analize da li zaista moze da zadovolji specifikaciju i da li ce zapravo postati kocnica u nekom trenutku.
sa druge strane, previse zanatski pristup cini ovaj posao dosadnim i vodi u prosecnost i stagnaciju - ali to je vec licni izbor.