Searching for the framework of my dreams in node.js ecosystem by Mykyta Semenistyi

39
Searching for the framework of my dreams in node.js ecosystem Mykyta Semenistyi

Transcript of Searching for the framework of my dreams in node.js ecosystem by Mykyta Semenistyi

Searching for the framework of my dreams in node.js ecosystem

Mykyta Semenistyi

Mykyta Semenistyi

Donetsk National Technical Uni

@msemenistyi

Chief Technology Visioner@BinaryStudio

http://www.binary-studio.com/

Trying everything existing

https://github.com/B1naryStudio/nodejs-taskmanager-examples

● Minimal and flexible

● Myriad of HTTP utility methods

● Thin layer of fundamental features

● Sinatra inspired routing

● Largest community

TJ

● Not as minimal

● Configuration-centric

● Trusted by many big companies

Eran Hammer

● MVC architecture

● Connects to any database

● Renders with any template engine

● Adheres to REST principles

● Built on Express

Jared Hansson

For me it’s not about MVC

Mike McNeil

● Rails inspired

● Powerful ORM

● Websocket support

● Express for HTTP

Routing

Logging

https://github.com/expressjs/morgan

Validation

https://github.com/ctavan/express-validator

ORM

CLI

Authentication

http://passportjs.org/

Authorization

https://github.com/optimalbits/node_acl

Configuration

https://github.com/boo1ean/cnfg

+

● HTTP handling

● Lots of plugins

-

● Not structured

● Implements too little

True

+

● Implements more than Express

-

● Not structured

● Implements not enough

● Configurational

False

-

● v0.11

● Mimics Rails

+

● Implements a lot

● Gives structure to follow

True

izs, CEO @ npm, Inc

Modular applications

Problems to be solved by frameworks

● Security issues

How Homakov hacked Github

Helmet Kraken/Lusca

Problems to be solved by frameworks

● Avoid common mistakes

https://github.com/tj/node-blocked

Problems to be solved by frameworks

● Powerful Tooling

EF7 migratitons

capo - event browser

https://github.com/msemenistyi/capo

StrongLoop Api Explorer

https://strongloop.com/

What’s wrong with atomic modules

● You have to find the right ones

● You have to compose them again and again

● The API isn’t consistent

● There is a gap between modules after integration

● We need more combined opinionated solutions

Do I like node modules? I love themnot thisthis

kobzarjs

First impression

Features planned

● ORM / ODM● DAL● Configuration● Routing / Controllers● Logging● Validation● CLI for generators / migrations● Authentication, Authorization● WebSocket support

External Features

● Mail● Job Queue● SPDY support / RPC● Localization● FS handler● Cache handler

How I want it to be done

● Convention over ConfigurationShould be structured right at once, no XMLs to be lost within

How I want it to be done

● ModularEvery component may be used in the wild or exchanged to custom one

How I want it to be done

● With love to detailsCreate error page, handle HTTP status code automathically, etc.

https://github.com/B1naryStudio/express-api-response

Error page

How I want it to be done

● With love to JSLeverage native possibilities rather that trying to mimic other langs

Modules to depend on

Lo-dash Utility

BlueBirdPromises

InquirerCLI

and many more

Everyone is invited

https://github.com/kobzarjs/kobzar