606 karma · joined October 14, 2013
* If you're in favor of the micro-module approach, you shouldn't be relying directly on NPM, and should have something like Sinopia in place. After all, external code isn't the only thing you're vendoring, right?
* Micro modules are fine - but your application code should depend on a privately published utils module whose entry point is a prebuilt distribution of all your external micro-modules exposed through a facade. Your utils module deps are all installed as dev dependencies to avoid the Fractal Nightmare.
* Yay, now you have your own 'standard library' which still manages to leverage the NPM philosophy of distributed code. And if some twit decides to throw a tantrum, it will only impact future builds of your custom std lib - and you'll know about it at build time.
1. Much of it reads as"are you taking this approach? yes? don't take this approach. no? take this approach."
2. There are also a couple of flowchart errors ("are you working on a production app" appears twice for no reason).
3. The main reason React makes me sad is the need for excruciating flowcharts like this.
As a result, the entire thing comes across as self-parody. For context, I'm a developer who works on a large enterprise app with a full build toolchain (npm, babel, webpack, sass, etc ad infinitum).
Also, a good JS solution will dynamically reposition the tooltip if the requested orientation results in the tooltip being clipped by the viewport (eg. switch from right to left, top to bottom).
There's nothing here that seems superfluous when creating a web application. If you want to take advantage of advances to the Javascript language, you're going to have to go either with Babel/Traceur or some other kind of ES6 transpiler, or Typescript, which while ostensibly is it's own language, seems more and more headed to becoming defacto ES7.
If you work with a team of developers and want a modular structure for developing components as opposed to 10,000 line js files, you're going to need some kind of module system / bundler. This is hardly new, it's baked into .Net web projects (forget the name), and stuff like require.js has been around for ages. Webpack is just the latest iteration of that concept.
If you're building an app of any complexity, you're probably going to want to do some unit testing. For that, you'll need a test runner. Karma's a decent choice.
- update the view when changes from a backend data source arrive, either via some sort of polling mechanism or a persistent connection.
- allow the user to edit fields on the selected item.
- automatically save any pending changes when navigating away from the page.
AKA every CRUD app ever. You are going to need a framework (most commonly MV*) to deal with this in a maintainable way. Whether you use a vendor or create your own, you will end up with a framework.