Walk through the various elements of a solid and standard React enterprise architecture and explore several elements that will be covered in future videos.
- [Instructor] So, now we have a simple project setup. But, what is it made of? And, what are the elements of an enterprise architecture if you were to build it on your own? Let's explore this a bit. So, the first element that is really important, and especially when you have large teams that share a lot of code, and share a lot of modules. You need to use containers, like Docker, for example. So, this allow you to modularize and package all the dependencies that you need to build your project, as if you add the project native into your computer.
So, if you're building something and then you share all that code to someone else, you want to make sure that whatever modules, dependencies, or everything else that you have setup in your system, is going to be replicated exactly the same into another system. And this is what containers are for. So, you put all your dependencies inside of a container, you share that container to other developers, and then they can install and have exactly the same thing as what you have setup on your system. The second thing is, continuous integration deployment checks for code for errors.
So, basically what that does, it allows you to whenever you're deploying to, a repo, for example, you want to make sure that all the code is checked for errors, because you have a dependency or you have done something in your system that makes the application works, when you actually transfer that to other environments, it's going to work as well. So, the CI/CD process allows you to check for errors, and Travis does that very well. So, npm modules allows you to modularize your applications.
So if you want to start having specific modules inside of your applications, for example, if you want to have all your components inside of a module, and then create that as a dependency that everybody can install later on, then you can create custom modules and publish them to npm, and then allow people to actually install the dependencies inside of the project through npm. So, this is something that we're going to go through in one of the future videos. Testing and linting is extremely important especially as you scale, especially when you're starting small.
If you have the the right practices from the get-go, if you are testing and linting, all throughout the application's growth, then you're not going to have a huge undertaking when your application reaches much larger levels. So, it's really important to test and lint all throughout the life of your application. The next thing is, SSR, server-side rendering is something that I always see as a default as your application grows, because there's going to be a lot of things, a lot of vantages from getting SSR into your application.
Mostly performance, but also, if you are looking into SEL, this is going to be a huge thing for you, because java script is not really good right now with SEL. And this going to be one of the advantages of doing SSR. The last thing is, PWA, progressive web app. And we're going to through in detail what that is, and what it offers. But, basically, it offers you the possibility of having native functions. So, for example, being offline, or to push notifications, or do a whole bunch of stuff that are specific to a native application.
So, the best example is, when you use google docs, or google drive, and all of a sudden you lose the internet, you can continue working on your application, while this is a progressive web application. So, again, we're going to go through each of these items in detail and how you can do these things, for example, we're actually going to create an npm module, in one of the videos. Just to make sure that you have a good understanding of the pieces of an enterprise application, we wanted to kind of summarize them into this video.
But, now, we'll go through each of these items in detail. Okay, so let's move on.