print
A A A

Ponowne użycie kodu

Ponowne użycie kodu może być realizowane na różnych poziomach:

  • copy and paste – najgorsze i najpopularniejsze rozwiązanie, często gwałci zasadę „raz i tylko raz” („once and only once”), stanowi źródło błędów
  • techniki programistyczne – dziedziczenie, programowanie generyczne, stosowanie WebServices, programowanie aspektowe
  • komponenty, biblioteki i zestawy narzędziowe (toolboxes) – elementy umieszczane w programach
  • szkielety (frameworks) – oprogramowanie wymagające uzupełnienia o pewne elementy dla uzyskania konkretnej, pełnej funkcjonalności
  • całe, gotowe programy – ponowne wykorzystanie ze zmienioną konfiguracją (np. programy ERP – SAP itp.) lub w ramach nowego środowiska (np. linie produktów dla różnych systemów operacyjnych)

Ponowne użycie kodu posiada wiele zalet:

  • redukuje koszt i czas tworzenia oprogramowania (mniej elementów musi zostać wyspecyfikowanych, zaprojektowanych, zaimplementowanych i przetestowanych)‏
  • zwiększa niezawodność systemów (ponownie używany kod zazwyczaj został już wszechstronnie sprawdzony i przetestowany)‏
  • zmniejsza ryzyko związane z tworzeniem oprogramowania (w przypadku nowo tworzonego kodu zawsze mogą pojawić się nieprzewidywane problemy)‏
  • popularne komponenty wielokrotnego użytku tworzą standardy, które ułatwiają tworzenie i stosowanie programów
  • w oparciu o elementy wielokrotnego użycia można tworzyć generatory programów lub istotnych podsystemów (np. interfejsów użytkownika, parserów, kodu na bazie modelu UML)

Ponowne użycie kodu ma też wady i niesie pewne problemy:

  • nie istnieją jeszcze sposoby łatwego wyszukiwania pasującego istniejącego kodu do zastosowania w tworzonych programach
  • zanim zastosuje się gotowy kod należy go zrozumieć (może to być trudne i kosztowne, zaś brak zrozumienia może prowadzić do rozmaitych problemów)‏
  • zastosowanie gotowego kodu może wymagać istotnego dostosowania reszty systemu
  • testowanie całości systemu może także być utrudnione, jeśli ponownie użyty kod w wielu miejscach przenika się z kodem wytwarzanym
  • w fazie użytkowania i konserwacji, przy modyfikacjach i rozszerzeniach systemu jest się uzależnionym od kodu, co do którego nie wiadomo czy będzie ewoluował, a jeśli tak to w jakim kierunku

«Implementacja kodu     Programowanie aspektowe»