Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
We don’t allow questions seeking recommendations for books, tools, software libraries, and more. You can edit the question so it can be answered with facts and citations.
Closed 4 years ago.
Improve this question
I recently watched a good video with regards to a modular JavaScript architecture including a sandbox. I was wondering if there is anything that's been implemented in the wild?
Is the framework downloadable or an implementation of it?
The videos were great but they were only theory and no code was available. Original video is here.
I'm the author of boilerplateJS. After couple of complex JS projects, I wanted to compile my experience in building complex application in JS as a open source reference architecture. BoilerplateJS handles all concerns that are discussed by Nicholas, but not restricted to the ideas presented there.
BoilerplateJS lets you to structure your complex product suite in to product-modules and UI components. There are several samples implemented to follow in the reference architecture code base.
http://boilerplatejs.org/
Among other concerns it handles are:
- structuring the solution
- creating a module hierarchy
- Dependency management
- Event based messaging,
- Routing and embeddable components
- Unit testing
- Localization
- Document generation
- JS optimizations and obfuscation
See it in action here:
http://boilerplatejs.org/samples/productsuite/index.html
I have done a comparison about different implementations of this theory by Zakas.
I've compared...
ScaleApp
Kernel.js
Terrifically
After checking all pros and cons I decided to use Hydra.js (I needed to extend modules easily), but the most important is to know what do you need/expect of these type of frameworks and make your own comparison.
These are the topics I checked:
Framework agnostic
Documentation
Size
Trending
Allow multiple module instances
Less coupling
Easy testing of modules
Unit tested
Workshop/Video/Demos/Slides
Extensible (plugins or similar)
Allow extension of modules
Company Support
Minimized versions
License
Community
Maturity of project
Last commit
Mentions in blogs/webs
Github
Dependencies
Watchers
Forks / Development Team Size
Error Manager
Async modules load
Deferred-Promise integration
Can be used in Browser and Node.js
Tell me if need more help.
Update:
I'm checking a new framework that is in development preview 'Backbone Aura' from Addyosmani
Related
Closed. This question is opinion-based. It is not currently accepting answers.
Want to improve this question? Update the question so it can be answered with facts and citations by editing this post.
Closed 4 years ago.
Improve this question
I am doing some research into the possibility of code splitting a huge monolith SPA (AngularJS) into multiple repositories. Whether we should do it or not? The benefits and pitfalls.
The Idea:
The application consists of multiple features (user management, analytics, event management) which are made as individual angular.module.
The idea was to split these different modules into their own repository and have some kind of master repository which would put all the pieces together before deploying.
The reason
Our application is huge now and will only get bigger. Also, the number of developers working on it is increasing.
Other reasons:
More manageable and maintainable - only feature specific files available
Easier to update to newer version of angular - one repo at a time
Findings
I have read that micro frontend architecture is becoming a more and more popular way of structuring big applications.
On the other hand, this will scatter files making it more difficult when fx. refactoring shared modules. It also appears that fx. Facebook and Google have mono repo.
After several days of research, I'm still torn. I see advantages with both, mono repository and multiple repositories.
I have also looked into git submodule as a way to "import" the features into the main repository. This is my least favorite options though. Also, I've never heard of git submodule before now so if anybody has some experience in that area please feel free to jump in.
Finally, the most important question: Is it even possible to have one AngularJS application split into multiple repositories?
Additional information:
Microservices: Mono repo vs. multiple repositories
Handling Monolith Code Bases
I have had the same issue the internal conflict that comes with it. The best answer I have found is this. "You and your team are the best people to answer this question." I know this goes against the hype of things like Micro FrontEnds will rule the world but it is the truth. This explains why some people use monoliths and are really successful like Facebook and others have the opposite outcome go with Micro Frontends and then become successful.
The only real problem in managing large amounts of code is a human problem not a technical problem. So this is a social issue. Sure, technical things change with this decision but in the end of the day you are just changing the human interaction between programmers and this code base.
So why is your team the most qualified to make this decision. You know the social dynamics of your team and corporate culture better then the rest of us.
I asked myself these types of questions when I was making this decision.
How does the team work together?
How is your team trained?
How flexible is your team?
How clear and open is the communication between teams and team members?
I would answer these types of questions and continue using case studies like Facebook which proved size of the team on a monolith does not really matter but how you work together on that monolith does and make the decision based on that.
Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
We don’t allow questions seeking recommendations for books, tools, software libraries, and more. You can edit the question so it can be answered with facts and citations.
Closed 5 years ago.
Improve this question
I'm a designer trying to learn js. I have (kinda) master HTML5 and CSS3 and moving onto Javascript. After much research, I see most people suggesting learning react, ember, angular, or polymer.
What are the difference between these and which framework or library should I learn if I want to build my own SaaS program?
You are asking a significant question where the answer really depends on what you want to do.
Here is a short discussion on the difference between React and Ember HERE
In short, Ember is an opinionated framework where Reach is more of a front end 'view' where you have options for your back end.
Similar to the differences between React and Ember, Angular is a complete framework for building apps, Polymer is a library for creating components.
Picking the right tool for the job depends on a number of things, such as your experience with coding languages, resources for front and back end development, security concerns, performance, how your SaaS will be deployed, etc...
I recommend creating a set of requirements that your SaaS will have, then looking into each of the framework options to help determine which is the right tool for you. You should look into learning ES6, there are lots of free tutorials. ES6 is becoming more Python like and easier to use--more readable.
They are all good options. My preference is a Python (like django) back end with a React front end. The React components you build can be used with React-Native to build mobile apps for Android, iOS, and (yes, really) Windows 10 UWP apps.
There is a learning curve for all of these, hours of fun.
Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
We don’t allow questions seeking recommendations for books, tools, software libraries, and more. You can edit the question so it can be answered with facts and citations.
Closed 5 years ago.
Improve this question
After research i made on the web, i found two frameworks: for desktop development - electron and for mobile development - ionic
Are above platforms recommended choices for mobile and desktop development with web technologies? If not which frameworks should we use for this purpose?
There is few technologies regarding to your question. Cordova-PhoneGap-Ionic (they rely on Apache Cordova) applications are running on WebViews. This means there may be performance issues if you use them for some goals, for example hard calculations. By the way you can still use native functions via Cordova Plugins too.
Also there are NativeScript and ReactNative too. With these technologies, your applications are running on native environment. It looks like these technologies are trending now.
You have a bunch of different possibilities, for instance OnsenUI, Kendo, Ionic (1 or 2), etc. I would recommend you to spend a bit of time to understand which one is better for your needs, even though I would say that Ionic is pretty popular now.
This page is a good start to have an overview of a few popular ones with a short review. http://www.gajotres.net/best-html5-mobile-app-frameworks-ionic-review/ Please note that Framework7 is not in the list, but might be worth mentionning (but I feel more iOS oriented).
Your question is specific about HTML, CSS and Javascript. But as a side note, please do not forget that you might have other options as well as suggested above (ReactNative, Xamarin with C#...) You may check: http://noeticforce.com/mobile-app-development-cordova-vs-react-native-vs-xamarin
Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
We don’t allow questions seeking recommendations for books, tools, software libraries, and more. You can edit the question so it can be answered with facts and citations.
Closed 6 years ago.
Improve this question
I am new to Node.js coming from a C#.net background. When coding in .net, I was use to using several of the design patterns to organize my code, service layer, repository, etc. When I needed to add logic that spanned multiple models, I could use services for this as well. Moving to Node.js and reviewing examples and sample code, etc. I do not see a lot of utilization of service layer, repositories, etc. What are some of the recommended practices for the following:
Code organization and structure, especially for apps rich in business logic?
How to handle logic that spans multiple models?
What are some good tutorials and sample code sites that demonstrate some good project and code structure with items (1 and (2 in mind?
.net comes with a lot of recommended approaches, practices, patterns and coding structure techniques that are actually very good recommendations. Sites like www.asp.net, etc. provide pretty good articles, etc. for these recommendations.
I am having trouble finding a consistent approach reviewing Node.js examples.
Like you I have come from C#/.NET to Node.js and found that much of what I thought was good practise in C# to be less than useful in Node.js.
Domain Driven Design (DDD) is not often discussed in a Node.js setting since DDD is usually associated with Object Oriented Design and Javascript is not an OO language (even though Javascript has prototype-based inheritance, a lot of OO patterns simply don't translate well to Javascript).
Instead we see more Microservice architectures whereby we break large domains down into smaller, decoupled services which perform one business function well. Node.js is perfect for these sorts of lightweight HTTP services.
The interesting thing I have found is that after trying a Microservices approach over DDD I actually find it much easier to implement and easier to keep things decoupled along appropriate lines. In fact when I go back to C# I find myself applying a Microservices approach there too.
In terms of patterns, abstracting away persistence is still an very good idea - something similar to the Repository Pattern translates well from OO to Node.js. As for where to put your business logic, I find I sometimes need a "Service" or "Application" layer over my repositories so I can reach into several repositories to compile a complex response. Sometimes you don't need that additional abstraction, so just put it where it's needed - don't get too religious about having layers for business logic - that's N-Tier thinking and it causes a lot of unnecessary code to be written. Add abstractions when they become useful, not as placeholders just in case they are needed - that's a kind of premature optimization.
When we need really high-level business logic, we may need to coordinate the actions of several Microservices. Node.js is your friend here too - you can write lightweight orchestration services that consume messages off an ESB and react to them.
Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
We don’t allow questions seeking recommendations for books, tools, software libraries, and more. You can edit the question so it can be answered with facts and citations.
Closed 5 years ago.
Improve this question
I'm working on a browser based game atm and already looking into options porting it to other platforms such as consoles or devices where playing in a web browser may not be suitable.
The game is pretty much all JavaScript with rendering done via a 2d canvas context.
What i was hoping for is that there is already a c++ library/api that will work in conjunction with maybe google's v8 engine to handle the canvas calls in JavaScript and render them with opengl or something similar
Does anyone know of a project out there that may be providing this functionality?
Otherwise how would you suppose I go about embedding my javascript in c++ with as little changes required to the javascript as possible as I don't really want to have to maintain too many differences between platforms?
Qt is a very nice C++ library compatible with LGPL licensing that among other things includes a webkit based widget with javascript support. Also as scripting language Qt uses javascript with a tight integration with C++ (it's easy to write a C++ class and and make it visible at the javascript level).
Qt is multi platform and comes with an highly sophisticated IDE.
Qt is not currently using V8 but the porting is in progress and they aim at providing a 100% backward compatible solution.
The only "problems" of Qt are IMO that:
It's huge
It's a framework, not a library. You cannot just "use" Qt easily, you should embrace the view (the documentation is however of excellent quality).
The long term prospects are a bit fuzzy (not as bad as a few months ago, tho)
I guess I'm a bit late here, but I'm searching for a similar solution. I found node-canvas and I do not know if it is feasible to hook that so it renders into something like an SDL or SFML-managed window or not.
But for my own purposes, I will port my code over to C++ and use Cairo directly with SFML and OpenGL.
Interesting idea - another possibility is using Adobe Air, and rendering the game via StageWebView and Flex 4. Here's some example code for using the thing if you're interested:
https://github.com/JustinBeckwith/frink/blob/master/frink-flex/src/controls/WebBrowser.as
An interesting Project that I have uses id FireBreath(firebreath.org). This is not exactly what you are looking for, but in some ways it would get you close. Firebreath allows the creation of browser plugins in C++. One of the features of Firebreath is it allows you to access and modify the DOM from the C++ in you browser plugin as well as create methods and properties in C++ that can be accessed from JavaScript on your page.