That's a long journey for going work on mine other projects due to i participate a startup mate together work on a startup projects. In the projects, i learn and workaround back-end framework in many of languages ( due to private work cant show too much code ). Also i does self-taught some front-end frameworks by learn from mine front-end mate's code & re-base using flutter. It was taken about half of a year to build up a proper back-end server due to inexperienced of my skills and technique so take time to learn.
I have also played around many frameworks such as
Back-end
- ExpressJS - Most basic of the back-end frameworks
- NestJS - A progressive Node.js framework for building efficient and scalable server-side applications on top of TypeScript & JavaScript (ES6, ES7, ES8) heavily inspired by Angular
- SailsJS - A MVC framework inspired from Ruby on Rails, have a really good structure and newbie friendly
- HapiJS - Quite same with Express but more extensible and have a big of community built many of plugins
- Fastify - Fastest framework in javascript, they also have the comparsion benchmarks.
- Nancy - Lightweight web framework for .NET C#
- ASP .Net - Open source web framework for building modern web apps and services with .NET
- Laravel - The PHP Framework For Web Artisans, quite newbie friendly.
- Yii2 - The Fast, Secure and Professional PHP Framework, have a quite same structure with SailsJS.
Front-end
- React-Native - build real mobile apps with react-native using ReactJS built by Facebook Developers Team.
- Flutter - using a different oop languages 'Dart' to build mobile apps built by Google.
With these frameworks i have take a long time to choose which should i use and which better, due to the ORM / ODM ( Object Relation Mapper, Object Document Mapper ) different on different frameworks too. And for a back-end developer must know many thing such as services like firebase, architecture such as microservice, monolothic. They still have many thing i doesn't introduce here cause i will introduce by post due to busy so haven't post at this time will only introduce some better and important things.
Firebase is a very very good services for back-end & also support front-end. They also provided by google. They support authenticate managemenet, realtime database, analytics, dynamic links, and too much they have supported.
module.exports = async (req, res, proceed) =>
{
const header = req.headers['x-firebase-token'];
if (header)
{
try
{
const verifyResult = await firebase.auth.verifyIdToken(header);
req.firebaseUser = verifyResult;
return proceed();
}
catch (error)
{
return res.unauthorized(error.message);
}
}
return res.unauthorized('Firebase token header required.');
};
This was mine one of the sample usage by verify incoming request headers and check is the users registered or is valid to make a back-end api call. And for realtime data, you can think a example like when you update something and u must update it to the client as fast as possible and without refresh the page, mostly u can think a chart.
Flutter is a good framework too since it provided by google so community expand quite fast. I would use it to build for my FYP apps so i have structured a sample projects inspired from mine front-end developer startup teams using Redux & Selectors & Thunk & Navigator. Redux mainly for state management of whole apps and use the state anywhere in the components. Selectors for filtering data in the state. Thunk for action middleware for dispatch async action like api call. Since flutter is using 'Dart' a oop like language so i would more like to use Flutter instead of react native.
Every of my containers have that structure, its look like redux with react. But for navigator & reducerInjector quite different in react native will be easier, in flutter must be defined all of the reducer. Navigator also need to build a middleware for it to work with redux ( posted by flutter groups already ).
Depends on personal who love which structure and language and choose your favorite framework, these 2 framework is really good at all.
I would like talk to here others, i will post at another post to explain longer about the framework & other platform i have touched such as game development, arduino, apps, ++.