Ciągle zastanawiam się nad ponownym użyciem kodu podczas rozpoczynania nowego projektu.
W jakim stopniu powinienem nadać kodowi wielokrotnego użytku?
Czy powinienem ograniczyć go do zakresu zastosowania, czy też powinienem umożliwić jego ponowne wykorzystanie poza projektem?
Czasami wydaje mi się, że wielokrotne użycie kodu może stać na drodze do prostej konstrukcji. Podziel się swoim zrozumieniem i podejściem do ponownego wykorzystania kodu.
refactoring
code-reuse
Lamin Sanneh
źródło
źródło
Odpowiedzi:
Kod musi działać, zanim będzie można go ponownie użyć. Oznacza to, że projektowanie i (podstawowa) funkcja powinny pojawić się przed rozważeniem ponownego użycia kodu.
Dobrze jest myśleć o ponownym użyciu i ponownym użyciu komponentów, które już napisałeś. Ale czasami może być tak samo szybkie, jeśli nie szybsze, aby napisać kod i uruchomić go. Po rozwiązaniu pierwotnego problemu możesz przefakturować kod, aby był łatwiejszy do ponownego użycia.
źródło
Pamiętaj KISS i YAGNI:
Kod
re-usability better to be considered
po przygotowaniu dokumentu projektowego . Pozwoli ci to zobaczyć sekcję / części kodu, które zostaną potencjalnie zduplikowane.Dlatego jeśli nie masz przejrzystego projektu, zastosuj podejście KISS i YAGNI w swojej pracy!
źródło
To z mojego doświadczenia, ale wciąż wierzę, że można go zastosować i jest zgodny z tym, o czym wspominał GlenH7 .
Pracuję między 3 firmami realizującymi różne projekty. Firmy są siostrami z pewnymi standardowymi praktykami i metodologią pracy, ale są również wyjątkowe pod wieloma względami. Powiedziawszy to, generalnie zaczynam każdy projekt od nowa i chcę po prostu go wykonać lub pokazać postępy. Następnie, jeśli napotkam scenariusz, w którym pamiętam fragment kodu lub funkcji, który napisałem dla poprzedniego projektu, zrobię jedną z dwóch rzeczy (zależnych od czasu):
Skopiuj poprzedni kod z drugiego projektu (nie mam dużo czasu) do mojego bieżącego projektu.
Druga najszybsza metoda
Skopiuj poprzedni kod i umieść go we wspólnej bibliotece, a następnie dołącz tę bibliotekę do bieżącego projektu (aby ułatwić przejście do przodu).
2b. Jeśli dokonam zmian w innym (oryginalnym) projekcie, przebuduję go, aby używał nowej biblioteki [ale ogólnie nie zrobi tego, chyba że będę musiał ponownie dotknąć tego projektu].
Ostrzegaj, sprawdź, do cholery, ze wspólnych bibliotek. Wspólne biblioteki oznaczają tworzenie zależności. Zależności tworzą punkty awarii. Chociaż możesz potrzebować czegoś nieco poprawionego w bieżącej implementacji, nie wiesz, jak zmieni to wszystko przy użyciu tej biblioteki.
źródło
Czasami uważam, że kopiowanie i wklejanie kilku wierszy kodu jest lepszym rozwiązaniem. Nawet w ludzkim języku, kiedy chcesz wypowiedzieć zdanie, które wypowiedziałeś wcześniej, z niewielką odmianą, powtórzysz je z odmianą, ponieważ sprawia to mniej kłopotów każdemu.
Jeśli jednak Twój duży moduł musi być używany w nieco inny sposób niż nie obsługuje, nie klonuj go, aby zmodyfikować kilka linii, ponieważ jest bardzo prawdopodobne, że będziesz chciał rozszerzyć funkcjonalność zarówno bazy, jak i klonuj udział w przyszłości. Zamiast tego po prostu skonfiguruj go lub wyeksportuj funkcje, które zarówno baza, jak i klon udostępniają w innym module, z którego będą korzystać.
źródło
Nie przesadzaj. A jeśli nie jesteś pewien, trzymaj się zakresu aplikacji, dopóki nie napiszesz wystarczającej liczby projektów, aby zobaczyć, gdzie możesz ponownie użyć.
źródło