Slide 1

Slide 1 text

nest | progressive node.js framework | scalable +

Slide 2

Slide 2 text

@JecelynYeen From Kuala Lumpur, Malaysia • GDE - Web technologies, Angular • Software Architect @ Randstad Organizer:

Slide 3

Slide 3 text

• node is good, but… • nest is here to… • nest core concepts - live coding +

Slide 4

Slide 4 text

Story of building LEGO house

Slide 5

Slide 5 text

simple, intuitive, easy to start

Slide 6

Slide 6 text

structure, details, layout

Slide 7

Slide 7 text

No content

Slide 8

Slide 8 text

- Design & Plan - Modular - Ecosystem

Slide 9

Slide 9 text

Software Development with

Slide 10

Slide 10 text

JavaScript runtime that built on top of Google Chrome’s V8 engine.

Slide 11

Slide 11 text

is simple… - Setup time: 1 minute - Code: 2 lines

Slide 12

Slide 12 text

const app = require('express')(); app.listen(3000);

Slide 13

Slide 13 text

const app = require('express')(); app.get('/', (req, res) => res.send('hello, simple house!’)); app.listen(3000);

Slide 14

Slide 14 text

Why ? Language Reusability Productivity Community

Slide 15

Slide 15 text

Simplicity Wait, what is the definition of simple?

Slide 16

Slide 16 text

is simple up to a certain point When build medium - large applications, the definition of simple change.

Slide 17

Slide 17 text

Application Issues (Medium to Large) Lack of common architecture Fragile execution Problematic growth Structure Robustness Scalability

Slide 18

Slide 18 text

“We build our computer (systems) the way we build our cities. Over time, without a plan, on top of ruins.” - Ellen Ullman

Slide 19

Slide 19 text

No content

Slide 20

Slide 20 text

Why ? Application Architecture Dependency Injection Middleware Structure Platform Agnostic

Slide 21

Slide 21 text

$ npm install -g @nestjs/cli $ nest new lego-house CREATE /lego-house/.prettierrc (51 bytes) CREATE /lego-house/README.md (339 bytes) CREATE /lego-house/nodemon.json (147 bytes) CREATE /lego-house/package.json (1633 bytes) CREATE /lego-house/src/app.controller.spec.ts (639 bytes) CREATE /lego-house/src/app.controller.ts (266 bytes) CREATE /lego-house/src/app.module.ts (250 bytes) CREATE /lego-house/src/app.service.ts (138 bytes) CREATE /lego-house/src/main.hmr.ts (329 bytes) CREATE /lego-house/src/main.ts (208 bytes) CREATE /lego-house/test/app.e2e-spec.ts (593 bytes) CREATE /lego-house/test/jest-e2e.json (154 bytes) CREATE /lego-house/tsconfig.json (477 bytes) CREATE /lego-house/tslint.json (895 bytes) CREATE /lego-house/webpack.config.js (695 bytes) Naming

Slide 22

Slide 22 text

lego-house npm start

Slide 23

Slide 23 text

What’s (the good stuffs) in the project? Typescript Jest Nest

Slide 24

Slide 24 text

Core concepts Controllers Providers Modules Middleware Exception filters Pipes Guards Interceptors https://docs.nestjs.com/first-steps Controllers Providers Modules Middleware

Slide 25

Slide 25 text

Let’s code!

Slide 26

Slide 26 text

Platform Agnostic GraphQL Microservices Web Sockets Building apps with several transport layers & contexts

Slide 27

Slide 27 text

is Low entry threshold Fully featured Open source Compatibility

Slide 28

Slide 28 text

“It’s never on how difficult is to write bad code, it’s on how easy is to write good code.”

Slide 29

Slide 29 text

https://speakerdeck.com/chybie/progressive-nest +

Slide 30

Slide 30 text

References: @kammysliwiec - https://speakerdeck.com/kamilmysliwiec/rethinking- enterprise-architectures-with-node-dot-js @Rafael_Casuso - https://www.slideshare.net/RafaelCasusoRomate/ solid-nodejs-with-typescript-jest-nestjs