1.02 (2) Monorepo vs Polirepo
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]
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.
Mateusz i Wojtek przedstawiają temat odcinka i opisują, jakie problemy mogą pojawić się podczas wybierania między Monorepo a Polirepo.
Mateusz opisuje swoje doświadczenie z obu podejść, podkreślając, że Monorepo ma więcej plusów, ale i minusy.
Mateusz dodaje minusy Monorepo, takie jak trudności z wersjonowaniem i ograniczenia dostępu do części projektu.
Wojtek omawia problem dzielenia się kodem w Monorepo, podkreślając, że może prowadzić do duplikacji kodu.
Wojtek omawia minusy Polirepo, takie jak trudności z zarządzaniem zależnościami i utrzymaniem.
Mateusz omawia plusy Polirepo, takie jak łatwiejsze zarządzanie zależnościami i utrzymanie.
Wojtek i Mateusz poruszają temat refaktoryzacji i jej trudności w obu podejściach.
Mateusz i Wojtek omawiają relacje między członkami zespołu i wpływ podziału na front-end i back-end.
Mateusz omawia zalety Polirepo, takie jak łatwiejsze zarządzanie zależnościami i utrzymanie.
Mateusz i Wojtek dyskutują o tym, kiedy Monorepo czy Polirepo jest lepszym rozwiązaniem.
Wojtek omawia trudności refaktoryzacji w obu podejściach.
Mateusz sugeruje, że testy mogą być najlepszym rozwiązaniem dla decyzji projektowych.
Rozmowa kontynuuje temat Monorepo i Polirepo, omawiając korzyści i wady obu podejść, a także narzędzia do zarządzania tą architekturą.
Tak, wybrałbym Turborepo. Jest to świetny projekt, sponsorowany przez Vercel.
Rozdziały i streszczenia generowane automatycznie. Pełna transkrypcja nie jest publikowana — wyszukaj frazę, aby zobaczyć dopasowane fragmenty.
„Tak, wybrałbym Turborepo. Jest to świetny projekt, sponsorowany przez Vercel."
Kliknij, aby znaleźć fragmenty, w których pada.
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 explainedRozmawiają:
Wojciech Skorupa [linkedin] Mateusz Jabłoński [www] [linkedin]