Legacy code. Jak rozwijać i co można z nim zrobić?

Posted by Maciej Gos on Monday, January 16, 2017

TOC

Jak rozwijać legacy code, czyli jak dodawać nowe funkcjonalności w najmniej bolesny sposób. Opisuję tutaj swoje własne doświadczenia i przemyślenia na ten temat. A więc…

Czy jest legacy code

Według nomenklatury sprzedawców samochodów kod jest przestarzały po wyjechaniu za bramę salonu, a według Wikipedia przestarzały kod to

More recently, the software engineering communty has developed other interpretations for the term legacy code. Among the most prevalent are source code inherited from someone else and source code inherited from an older version of the software.

Jak rozwijać przestarzały kod?

Praca z zastanym kodem bywa często bardzo bolesna. Niestety w naszym dev-życiu najczęściej trafiamy w bagno aplikacji, którą dostaliśmy w utrzymanie od jakiegoś korporacyjnego klienta lub utrzymujemy nasz produkt napisany w czasach kiedy po świecie chodziły dinozaury. Co zrobić kiedy pojawia się wymaganie dodania nowej wypasionej funkcjonalności?

Można do tego podejść na kilka sposobów:

  • brnąć dalej w depresyjny kod napisany przez całe stado programistów
  • napisać bibliotekę/komponent/plugin (nie to może nie jest odpowiednie słowo :))

Brnięcie dalej

Kto z nas nie próbował pisać kolejnej funkcji w VB6? Ten nie wie jaki jest to czasami ból, a ten ból jest tym większy im więcej linijek kodu jest w funkcji w której musimy wywołać nasz nowy super kawałek kodu. Ot cała ta integracja oł jeee…

Napisać coś nowego

Można podejść do tego z drugiej strony i stworzyć jakiś komponent\moduł, który będzie posiadał zestaw funkcjonalności wymaganych przez aplikację.

Jest to według mnie lepsze podejście można użyć np. architektury micro-services i stworzyć komponent\moduł hostowany na IIS.

Podsumowanie

Technik radzenia sobie z legacy code jest tyle co programistów. Każdy ma jakieś swoje pomysły i sposoby. Dla mnie najciekawszym sposobem jest tworzenie komponentów w myśl architektury micro-services.

A wy jakie macie sposoby na radzenie sobie ze starymi systemami?

Maciej Gos

真诚赞赏,手留余香

使用微信扫描二维码完成支付


comments powered by Disqus