OOP W Node - czy ma to sens

0

Trafiłem na taki artykuł, https://medium.com/@pmhegdek/oop-in-typescript-express-server-d9368b97740e - jest to dobra praktyka, czy zła? Jak to wygląda w firmach, które korzystają z tej technologii we własnych projektach, jak taka struktura projektu powinna wyglądać?

2

Node już dawno zboczył w ścieżkę typowego języka OOP i aktualnie masz wszystkie niezbędne narzędzia do używania go jako język obiektowy.
Powiem więcej, dorzucając TypeScript zyskujemy idealną hybrydę obiektowo/funkcyjną ze stabilnym typowaniem. Wszystko oczywiście zależy od tego jak używamy języka bo w tej chwili jest tak zwinny że bardzo łatwo odziedziczyć wszystkie najgorsze cechy z OOP i języka funkcyjnego popełniając obrzydliwy paszkwil.

Najważniejsza jest konwencja języka i stabilne zasady w projekcie, później już tylko zgarniamy benefity.

1

Nie wiem, czy link z Express'em to tylko przykład, ale jeśli zależy Ci na całkowitym OOP, bez mieszanki programowania obiektowego i funkcyjnego to poszukałbym jakiegoś gotowego frameworka w stylu NestJS, który został odpowiednio przetestowany przez swoją społeczność i ma porządną dokumentacje.

Tworzenie takiego objektowego wrappera na biblioteki typu Express jest moim zdaniem bez sensu, bo jest to jedynie prosta biblioteka do routingu, które ma jakieś 1000 linijek, brakuje im rzeczy związanych z security, optymalizacją, bazą danych i wszystkim innym.

2

Można pisać w OOP w Node.js, nie ma w tym nic niezwykłego (pytanie, czy w danym przypadku podejście OOP jest właściwe, czy nie).

Z drugiej strony samo użycie słowa "class" nie spowoduje, że dany kod stanie się automatycznie OOP.

Np. jeden z przykładów z tego artykułu JSONResponse - to klasa robiona na siłę. Nie ma tym nic obiektowego, po prostu są to dwie niezależne funkcje success i serverError, które zostały wrzucone w klasę bez większego powodu (obstawiam, że taki styl pisania, gdzie pakuje się wszystko w klasy jako przestrzenie nazw). Czyli jak na ironię w artykule o OOP podali przykład programowania proceduralnego (które też nie jest złe, warto wydzielić sobie funkcje pomocnicze. Po prostu przestańmy to nazywać OOP).

1 użytkowników online, w tym zalogowanych: 0, gości: 1