To zawsze jest kompromis.
Jako początkujący programista powinieneś zadać sobie dwa pytania, zastanawiając się nad ponownym użyciem kodu zamiast wynalezienia kwadratowego koła:
- Czy dowiem się więcej o problemie, który chcę rozwiązać, pisząc wszystko od zera lub skupiając się na domenie problemu i odkładając na bok złożoność, która nie jest krytyczna dla interesującego mnie problemu?
- Czy dla mnie ważniejsze jest rozwiązanie danego problemu, czy też ważniejsze jest zrozumienie podstawowych pojęć?
Jeśli nie musisz kończyć swojego projektu, dobrze jest zakręcić kołem w skomplikowane problemy, które inni ludzie już rozwiązali, ponieważ nauczysz się czegoś. Ale prawdopodobnie przejdziesz do czegoś innego, zanim „skończysz”, co może, ale nie musi mieć dla ciebie znaczenia. Inne projekty zaczną szybko wyglądać lśniąco, gdy przejdziesz nad głową w złożonej domenie, która wygląda na prostą, dopóki nie zaczniesz próbować rozwiązać samodzielnie.
Nie miej obsesji na punkcie rezygnacji z kontroli, ponieważ podążasz za cudzym sposobem myślenia; skoncentruj się bardziej na tym, co próbujesz osiągnąć.
Jeśli Twoim celem jest napisanie parsera HTML, ponieważ chcesz zrozumieć, jak działają parsery, idź do niego. Jeśli Twoim celem jest napisanie analizatora składni HTML, ponieważ chcesz zdezynfekować dane wejściowe użytkownika lub przekształcić losowe fragmenty HTML, prawdopodobnie skupiasz się na niewłaściwej rzeczy, ponieważ prawdopodobnie bardziej interesuje Cię zastosowanie analizy składniowej niż sama analiza. . Jeśli masz ochotę napisać parser HTML, ponieważ nie chcesz poświęcać czasu na zrozumienie czyjejś biblioteki, prawdopodobnie marnujesz swój czas, ponieważ przynajmniej w tym przypadku gwarantuję, że ktoś spędził więcej czasu na zastanawianiu się, jak aby rozwiązać ten problem skutecznie, niż będziesz miał. W naprawdę trywialnych przypadkach możesz zaoszczędzić czas, nie wykorzystując ponownie kodu, ale w skomplikowanych, chyba że biblioteka, której używasz, jest do kitu lub nie możesz czytać dokumentacji i próbek kodu,
Z drugiej strony powiedziałbym, że warto napisać własną bibliotekę wykresów, ponieważ bardziej skupisz się na przekazywalnych, podstawowych algorytmach i strukturach danych, które będziesz mógł zastosować w innych domenach, nawet jeśli w końcu użyjesz czyjaś biblioteka, kiedy pracujesz nad tymi problemami.