Monorepos - How the Pros Scale Huge Software Projects // Turborepo vs Nx

  Рет қаралды 708,164

Fireship

Fireship

Күн бұрын

Пікірлер: 561
@AzureFlash
@AzureFlash 3 жыл бұрын
Finally, I can have a giga-scalable monorepo and build tools for my 100-line Discord bot written in Python
@gh05tparkourfreerunning31
@gh05tparkourfreerunning31 3 жыл бұрын
I was actually thinking of using this for my Discord bot lol. It has a REST API to manage a roster of members in a DB and I wanted to make a website to interact with the database directly as well. Except in this case, the Discord bot would be a tool for the entire application
@donquixoteupinhere
@donquixoteupinhere 3 жыл бұрын
Hahaha. Yeah context is VERY important as to whether this is the recommended route someone chooses, for highly practical reasons.
@Mkrabs
@Mkrabs 3 жыл бұрын
***written in a single Python file
@andrey2001v
@andrey2001v 2 жыл бұрын
And 40 of those lines are imports. This is literally most of my uni coding experience
@arctic.wizard
@arctic.wizard 2 жыл бұрын
This is the way
@patrik5123
@patrik5123 3 жыл бұрын
This is by far the best channel to get enough knowledge in order to to make it sound like you know what you're talking about.
@patrik5123
@patrik5123 3 жыл бұрын
@@mikkelens Yea I've spent enough time in front of online courses during the various lockdowns to know how demanding it is. I've spent countless hours on React and I still feel like I don't _actually_ 'get it'.
@reed6514
@reed6514 2 жыл бұрын
I like these, more for entertainment than learning. My preferred learning style mainly involves diving in, writing code, and looking at documentation.
@noskillzdad5504
@noskillzdad5504 2 жыл бұрын
Fake it till you make it!
@reed6514
@reed6514 2 жыл бұрын
@@noskillzdad5504 i do this when I'm manic lol. Sometimes it's good. Sometimes not
@heroe1486
@heroe1486 2 жыл бұрын
@@reed6514 It's good to discover things and know if you want to dive deep into them, like if a video showcases a new framework which has some particularities you can't live with, if you were able to spot them in the video it may save you hours of reading the docs. Same for this one, most people probably went to the conclusion that Monorepos weren't yet a fit for their projects. These videos are handy in a field with so much (sometimes useless) novelties
@brennanfife
@brennanfife 3 жыл бұрын
Software teams then: ‘This codebase is too coupled together… let’s break it up’ Software teams now: ‘This codebase is too broken up… let’s couple it together’
@overloader7900
@overloader7900 3 жыл бұрын
When the moores law died (as in single core SISD performance, cuz its too hard to make parallel code), code performance became important again
@karakunai_dev
@karakunai_dev 3 жыл бұрын
That one guy on the team : "... this goes against everything that I know to be right and true ..."
@muizzy
@muizzy 3 жыл бұрын
At the risk of sounding like I don't get the joke; a little context for the uninitiated: We're still decoupling as much as possible, we're just doing it in a smarter way which allows us to make simpler use of a single source of truth. (1 monorepo, but still many micro-services)
@MiniKodjo
@MiniKodjo 3 жыл бұрын
do then undo is work
@dorktales254
@dorktales254 3 жыл бұрын
Google's codebase: moaaaaai
@oussamasethoum1665
@oussamasethoum1665 3 жыл бұрын
You explained TurboRepo better than the creator himself, huge respect to Fireship 🎩
@andresramos7965
@andresramos7965 3 жыл бұрын
At this point, all software should feature a Fireship video in their mainpage
@oussamasethoum1665
@oussamasethoum1665 3 жыл бұрын
@@andresramos7965 I couldn't agree more, they should pay this guy to make more understandable explanations.
@hydra4370
@hydra4370 3 жыл бұрын
@@oussamasethoum1665 I already pay him to explain stuff to me 😭
@magnusmarkling
@magnusmarkling 3 жыл бұрын
@@oussamasethoum1665 Maybe you mean WE should pay him
@forrestmorrisey
@forrestmorrisey 2 жыл бұрын
You're comparing apples to oranges here. Engineers are nutoriously bad at explaining their own work. Fireship is a seasoned technology communicator.
@KeithGraves
@KeithGraves 3 жыл бұрын
What people call best practices in software engineering amuse me. Backend: Everything is a microservice Frontend: Use micro frontends Git: Put everything in a giant monorepo
@matheusvictor9629
@matheusvictor9629 2 жыл бұрын
The thing is about performance and not everything going down at once, where you store the codebase doesn't matter
@TheBillionDollarSaaS
@TheBillionDollarSaaS 2 жыл бұрын
Infrastructure and code have different requirements
@webentwicklungmitrobinspan6935
@webentwicklungmitrobinspan6935 2 жыл бұрын
no! its all about decoupling. microservices to enforce a api and maybe consider an integration layer. and you split your frontend because you dont want to compile for minutes at a time and have a 100gb node module installed for fixing a a hardcoded link in a selfservice tool which no one seems to use anymore but people manage to complain about somehow
@dadudeme
@dadudeme 9 ай бұрын
​@@matheusvictor9629as linus torvalds said: Only wimps use tape backup: real men just upload their important stuff on ftp, and let the rest of the world mirror it
@VarunGupta3009
@VarunGupta3009 2 жыл бұрын
I scouted the entire internet a few months ago to get the exact same monorepo build setup as I'm used to at Google, but here you are, who explained it all so beautifully in a video under 10 minutes. Bless you.
@webentwicklungmitrobinspan6935
@webentwicklungmitrobinspan6935 2 жыл бұрын
how long have u beeing coding before getting into google? is it still worth it?
@vinaymama
@vinaymama 3 жыл бұрын
Just few days back , i saw the Fireship comment in the TURBOREPO launch video. Now we have a complete tutorial on it... Thank You dude
@akillersquirrel5880
@akillersquirrel5880 2 жыл бұрын
Having recently left a company that was built around a monorepo, here's my takes: Pros: * Visibility - it's easy to see where things are used and discover stuff. * Uniformity - no need to manage versions between things used internally. Cons: * Upgradability - you can only upgrade something once *all* of its users are upgraded. * Maintenance - if you don't invest enough talent into setting up and maintaining your monorepo tools, it's easy to get to a point where they are no longer usably fast. * Speed - if a simple `git status` command takes multiple seconds to complete, nothing in your project will feel snappy.
@Flackon
@Flackon 3 жыл бұрын
I've actually started using monorepos for a couple of solo projects, due to the ease of packaging and dependency sharing
@krishgarg2806
@krishgarg2806 3 жыл бұрын
Thank you for covering this. Recently vercel acquired turbo repo and I was confused what was it as I use vercel a lot.
@bakedbeings
@bakedbeings 3 жыл бұрын
Another fantastic video, just one nit pick: it wasn't super clear (to me) early on that this was about repositories for web tech specifically. When you started out with 2 billion lines of Google code I had their C++, Go etc code in mind - a major driver of Go's toolchain design was long C/C++ build times on huge code bases - but Turborepo is js/ts only.
@omarkarim9298
@omarkarim9298 3 жыл бұрын
Using build tools like maven/gradle and scripting I found is the best way to go for multiple projects of different programming languages
@tmthyrd
@tmthyrd 2 жыл бұрын
Thanks for pointing this out, I completely missed this point. It's somewhat ironic that a tool written in Go to manage repos doesn't actually support Go. Does NX or Lerna support a larger set of languages?
@IxMeTutorials
@IxMeTutorials 2 жыл бұрын
@@tmthyrd Lerna is based on npm, so probably not.
@nathanhedglin931
@nathanhedglin931 2 жыл бұрын
There is only JavaScript 😂
@Zokiio
@Zokiio 2 жыл бұрын
But Bazel that google use does actually handle multiple codebases like Java, C++, Go, Android, iOS
@akashkumar121213
@akashkumar121213 3 жыл бұрын
I have been setting up a typescript monorepo for one of my personal projects ... And lets just say there are some pains you are gonna feel that you wont forget.
@webentwicklungmitrobinspan6935
@webentwicklungmitrobinspan6935 2 жыл бұрын
.. cant wait to get through these pains in my next vacation.
@williamchamberlain2263
@williamchamberlain2263 Жыл бұрын
0:30 I like that the codebase is elvoving blindfolded _and_ being pulled side to side by different teams _and_ will irrevocably topple over with crushing force after just one pull too hard or in the wrong direction. Great metaphor.
@ShawnCZek
@ShawnCZek 3 жыл бұрын
Another issue with monorepos is the access management. Especially with the public available tools, you cannot easily define what directories one should have access to.
@devnol
@devnol 3 жыл бұрын
Doesn't github's codeowners do that?
@qwerty-or1yg
@qwerty-or1yg 3 жыл бұрын
@@devnol I know that they can limit access to specific repos, but not directories inside a repo. Don't think they can limit your access to specific directories inside a repo (unless I missed and not aware of something)
@mudscuffer
@mudscuffer 3 жыл бұрын
@@devnol Codeowners can limit write / merge / PR rights. But not read access.
@muizzy
@muizzy 3 жыл бұрын
Aside from fringe cases (like fraud rules), why would you want to manage read access?
@mudscuffer
@mudscuffer 3 жыл бұрын
@@muizzy For example if you use freelancers or outsourced development for the frontend or for integrations, but don't want them to see your proprietary backend algorithms.
@saurabhjainwal4604
@saurabhjainwal4604 3 жыл бұрын
We use nx at our firm, it’s really cool and definitely helps maintain our mono repo. 😀
@middlefloor
@middlefloor 3 жыл бұрын
🙌
@skyhappy
@skyhappy 3 жыл бұрын
@@middlefloor Why are you raising your hands? Are you catching a basketball?
@middlefloor
@middlefloor 3 жыл бұрын
@@skyhappy yes!
@skyhappy
@skyhappy 3 жыл бұрын
@@middlefloor well this is a tech channel not a basketball one
@johngc2010
@johngc2010 3 жыл бұрын
@@skyhappy Jeffrey Cross is one of the maintainers of Nx...
@JonathanAdami
@JonathanAdami 3 жыл бұрын
"You might know him with packages like Formik" Telling me that after 3 weeks of trying to solve issues with fomik and eventually having to refactor my entire code base to use react-hook-forms (which is MUUUUCH better) makes me wanna ditch Turborepo even if I know nothing about it hahaha Cheers for the video!
@jztsaurabh8111
@jztsaurabh8111 3 жыл бұрын
Formik has its own issue but it created the whole form library ecosytem
@codevev
@codevev 3 жыл бұрын
That's literally what we've been doing in the last couple weeks haha
@dmitrii_zolotuhin
@dmitrii_zolotuhin 3 жыл бұрын
Man your channel is pure gold.
@ultimatum97
@ultimatum97 3 жыл бұрын
As somone who works at a certain large software company with proprietary source code manager, repository and build tool I can tell you it is no fun at all. It is a nightmare dealing with dependencies when you don't have Maven or Gradle.
@JChen7
@JChen7 3 жыл бұрын
Sounds like someone has a case of the NIH blues.
@bobobo1673
@bobobo1673 3 жыл бұрын
"Maven or Gradle" Look with Gradle I can't comment but with Maven? are you serious? Do you know how complicated it is to simply add a project and the problems it gives looking for its dependencies? Sometimes you have to solve the problems yourself by hand (looking at the dependency tree, and that I don't even talk about projects with Wildfly is a horror) and it makes me lose time from work when all I wanted was to install a library
@not_nerp
@not_nerp 3 жыл бұрын
would this proprietary build tool happen to share a name with a certain south american country
@ultimatum97
@ultimatum97 3 жыл бұрын
@@bobobo1673 Be thankful that atleast it downloads the versions you mention in pom. The build system I work with needs a kind of dummy project just to deal with dependencies. It then does some black magic, pulls the wrong jars in a secret location and then shoves it into the cryptic buildpath directly during environment level global build 🤣🤣
@ultimatum97
@ultimatum97 3 жыл бұрын
@@not_nerp Maybe....not
@0xedb
@0xedb 3 жыл бұрын
turborepo is great. I just want a demo where everything is done from scratch instead of the boilerplate to better explain it.
@AndersonSousa33
@AndersonSousa33 3 жыл бұрын
me too
@kevyyar
@kevyyar 3 жыл бұрын
That is my only problem with Fireship. Everything else is great.
@floffah264
@floffah264 3 жыл бұрын
their docs have a good step by step process of this and their examples help a lot
@cornheadahh
@cornheadahh 3 жыл бұрын
I'm loving the frequent uploads
@thepianist6425
@thepianist6425 3 жыл бұрын
Would love to see a video covering Micro Frontends. Having said that, always a big fan of the quality of videos. 10/10 college degree material right here. I should start adding fireship io under the education section of my resume now.
@DominicanRepublicInvestment
@DominicanRepublicInvestment 3 жыл бұрын
Second this!
@muizzy
@muizzy 3 жыл бұрын
I work with a micro frontend every day (though admittedly on the backend). Do you have any specific questions? I may be able to answer them.
@ThiagoVieira91
@ThiagoVieira91 3 жыл бұрын
@@muizzy Do you think micro frontends improved your development experience in you project? How did micro frontends improved your team workflow? Can you talk about some trade offs in comparison to currently traditional frontend architectures?
@JChen7
@JChen7 3 жыл бұрын
Watched "Java in 100 seconds". - Proficient in Java
@essayemyoung4009
@essayemyoung4009 3 жыл бұрын
Would check out Jack Herrington’s videos on this (e.g., kzbin.info/www/bejne/onyupJ2mfZVsmrc where he goes through a React example in detail)
@nathanbrown19
@nathanbrown19 3 жыл бұрын
Worked in both mono and traditional repos. Monorepo removes so many dependency and versioning headaches.
@archmad
@archmad 2 жыл бұрын
It can go to an opposite way. 1 app only supported old version while the other uses the new
@Badadodadoop
@Badadodadoop 2 жыл бұрын
You have no idea how helpful this video is and how much time it saved me. THANK YOU.
@KevinVandyTech
@KevinVandyTech 3 жыл бұрын
I just converted most of my company's front end code to Nx. It's been a game changer
@middlefloor
@middlefloor 3 жыл бұрын
Awesome to hear!
@andyhall7032
@andyhall7032 2 жыл бұрын
I like how the narrator sounds like text-to-speech software...it's one of the many appealing aspects of this channel.
@Viviko
@Viviko 3 жыл бұрын
I usually only use Monorepo on things like Microservice based systems. I kind of feel like having one repository for ALL your products kinda is overkill. But I guess not, after watching this.
@AhmedKachkach
@AhmedKachkach 3 жыл бұрын
What's overkill is going through the effort of maintaining different repos for a small project. If your web app, your mobile app and your data processing jobs all use the same data representation, why not store everything in the same repo and keep everything in sync?
@clementbowe7594
@clementbowe7594 2 жыл бұрын
I'm probably really late on this but congratulations on reaching 1m subs!! I watch daily and always learn a new thing or two. I hope that you keep making amazing content!
@devbyemil5201
@devbyemil5201 3 жыл бұрын
You are really doing some great explanations! How about a video about how to plan software and what tools to use? Would love to see it👍
@pablopoggio4899
@pablopoggio4899 3 жыл бұрын
That’d be pretty cool actually
@kettenbach
@kettenbach 3 жыл бұрын
Frikin love you man! It's been 84 years. That was frikin hilarious bro. 💪❤️👍
@a.c.vermillion
@a.c.vermillion 3 жыл бұрын
I was waiting for so long to finally see this uploaded. Thank you!
@wheytomuchforher
@wheytomuchforher 3 жыл бұрын
Serious question. Why would I use this instead of NX's built in CLI tooling to run the "affected" aspects of my code base. I use NX for both of my side projects
@syamjulio3685
@syamjulio3685 3 жыл бұрын
I'm interested in this as well.
@middlefloor
@middlefloor 3 жыл бұрын
Turbo would probably be used instead of Nx, not alongside it. If you're already using Nx, turbo won't do anything for you that Nx doesn't do.
@code_react
@code_react 2 жыл бұрын
you saved my life by explaining how monorepos works. Thank you so much.
@erkinkurt6799
@erkinkurt6799 3 жыл бұрын
I was searching for this to decide if I should use this approach or not. OMG either you can hear me or you have amazing skills to access my search history
@isaac4386
@isaac4386 3 жыл бұрын
I feel like your tracking my Google search wow. Been researching monorepo since the weekend and now you post this 🤣 . Love it
@PatricioHondagneuRoig
@PatricioHondagneuRoig 3 жыл бұрын
Your videos are my non-guilty pleasure, I always leave having learned cool stuff and enjoying it, it's like having celery for dessert.
@alexIVMKD
@alexIVMKD 3 жыл бұрын
Your videos are spectacular, congratulations in advance for 1M
@junzhengca
@junzhengca 11 ай бұрын
Monorepo coupled with almost perfect IaC is a god send, it gives amazing visibility to everything. Yes it is complex, and the on-boarding learning curve will be steep, but once you are familiar with it, you don’t even need to leave your IDE to find anything.
@IsaacAlcocer
@IsaacAlcocer 2 жыл бұрын
You just give me an idea for a personal project, kudos... this is a nice video to watch.
@anubhavbansal8922
@anubhavbansal8922 9 ай бұрын
too much of information in just 10mins that's why I love you
@wlockuz4467
@wlockuz4467 2 жыл бұрын
After this video, I can confidently add 5 years of experience to "Managing monorepos" on my resume and move my Tic Tac Toe app and Todo app which have nothing in common, under a single monorepo.
@Filaxsan
@Filaxsan 3 жыл бұрын
Our man Jeff becoming funnier and funnier (and informative!) every video. Way to go Jeff, love you
@osagiee9553
@osagiee9553 3 жыл бұрын
ive been feeling the need for a monorepo for quite some time. this is helpful.
@krishgarg2806
@krishgarg2806 3 жыл бұрын
Time to use turbo repo for my todo app.
@nmanikiran
@nmanikiran 2 жыл бұрын
Please build a course around it (mono repo) with all the tools you have mentioned. take 1 big project and architect the same in all tools like nx, turborepo, lerna, yarn, blaze, webpack module federation etc
@theatypicaldeveloper
@theatypicaldeveloper 3 жыл бұрын
you should always think big and leave an extra space in your app (if possible) so it's growth-friendly great vid, as always!
@andreb.1352
@andreb.1352 3 жыл бұрын
you should always think small, and iterate it to the better.. otherwise you end up in perfection and you need a lot of time instead of just shipping a lot of small parts
@zyriab5797
@zyriab5797 Жыл бұрын
Keep it lean and modular
@OptrixTV
@OptrixTV 3 жыл бұрын
i knew this was coming when i saw you put "nice" on Vercel's stream on Turborepo :D
@yurayurec6071
@yurayurec6071 3 жыл бұрын
Top quality as always 👌 waiting for your video on webpack module federation, another hyped tool on the market
@dlysele
@dlysele 3 жыл бұрын
Quality video that everyone should watch
@FilledStacks
@FilledStacks 3 жыл бұрын
Awesome vid. Good idea to build something like this for flutter as well
@chinmaykabi
@chinmaykabi 3 жыл бұрын
Melos?
@FilledStacks
@FilledStacks 3 жыл бұрын
@@chinmaykabi We use melos but it's not a build tool, it's more accurately defined as a "script coordinator". You're bundling commands for multiple packages under a single command. No caching, no smart rebuilds, etc. It will always execute all commands that you defined.
@lixou
@lixou 3 жыл бұрын
Me finishing after 3 days my MonoRepo setup. 2 hours later, this video got uploaded….
@yodkwtf
@yodkwtf 3 жыл бұрын
So much information in one video. Huge respect. ❤️
@conororeilly5492
@conororeilly5492 3 жыл бұрын
I've got 3 apps, possibly a 4th coming if i finish the current project soon all along the same theme, i might try creating a monorepo for them to share some of the common functionality. It's most likely overkill at this stage but each app was to learn something, so i may as well do it and see what i learn
@DiegoBM
@DiegoBM 2 жыл бұрын
So two questions mainly. How do those tools help solve the massive git stack of changes and vscode to keep up with them, and do nx and turborepo override lerna? Or is lerna supposed to work in tandem with any of those? From what I can read in turborepo's site it seems like it can do all that lerna does?
@Balance-8
@Balance-8 3 жыл бұрын
you literally read my mind on the video I wanted to see. Incredible!
@abh1yan
@abh1yan 3 жыл бұрын
Great video Jeff, really wanted to see this.
@badreddine8727
@badreddine8727 3 жыл бұрын
Thank you for the video I was confused when vercel acquired turbo repo and what it was, this cleared up a lot of things
@MikePatterson8831
@MikePatterson8831 2 жыл бұрын
The weirdestthing for me is seeing big companies modify distributed version control systems so that they operate more like centralized version control systems. All the problems with git scaling is from git's own setup. Really glad I no longer work at one of the big companies mentioned here. Central version control systems manage monorepos so much better in terms of speed and out of the box access management. And this particular company's proprietary build tool had such poor documentation that it was almost tribal knowledge when you needed someone to setup the build pipeline or fix a bug. Great video!
@sakthisanthosh0103
@sakthisanthosh0103 3 жыл бұрын
You're videos are great. Congratulations for your 1M subscriber mark. 🎉🎉🎉
@GagandeepSingh1984
@GagandeepSingh1984 2 жыл бұрын
So much to understand in this build flows .. thanks for sharing it..
@nitroflap
@nitroflap 3 жыл бұрын
Funniest thing is that today I was thinking exactly about monorepos & multi repos. Fireship reads our minds.
@jedcal
@jedcal 3 жыл бұрын
i love this channel
@AlexEscalante
@AlexEscalante 2 жыл бұрын
I think I am trying Turborepo soon! Thanks for your videos!
@michaeldausmann6066
@michaeldausmann6066 6 ай бұрын
Just finished refactoring my big messy Nuxt + background processes app into a clean and efficient monorepo with turborepo. Should have done this from the start, so much better
@reed6514
@reed6514 2 жыл бұрын
i'm a php dev with about 10 foss packages, many depending on eachother, and composer (php's dependency manager) works great for me. & I think gitlab has a built-in feature for mono-repos, though idk how feature rich it is.
@reed6514
@reed6514 2 жыл бұрын
Okay, i have quite a few more foss packages than 10 ... but i estimate only about 10 of them are useful ... i just open source most stuff i write.
@maxencedc
@maxencedc 3 жыл бұрын
Google dev : changes one line of code Piper : here, deal with those 15131 merge conflicts
@haxney
@haxney 2 жыл бұрын
You only deal with merge conflicts in those specific files you are modifying. There is (almost) no branching, so you don't have to deal with merge conflicts from other people's commits. If someone changed the API of a library you depend on between when you start writing a change and when you submit it, then you'd have to deal with that, but that's a reason to make frequent, small changes. Ideally, each commit to head should take under a week to write and be only a few hundred lines of code at most. Obviously, that's not always possible, but it's a good starting point. If I make a change to a common library which would break other people, then it's my responsibility to provide a migration path to the new behavior. Since it's a monorepo, I can easily find all of the callers of my library and either fix them myself or ask the owners of those files to fix them.
@maxencedc
@maxencedc 2 жыл бұрын
@@haxney Very interesting, thanks
@codeaperture
@codeaperture 3 жыл бұрын
Let's get fireship to the moon 🚀
@midas6659
@midas6659 3 жыл бұрын
Best tech KZbinr on the planet yo
@ThaChillz
@ThaChillz 3 жыл бұрын
Thanks Jeff, this video was very cache
@abhinav.robinson
@abhinav.robinson 3 жыл бұрын
Amazing,
@parzh
@parzh Жыл бұрын
2:45 Correction: in monorepos, 'npm run test' works exactly the same as in non-monorepos, i.e., it is not "test everything", but rather "run 'test' command of the root", - if there's no test command, it will fail. To run tests in all workspaces, use 'npm run test --workspaces' or (shorthand) 'npm t -ws'
@uwuLegacy
@uwuLegacy 3 жыл бұрын
YES finally monorepos are getting more coverage
@marccawood
@marccawood Жыл бұрын
I love the fact that you can download the cache. Oxymoron in action.
@NezzyLawd
@NezzyLawd 3 жыл бұрын
Been watching for ages, but not subscribed. I don't know how!
@rayanez
@rayanez 3 жыл бұрын
Awesome video, thanks for the info. Do you know if there's a similar tool for Java codebases? or, I don't know if it makes sense, heterogeneous code bases?
@middlefloor
@middlefloor 3 жыл бұрын
Gradle's probably the closest Java-first tool. Most of the tools in the video can be used for multi-language codebases, but Bazel and Nx have plugins that make it easier to work with different technologies/languages.
@joerivde
@joerivde 3 жыл бұрын
If you do want to switch to linux, I can recommend Zorin OS (pro version). Switched a year ago, never going back to windows for anything other than gaming or 3D related projects.
@MikePeiman
@MikePeiman 2 жыл бұрын
Thanks for sharing, I had a look and this might be my next OS!
@ZackHoherchak
@ZackHoherchak 3 жыл бұрын
Great explanation, but efficiencies aside, I think I still prefer separate repositories for MOST code bases. For some reason it is easier for my brain to keep things separated.
@ed_iz_ed
@ed_iz_ed 2 жыл бұрын
pretty interesting, my mind works a lot better if everything is in one place
@felixoghina553
@felixoghina553 2 жыл бұрын
Setting up a monorepo for all my unfinished projects
@laudijksterhuis
@laudijksterhuis 3 жыл бұрын
Video request: Firebase emulator suite 😃 Also, great video, as always 💯
@igortobert
@igortobert 2 жыл бұрын
0:07 top right corner, Htop and ping. Like a haker in best indian movies))
@lambrohan
@lambrohan 3 жыл бұрын
I knew it coming, since you starred the repo 2 days ago!
@VolodymyrDovbenko
@VolodymyrDovbenko 3 жыл бұрын
That's a good piece of self-criticism regarding using Windows and not using Linux :)
@albert21994
@albert21994 3 жыл бұрын
Get the Linux DX with remote containers ;) you can even clone the repository to the docker instance to get the speeds
@WhatIsThis-zq4hk
@WhatIsThis-zq4hk 3 жыл бұрын
why can't we go back to the good old days when programming was actually fun. Programming in 2021 is just spending all your time trying to figure out how to use 15 thousand tools that are supposed to make your life easier but in reality it actually makes your life hell.
@jrapp654
@jrapp654 2 жыл бұрын
Let’s keep in mind it’s probably a better pattern to keep everything decoupled, these companies are just so deep in their ways that changing to something more scalable and decoupled isn’t worth the investmen
@pateatlau
@pateatlau Жыл бұрын
t*
@jonasbroms
@jonasbroms 3 жыл бұрын
THANKS! Great video! I have to test this now on my monorepos. :D
@Mmustafa-v4j
@Mmustafa-v4j 2 жыл бұрын
Amazing & concise explanation.
@sessionswithtemitope
@sessionswithtemitope 3 жыл бұрын
Thank you for this. It's what's I need right now
@officialismailshah
@officialismailshah 3 жыл бұрын
Sir you are just awesome pro pro level knowledge.....
@MrMeszaros
@MrMeszaros Жыл бұрын
Cool - like Gradle! Except that build caching sharing - that sounds like fun
@toilet_man_G
@toilet_man_G 3 жыл бұрын
Just need this! Thanks so much for the explanation
@racecarjonny8460
@racecarjonny8460 3 жыл бұрын
I have worked with monorepos built with lerna. OMG are they difficult to maintain!
@wxrld1
@wxrld1 3 жыл бұрын
perfect, now I just need to start a big project. maybe next weekend. yeah.
@codewizme
@codewizme 3 жыл бұрын
"I blame myself for not using Linux" Linux User excitement level goes up to 1000000% [I am a Linux user too] AS always #1 Content creator Fireship
@jawshoeadan
@jawshoeadan 3 жыл бұрын
Do devcontainers in 100 secs! 🔥🔥
@mylifegamer1
@mylifegamer1 3 жыл бұрын
Hey, I used that in creating a blockchain 😃 Thanks
@wakham11
@wakham11 3 жыл бұрын
1mil on the way!
@agzapiola
@agzapiola 3 жыл бұрын
great video and tools! question: what about the cases where, say, front and backend are written on different languages? thanks!
@middlefloor
@middlefloor 3 жыл бұрын
It's nice to have both backend and frontend in the same repo, so you can have atomic commits when you need to change both. I think all the tools mentioned in the video support building anything, but Bazel and Nx have specific plugins for managing and building .Net, Go, Java, Python, etc.
@haxney
@haxney 2 жыл бұрын
Blaze/bazel has build rules for each different language. One mental shift is that with more traditional setups, you have some per-repo config file, so the repository become the unit of configuration. In a giant mono repo, there's basically nothing which is configured at the repo level, so all of your config applies to some specific directory. So you have one directory with a bunch of Java files and another with a bunch of Typescript files. There are different ways those get deployed to live servers, but at a simple level, you're just running "blaze build //path/to/java/project" or "blaze build //path/to/typescript/project", and the build rules handle which compiler to invoke.
@MercyFromOverwatch2
@MercyFromOverwatch2 3 жыл бұрын
Jeff is still my favourite tech youtuber
@Ultimacho
@Ultimacho 2 жыл бұрын
I wonder what are the main advantages of using Turborepo against the standard yarn workspaces? We are using the latter, but we will move to a new tool if we see obvious benefits. We only run one app at a time during development, so the process doesn't seem to differ much from the one described in the video.
@jesusmgw
@jesusmgw 3 ай бұрын
Having sub 10 second rebuild times is actually massive for productivity.
How to structure a JS/TS monorepo (From Zero to Turbo - Part 1)
11:58
What is a monorepo? | Getting started with nx
18:30
Coding Garden
Рет қаралды 14 М.
Lazy days…
00:24
Anwar Jibawi
Рет қаралды 9 МЛН
Quando A Diferença De Altura É Muito Grande 😲😂
00:12
Mari Maria
Рет қаралды 32 МЛН
Why my chat app broke… a cautionary tale
5:33
Fireship
Рет қаралды 467 М.
Computing just changed forever… but there’s a catch
5:00
Fireship
Рет қаралды 753 М.
What Is A Monorepo And Why You Should Care - Monorepo vs. Polyrepo
14:44
10 regrets of experienced programmers
8:16
Fireship
Рет қаралды 1,5 МЛН
I used a Monorepo for 12 months - here’s my opinion
9:50
Software Developer Diaries
Рет қаралды 31 М.
7 Cryptography Concepts EVERY Developer Should Know
11:55
Fireship
Рет қаралды 1,4 МЛН
How to OVER Engineer a Website // What is a Tech Stack?
11:20
Fireship
Рет қаралды 2,5 МЛН
Why Google and Meta Put Billion Lines of Code In 1 Repository?
7:09
The intro to Docker I wish I had when I started
18:27
typecraft
Рет қаралды 294 М.
Lazy days…
00:24
Anwar Jibawi
Рет қаралды 9 МЛН