Mentionsy

Subiektywny Frontend
Subiektywny Frontend
14.10.2025 13:30

Zarządzaj kodem jak w Google - Co to jest monorepo?

Odcinek opublikowany 18.04.2024


Zastanawiałeś się kiedyś, dlaczego monorepo jest takie hot w świecie devów?


W tym odcinku zagłębimy się w świat monorepo. Opowiemy, co to takiego i czemu nawet Google na to się zdecydował. Przyjrzymy się, jak monorepo pomaga trzymać kod w ryzach i co zrobić, żeby nie zwariować z narzędziami jak linter czy prettier.


Będziemy też mierzyć się z pytaniami "kiedy monorepo ma sens?" oraz "kiedy lepiej sobie odpuścić?". A na koniec zerkniemy w przyszłość – czyli co dalej z tym monorepo?


Łap popcorn, włączaj play i zobacz, co monorepo może zrobić dla twojego projektu!


Wstęp

Co to jest monorepo?

Monorepo w googlu

Monorepo - ale po co?!

Linter i prettier w monorepo

Brak opieki na globalnymi standardami (module boundaries i inne takie)

Monorepo vs paczki npm

Kiedy monorepo jest wskazane?

Kiedy nie pakować się w monorepo?

PoC przed wejściem w monorepo

Podsumowanie

Szklana kula, czyli przyszłość monorepo

Polecajki

Outro


Linki:

1) https://monorepo.tools/ - świetne wprowadzenie do monorepo od Nrwl + opis obecnych tooli na rynku

2) https://nx.dev/ czyli frontendowa kobyła do monorepo


Badanie wpływu monorepo w Google - https://research.google/pubs/why-google-stores-billions-of-lines-of-code-in-a-single-repository/


Twój must have we frontendowym monorepo:

- https://prettier.io/docs/en/integrating-with-linters.html

- https://eslint.org/



Polecajki:

1) Atomic Habits - James Clear

2) https://www.storytel.com/ - czyli fajny abonamentowy portal z audiobookami

Szukaj w treści odcinka

Znaleziono 52 wyników dla "Monorepo"

Zarządzaj swoim kodem jak Google, czyli monorepo.

I dzisiaj będziemy właśnie rozmawiać o tym, czym jest monorepo.

Zacznijmy od tego, czym jest monorepo.

Monorepo to podejście, gdzie trzymamy wszystkie nasze projekty w jednym miejscu.

Czyli jak zawsze możemy powiedzieć, że monorepo ma jakieś korzyści i ma pewne wady.

Oczywiście monorepo, jak możemy znaleźć informacje w internetach, jest używane przez np.

I teraz pytanie, czy monorepo jest w takim razie dobrym rozwiązaniem dla każdego projektu?

Jakub, to czym jest to monorepo?

Monorepo to sposób podejścia do organizacji kodu, gdzie wszystko trzymamy w jednym morze.

Jest firma Google, która skorzysta z tego monorepo.

Monorepo też wspiera bardzo szybki development, czyli nie mamy rozsianych różnych repozytoriów w naszej organizacji, tylko mamy wszystko w jednym miejscu.

Bo monorepo ma rozwiązywać konkretny problem.

I jeśli mówimy jeszcze o Google, to skala tego monorepo jest niewyobrażalna.

To znaczy oni mają to wszystko monorepo, to znaczy to są w ogóle terabajty danych i oni mają odpowiednie specjalne rozwiązania dedykowane dla nich, żeby tą

Może wróćmy do tego po co jest takie monorepo i jakie są takie najważniejsze punkty, które... Bardzo dobrze, że mnie tutaj zawracasz, bo mówiliśmy o współdzieleniu kodu.

I teraz jednym z takich głównych problemów, które mamy w monorepo, to jest to, że nikt nad tym monorepo nie panuje tak naprawdę.

Module bundles to są reguły slintowe, które pozwalają nam zdefiniować, jakie warstwy w naszym monorepo mają dostęp do których warstw, dzięki czemu możemy ograniczyć tak naprawdę zależności między bibliotekami i między aplikacjami.

Wspomniałeś, Jakub, o tym, że bardzo łatwo jest wprowadzać jakieś zmiany w monorepo do swoich bibliotek, ale zastanawiałeś się nad...

Inną stroną monorepo to znaczy co się dzieje w momencie, w którym masz swoje biblioteki w oddzielnych repozytoriach i publikuje się do paczki npmowej.

