Mentionsy Mentionsy
Piwnica IT
Piwnica IT

1.02 (2) Monorepo vs Polirepo

01.03.2023 ·55 min 56 s · 14 rozdziałów · 1 sponsor

1.02 Monorepo vs Polirepo Przed Wami kolejny odcinek podcastu PiwnicaIT. Tym razem wzięliśmy na tapet temat Monorepo vs Polirepo. Podczas rozmowy skupiliśmy się na wadach i zaletach obu podejść. Zapraszamy do słuchania.  Materiały dodatkowe: The State of JS 2022: Monorepo tools How the Pros Scale Huge Software Projects // Turborepo vs Nx DevEnv: #60 Monorepo czy Polyrepo Monorepo vs Multi-Repo: Pros and Cons of Code Repository Strategies Monorepos explained Rozmawiają: Wojciech Skorupa [linkedin] Mateusz Jabłoński [www] [linkedin]

31:07 · Refaktoryzacja - kontynuacja 5

Wykorzystują różne technologie, które wykorzystują zarówno różne języki, ale też różne frameworki czasami. Przenikają się te rzeczy pomiędzy sobą. W przypadku, to co już ustaliliśmy, w przypadku Polirepo jest to zdecydowanie łatwiejsze w utrzymaniu wówczas. Ale czy Monorepo staje się niedostępne, kiedy mamy wiele różnych języków? Wydaje mi się, że nie, Mateuszu. I tak jak już rozmawialiśmy przed naszym nagraniem, że takie firmy jak Google czy inni giganci z Silicon Valley tak naprawdę od zawsze mają Monorepo i od zawsze też tworzą praktycznie narzędzia do zarządzania właśnie tymi swoimi Monorepo, które zdecydowanie nie składają się tylko z jednego języka.

Tutaj tych narzędzi jest dość wiele. Google, o którym wspominałem, korzysta i stworzył takie narzędzie, które nazywa się Bazel. Niestety jest ono dość skomplikowane. Z kolei Microsoft ma Rush, o ile dobrze pamiętam. Więc zdecydowanie nawet w momencie, kiedy żyjemy w tej architekturze mikroserwisowej, o której też wspominałeś Mateuszu, to nie jest tak, że musimy rezygnować z innych języków czy z innych frameworków. Dalej możemy korzystać z tych dobrodziejstw Monorepo, dając sobie tą wolność egzystencji w architekturze mikroserwisów i wolności, którą one nam dają. Okej, no ale jeżeli spojrzymy na to głębiej, to żeby utrzymywać w jednym Monorepo wiele języków najczęściej musielibyśmy skorzystać z jakiegoś dodatkowego narzutu w postaci jakiegoś frameworka najczęściej.

Tak, szczególnie właśnie w projektach, które musiały deployować wiele package'ów, takich jak Bubble, powiedzmy, od strony frontendowej, tak? Tak, dokładnie. To Lerna rzeczywiście wtedy super się sprawdzała. Mówiłeś też o Google. Mówiłeś też o Google, mówiłeś, że Google czy podobne wielkie organizacje Od zawsze właściwie wykorzystują Monorepo i starają się dbać o to, żeby ten kod był w jednym miejscu tak naprawdę. Ale też tam zauważyłeś, że mniejsze firmy od dopiero niedawna zaczynają widzieć plusy tego, że Monorepo też może być fajne.

Które też w ostatnim czasie zapewnia znacznie więcej możliwości. Niedawno to nie było wcale takie oczywiste, że za pomocą JavaScriptu mogłeś zrobić stronę internetową, aplikację mobilną, aplikację desktopową i jeszcze tysiąc innych rzeczy. Więc to jest mój pierwszy pomysł. Dlaczego może tak być, że wcześniej potrzebowałeś po prostu doktora, który znasz się konkretnie na tym narzędziu. Oczywiście trochę przesadzam, ale mam nadzieję, że zrozumiesz, o co mi chodzi. I druga rzecz jest taka, że myślę, że po prostu Inżynierowi Google'a i to myślę, że cały zarząd rozważył plusy i minusy te, o których my dzisiaj rozmawialiśmy i stwierdził, że jednak podejście Monorepo da im większą przewagę niż podejście Polirepo.

I nawet jeśli mamy Monorepo i mamy architekturę właśnie rozproszoną w ramach tego Monorepo, gdzie mamy podział wiele różnych aplikacji i tak dalej, to Monorepo daje większą Możliwość, elastyczność rozwijania tego niż Polirepo. I wydaje mi się, że właśnie dlatego te wielkie firmy wcześniej to zauważyły. W przypadku mniejszych podmiotów bardzo często te aplikacje, które są wytwarzane, to są aplikacje, które powstają szybko i szybko umierają. Giganci jak Google raczej mają te aplikacje utrzymywane przez wiele, wiele lat.

Pokazano wszystkie 5 dopasowań. Transkrypcja generowana automatycznie i niesprawdzana ręcznie — może zawierać błędy.