How to build a scalable frontend framework (Part 1 of 2)

RAIN (Rapid Application INtegration) is a highly scalable frontend platform that orchestrates distributed rendering of loosely coupled components. It uses standard web technologies (JavaScript, HTML5, CSS3) on the client-side and NodeJS on the server-side. RAIN works on modern browsers and next generation devices (tablets, smart phones). It enables developers to focus on their core competence by providing simple feature reusage and tooling. The project is open-source and you can find it here.

Working on RAIN provided us some valuable insights into what does it means to build an open framework.

The first thing you need when working on a project like RAIN is a great team effort. You design an architecture based not only on a new technology like NodeJS, but also based on uncommon programming paradigm like asynchronous programming; therefore you are concerned about a lot of new situations that need to be dealt with. That’s why it is important to have an experienced team to handle multiple programming languages, to understand their design patterns and the associated pros and cons. Thus, taking hard architectural decisions won’t be a problem.

Team members should:

  1. Be open to changes. First, you have to agree, as a team, on coding guidelines. These are required in order to have the code easily read and understood. And, as some in the team once said, the programmers are creatures of habit – they are used to do things in a particular way and they try very hard to keep that from changing. But does it matter in the end if you use spaces or tabs, one or multiple var statements? Of course not, and after you agree on these small things, you’ll grow as a team and start to trust one another.
  2. Be able to accept decisions they don’t like. Designing a framework will involve a lot of debates. Everyone will bring his personal experience, and at some point you’ll have to rely on your teammate’s knowledge.
  3. Be willing to do things they would rather not. There is stuff that you just hate to do (write CSS files in my case), but you’ll learn new skills, so it will be useful for the team not to have specialized team members on different topics.

 

What challenges are you experiencing with managing an open framework?
Do you see ways that you can improve existing teams?
Share your thoughts with us below.

Category: Technology & Development
0 comments0

Your comment