As a junior software engineer I’ve been working recently on some React projects inside the professional area and I would like to share a big lesson I’ve learned.
Sometimes, when we’re beginners we start learning a new modern framework by following the page tutorial, creating our first project, consulting the API, creating new project, searching great components, consulting the API, creating new project, searching great components, consulting the API, creating new project, searching great components... InternalError: too much recursion.
So what’s next? The big problem is to think that what we are going to create is worse than other solutions.
-🤨 Okay, we need a calendar for our app, should I create a new calendar component?
-😎🍹 mmm no, I’ve been searching a bit and I found a really nice calendar, very complete and easy to use. This will save us a lot of time.
That’s all, using others components will save you time, at least at the beginning.
-🤨 hey, the client needs to pick a range of dates in this part of the app.
-🤯 oh, our calendar doesn’t allow it, I will try to find a new one.
We all know what are the time pressures and deadlines, but forcing you, your team or you company to spend a little bit more time creating generic reusable components that scale through the projects, attending to the new requirements and solving the use cases, will save you time. And that’s not all, your mind will work in a more abstract perspective of the solution. What we have to follow are these simple rules of component design:
*Scale the component on every new project.
*Always backwards compatible.
*Always with tests.
*Style has to be as modificable as possible.
*Keep a good documentation.
*Share it with the community.
With the last rule comes what I think is the most beautiful part of programming, see that other developers use your approach/solution/component and they get benefit with them.
-🤬 wait wait wait, we are not going to share our code for free, I pay you for this.
This is a typical boss thinking that doesn't have a large business perspective. By sharing your code you are building a brand, you expand your contacts, you generate knowledge inside and outside your company, you get less errors and, for sure, you don’t lose money (trust me). So if your company is a bit archaic with this, try to change it as possible, the benefits are multiple.
-🤨 hey, the client needs to pick a range of dates in this part of the app.
-🤓😝 oh, our calendar doesn’t allow it, I will add the functionality to it.
Top comments (1)
I completely agree.
Also, nice to have you here, Miguel!!