No tak, tak, w zasadzie w kontekście Frontendu opowiadamy, ale monorepo nie tylko w kontekście Frontendu można używać.

A w Monorepo

I to też, o tym nie wspomnieliśmy, ale monorepo bardzo często też ma jedną wersję zależności, takiej zewnętrznej zależności, np.

Czyli jeśli mamy jakąś aplikację wewnątrz naszego monorepo, której bardzo nie chcemy utrzymywać, bo jest stara, brzydka i nie chcemy jej już aktualizować, to w monorepo musimy ją zaktualizować.

No mamy, możemy to jakoś tam obchodzić różnymi podejściami do monorepo, ale...

Na koniec dnia monorepo też do tego służy, żeby wszystko było aktualne i żeby łatwo było to aktualizować.

I to ma bardzo duży wpływ też właśnie na tą synchronizację na produkcji, bo jedna rzecz to jakby my mówimy o monorepo też trochę w kontekście mikrofrontendów mam wrażenie, bo jesteśmy subiektywni, ale monorepo może być też używane do trzymania wielu różnych projektów, które niekoniecznie są ze sobą powiązane.

Kiedy monorepo nie jest dobrą opcją?

Monorepo nie powinniśmy stosować wtedy, kiedy nie współdzielimy kodu.

Niewoluje potrzebę monorepo jest to, żeby używać monorepo, kiedy mamy różne technologie, czyli na przykład mamy JS, PHP, raczej to nie będzie dobrze siedzieć, prawda?

full stackami, czyli robimy end to end wszystko, ale to nadal będzie trochę kłopotliwe, żeby zarządzać tym na poziomie monorepo, bo tam na samym dnie mamy dalej te nasze zależności, więc będziemy musieli mieszać.

Monorepo z różnymi technologiami byłoby fajne w momencie, w którym mamy mały zespół, który rozwija zarówno Frontend i Backend.

Więc akurat co do Node.js i wszystkich frameworków z tym związanych, ja bym powiedział, że monorepo jest bardzo fajnym zastosowaniem.

U nas monorepo.

W naszym monorepo.

Jeśli chodzi jeszcze o takie przeciwwskazania do monorepo, ja bym powiedział, że brak środków na utrzymanie i takie podejście do monorepo, że to rozwiąże nasze problemy i to się będzie utrzymywało samo.

Ja bym nawet nie wchodził w monorepo, jeżeli nie mamy kogoś, kto choć trochę wie o co w tym chodzi.

I tutaj taki protip, jeśli chcecie faktycznie skorzystać z monorepo, to najpierw zróbcie sobie taki proof of concept, taki mały projekt, postawcie to monorepo, no bo my mamy taką trochę czasami tendencję do tego, że przeczytamy o jakiejś nowej fajnej technologii i...

Ja bym powiedział, że jeśli chcemy z Monorepo poeksperymentować, to nie na produkcji, bo to bardzo szybko się po prostu rozlezie.

Czy monorepo jest dla wszystkich?

Monorepo nie jest dla wszystkich.

Monorepo ma bardzo fajne zastosowania, kiedy chcemy dzielić kod.

Mikrofronty są bardzo fajne w monorepo.

Oczywiście możemy później z czasem stwierdzić, że monorepo to nie jest dobre rozwiązanie.

Tak, tak, do ciebie tutaj piję, że monorepo... My mamy ogólnie, odkąd się z Jakubem znamy, praktycznie od samego początku, czyli już dwa lata za chwilę będzie, mamy dyskusję na temat tego, czy mikrofontenny powinny być monorepo, czy jednak...

Ja bym powiedział, że tak, tutaj jest team monorepo, a tu jest team polirepo.

Ja już zaczynam powoli dorastać do monorepo.

W każdym razie, moim zdaniem monorepo jest bardzo fajnym rozwiązaniem, ale trzeba pamiętać, że ma to swoją cenę, jeśli chodzi o utrzymanie, jeśli chodzi o doświadczenie pracy monorepo, jeśli chodzi właśnie o takie reguły, o których wspomniałeś, ten module boundaries.

Ale tak, ja bym to tak podsumował, że po prostu monorepo może być fajne.

Zresztą ja zaczynałem pracę z monorepo jako pojedynczy frontend developer.

Tak, sam byłem w repozytorium i setupowałem monorepo.

Zdecydowanie, czyli monorepo można tworzyć fajnie?

I teraz w sumie przeszliśmy płynnie do szklanej kuli, czyli jak widzimy przyszłość monorepo?