Ponowne użycie kodu jako problem
Zastanawiałem się nad tym pytaniem dotyczącym dostarczania oprogramowania i ciągle wracałem do kwestii powtarzalności i / lub odtwarzalności . Mają znaczenie, ponieważ jeśli nie powtórzysz projektu, trudniej jest ulepszyć proces użyty do jego zbudowania. Inżynieria obejmuje ciągłe doskonalenie procesów związanych z projektowaniem i budową w celu uzyskania projektów wyższej jakości.
Oprogramowanie może w dużym stopniu polegać na ponownym użyciu ze względu na swoją postać cyfrową. Zamiast przepisać moduł, po prostu wywołujemy go ponownie lub kopiujemy do innego systemu. Niektóre przykłady to uwierzytelnianie / logowanie lub funkcja logowania. Istnieje wiele dobrze znanych przykładów dla tych kategorii, a tradycyjną mądrością jest ponowne wykorzystanie tego, co istnieje, zamiast rozwijania własnych.
Niektóre porównania do innych dyscyplin
Budowa
W przeciwieństwie do tego, budowa systemów fizycznych (budynków, mostów) nie jest tak bliska, jak wielokrotnego użytku. To prawda, że plan domu może być wielokrotnie użyty do zbudowania tej samej kopii domu, ale konstrukcję należy wykonać za każdym razem. Wytnij i wklej nie działa tak w świecie analogowym. Plany mostów są mniej przydatne niż domy, ponieważ warunki na miejscu będą się różnić.
Mistrzowie budownictwa to znani eksperci, którzy zaprojektowali i / lub zbudowali dziesiątki, setki lub tysiące rzeczy na swoim terenie. Na przykład Frank Lloyd Wright , światowej sławy architekt i projektant designed more than 1,000 structures and completed 532 works
. Porównaj to z Anderem Hejlsbergiem, który zaprojektował „tylko” pięć języków (Turbo Pascal; Delphi; J ++; C #; Maszynopis). Pod wieloma względami jest to niesprawiedliwe porównanie, ponieważ domeny są różne. Ale na szerokim poziomie, wymierna produkcja od dwóch bardzo inteligentnych ludzi jest zupełnie inna.
Sztuki walki
Artyści sztuk walki powiedzą, że opanowanie ruchu pochodzi tylko z tysięcy powtórzeń. Po włożeniu dużej części tych powtórzeń wielu artystów sztuk walki jest zaskoczonych tym, jak wcześniej postrzegana jako skomplikowana kata lub forma stała się prosta. Instruktorzy tych uczniów zauważą również, w jaki sposób ruch staje się bardziej płynny i celowy, a także ma ekonomię ruchu. Podobnie doświadczeni artyści sztuk walki są w stanie szybciej zbierać bardziej złożone kata niż mniej doświadczeni studenci. Doświadczenie z powtórzeń dało im strukturę lub proces, który pozwala im szybciej się uczyć.
Obróbka drewna
Stolarze doświadczają podobnej transformacji. Stolarze hobbystów zawsze odwołują się do pierwszego projektu, który wymagał wielu szuflad. Po zakończeniu projektu zyskują nowe uznanie dla wydajności, jaką wytwarzają linie montażowe. Istnieją inne korzyści, takie jak lepsze zrozumienie, w jaki sposób układać części szuflad na arkuszu blachy, aby zmaksymalizować wykorzystanie drewna. W porównaniu z hobbystami, profesjonalni stolarze są w stanie szybciej projektować, uruchamiać i konstruować przedmioty, które wielokrotnie wytwarzali. Zyskują także umiejętność dostrzegania nieodłącznych problemów w projektowaniu innej osoby, które popełniły ten błąd w swojej pracy.
Czy ponowne użycie oprogramowania uniemożliwia programistom uzyskanie większej biegłości?
Pod wieloma względami projektowanie i tworzenie oprogramowania jest zawsze nowe. Nie powtarzamy wcześniejszych prac, ponieważ jeśli możemy ponownie użyć modułu, biblioteki lub systemu, robimy to. Preferencyjnie rozszerzymy istniejący system przed przepisaniem całej rzeczy od zera. Ale powtarzanie pozwala nam znaleźć efektywność w projektowaniu i konstrukcji. Każdy, kto ćwiczy sport lub aktywność fizyczną, powie ci, że powtórzenie jest kluczem do zostania dobrym praktykiem.
Moje pytanie: czy możliwość ponownego wykorzystania oprogramowania zapobiega koniecznej poprawie procesu i wydajności wynikającej z powtarzania projektu?