Comments (3)
I'm not sure I'd describe current MEAN.JS as monolithic but rather as an opinionated project scaffold and what I like about it is it's flexibility.
I understand your points but I think if you're searching for some pluggable architecture kind of framework then you're probably looking for what MEAN.io was trying to do initially (and it didn't go well for them IMO), and these days you can consult feathers for what you're describing.
I don't like this approach because it creates complexity on the core framework and turns it into something that is by-design less flexible if you try to do simple things for users, or has too many abstractions.
Another reason I don't see much value in a complete pluggable framework is that these days microservices rule, and you'd probably be keeping your services very small and business-logic oriented to the point where you wouldn't really be "managing modules" per say across different projects, but instead you'd probably be sharing libraries and externalizing core functionalities out to their own microservices (like service discovery, users, auth, config mgmt, etc).
With that said, I like mean.js's vertical modules architecture and it does allow you to compartmentalise features or capabilities into their own module which in turn has its own routes, controllers, services, tests, etc). If you build them well then maybe you can wrap them as npm libs, and this way just share them across projects and simply do a drop-in module by just "sticking it" there in the modules/ dir.
The architecture I'd like to further build-on in Riess.js for the server-side is with regards to cleaner separation of concerns (addition of repository, services), general utilities (log, error handling),while keeping it flexible.
from riess.js.
Yeah that all makes sense.
Thanks for taking the time to write out such a good response. I'm still pretty new to web development and architecture so thanks for humoring my thoughts and providing such a constructive response :)
from riess.js.
No problems, keep on challenging and asking questions it's welcomed.
from riess.js.
Related Issues (13)
- Databases Support HOT 2
- Front-End Part Angular HOT 7
- Directory Structure HOT 9
- Feature: change express.js to class-style HOT 7
- Feature: Change MongoDB session store to Redis HOT 7
- Feature: Make session store configurable
- Bug: initViewEngine should be removed HOT 2
- Feature: configuration HOT 12
- Feature: Testing
- Some question about the Client side HOT 1
- Create a BaseError with toString, getStatus
- Create a sessionsHelper to separate the session store code in socket.io and express from being coupled to MongoDB sessions
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from riess.js.