+ All Categories
Home > Software > JavaScript und trotzdem Softwerker

JavaScript und trotzdem Softwerker

Date post: 12-Apr-2017
Category:
Upload: dennis-wilson
View: 202 times
Download: 2 times
Share this document with a friend
91
JavaScript und trotzdem Softwerker Dinge, die Softwerker wissen sollten
Transcript
Page 1: JavaScript und trotzdem Softwerker

JavaScript und trotzdem SoftwerkerDinge, die Softwerker wissen sollten

Page 2: JavaScript und trotzdem Softwerker

Warum ausgerechnet dieses Thema?

Page 3: JavaScript und trotzdem Softwerker

Wie viele JavaScript Entwicklerihre Arbeit sehen.

Page 4: JavaScript und trotzdem Softwerker

Was andere Entwickleroftmals davon halten.

Page 5: JavaScript und trotzdem Softwerker

Wie auch JavaScript Entwicklungtatsächlich aussehen kann.

Page 6: JavaScript und trotzdem Softwerker

Software IT Berater

15 Jahre Software-Entwicklung

4 Jahre IT Beratung

Täglich aufs neue begeistert.

Was sonst noch bleibt:

“Breakpoint Wilson” auf entwickler.de

https://denniswilson.de/

@snnd auf Twitter

Page 7: JavaScript und trotzdem Softwerker

Analyse und Bewertungbestehender Anwendungen

Fomulierung Software getriebenerUnternehmens-Lösungen

Wirtschaftlichkeits bezogeneIT Beratungen

Page 8: JavaScript und trotzdem Softwerker

First Things First:Please, be excellent to each other!

Page 9: JavaScript und trotzdem Softwerker
Page 10: JavaScript und trotzdem Softwerker
Page 11: JavaScript und trotzdem Softwerker
Page 12: JavaScript und trotzdem Softwerker
Page 13: JavaScript und trotzdem Softwerker
Page 14: JavaScript und trotzdem Softwerker

Also, kann’s losgehen? J

Page 15: JavaScript und trotzdem Softwerker

Was bedeutet es eigentlichein “Softwerker” zu sein?

Page 16: JavaScript und trotzdem Softwerker
Page 17: JavaScript und trotzdem Softwerker

• Kunden/Nutzen orientierte Arbeitseinstellung

• Hohe Ergebnis-Qualität (intern/extern)

• flexible und gut Änderbare Software herstellen

• offen sein und von einander lernen

Page 18: JavaScript und trotzdem Softwerker

• Plattformen und Gegebenheiten kennen

• Architekturelle Ansätze verstehen

• Qualität durch Werkzeuge sicherstellen

• Software-Bausteine als Arbeitsmittel nutzen

Page 19: JavaScript und trotzdem Softwerker

Plattformen

Page 20: JavaScript und trotzdem Softwerker
Page 21: JavaScript und trotzdem Softwerker
Page 22: JavaScript und trotzdem Softwerker
Page 23: JavaScript und trotzdem Softwerker
Page 24: JavaScript und trotzdem Softwerker
Page 25: JavaScript und trotzdem Softwerker
Page 26: JavaScript und trotzdem Softwerker

Visual

Abstract

Server Mobile

Page 27: JavaScript und trotzdem Softwerker

BrowserNon-Visual RuntimesMobile App ContainerDesktop Anwendung Container

Plattformen für JavaScript Anwendungen

Page 28: JavaScript und trotzdem Softwerker

Architekturelles

Page 29: JavaScript und trotzdem Softwerker
Page 30: JavaScript und trotzdem Softwerker
Page 31: JavaScript und trotzdem Softwerker
Page 32: JavaScript und trotzdem Softwerker
Page 33: JavaScript und trotzdem Softwerker
Page 34: JavaScript und trotzdem Softwerker
Page 35: JavaScript und trotzdem Softwerker
Page 36: JavaScript und trotzdem Softwerker
Page 37: JavaScript und trotzdem Softwerker

Kombiniere zwei gute Dinge undraffiniere etwas altbekannteszum Besseren.

“Chilli-Ei Prinzip”

Page 38: JavaScript und trotzdem Softwerker

In unserem Fall:Serverseitiges JavaScript!

Page 39: JavaScript und trotzdem Softwerker

Warum das?

Page 40: JavaScript und trotzdem Softwerker
Page 41: JavaScript und trotzdem Softwerker
Page 42: JavaScript und trotzdem Softwerker

Client Code:Sprache A

Page 43: JavaScript und trotzdem Softwerker

Server Code:Sprache B

Page 44: JavaScript und trotzdem Softwerker

JS Client

JS Server

Page 45: JavaScript und trotzdem Softwerker

JS Client

JS Server

Hoppla!

Page 46: JavaScript und trotzdem Softwerker

Für die Einen ist es DupCode. Doch für die Anderen …

Page 47: JavaScript und trotzdem Softwerker
Page 48: JavaScript und trotzdem Softwerker

Idealvorstellung

Page 49: JavaScript und trotzdem Softwerker
Page 50: JavaScript und trotzdem Softwerker

Was soll da schonschiefgehen?

Page 51: JavaScript und trotzdem Softwerker

SchmerzhafteErfahrungen.

Page 52: JavaScript und trotzdem Softwerker

• Komplexität kann schnell überhand nehmen

• Update Management

• NPM Mirror für Production dringend empfohlen

• Browser Bundles werden sehr schnell sehr gross

Page 53: JavaScript und trotzdem Softwerker

Verwandtes Stichwort zum Thema Shared Code:

Isomorphic JavaScript

Page 54: JavaScript und trotzdem Softwerker

Single Page Application Frameworks

Page 55: JavaScript und trotzdem Softwerker

Single PageApplication

Progressive Enhancement

Page 56: JavaScript und trotzdem Softwerker

UserInterface

DataProvider

Server Client

ROCA

SPA

ProgressiveEnhancement

REST-API

Logik Verteilung

Art der Anwendung

Page 57: JavaScript und trotzdem Softwerker

• Nicht jede Website eignet sich für SPA

• klassische Progressive Webanwendung und oftmals weniger pflegeintensiv

• SPA Frameworks ermöglichen erhöteTestbarkeit

Page 58: JavaScript und trotzdem Softwerker

Testwerkzeug

Page 59: JavaScript und trotzdem Softwerker
Page 60: JavaScript und trotzdem Softwerker

Komponenten

Integration

UI Test

https://www.xkcd.com/303/

Page 61: JavaScript und trotzdem Softwerker

Komponenten

Integration

UI Test

Tests run!

https://www.xkcd.com/303/

Page 62: JavaScript und trotzdem Softwerker

Units

IntegrationComponent

API / System

UI Tests

Testing Pyramide

Page 63: JavaScript und trotzdem Softwerker

UI

Unit

Runner FrameworkGattung

Test Ebene

Integration

Page 64: JavaScript und trotzdem Softwerker

Runtime

Framework

Unit-Test & Integration Stack(Backend)

Page 65: JavaScript und trotzdem Softwerker

Runner

Runtime

Framework

Unit-Test & Integration Stack(Frontend)

Page 66: JavaScript und trotzdem Softwerker

Runner

Runtime

Framework

E2E Stack(Frontend)

Page 67: JavaScript und trotzdem Softwerker

Visual Regression(Frontend)

Page 68: JavaScript und trotzdem Softwerker

• Wirklich viele gute Testmöglichkeiten

• Behaviour Style Testframeworks

• Testrunner oftmals als Middleware

• Visual Regression Testing als ErleichterungExplorativer Tests

Page 69: JavaScript und trotzdem Softwerker

Arbeitsmittel

Page 70: JavaScript und trotzdem Softwerker
Page 71: JavaScript und trotzdem Softwerker
Page 72: JavaScript und trotzdem Softwerker
Page 73: JavaScript und trotzdem Softwerker

CODE!

Page 74: JavaScript und trotzdem Softwerker

Meinst Gefragt:Schliessen sich OOP und FP aus?

Page 75: JavaScript und trotzdem Softwerker

Let’s Talk about Code:Welche Software Pattern kommen in

JavaScript besonders oft vor?

Page 76: JavaScript und trotzdem Softwerker

ClosurePromises

Generators

Asynchronizität

FacadeStrategy

FRP

Decoupling

Monkey PatchingProperty Accessors

Proxies

Manipulation

Auswahl häufier PatternIn JavaScript

Page 77: JavaScript und trotzdem Softwerker

ClosurePromises

Generators

Asynchronizität

FacadeStrategy

FRP

Decoupling

Monkey PatchingProperty Accessors

Proxies

Manipulation

Auswahl häufier PatternIn JavaScript

Page 78: JavaScript und trotzdem Softwerker

Closure

Page 79: JavaScript und trotzdem Softwerker

let fivePlus = partialSum(5);console.log('5 + 3', fivePlus(3)); // 8console.log('5 + 5', fivePlus(5)); // 10

function partialSum(a) {return function(b) {

return a + b;}

}

Page 80: JavaScript und trotzdem Softwerker

Property Accessors

Page 81: JavaScript und trotzdem Softwerker

Object.defineProperty(manipulateObject, // → objecttargetProperty, // → stringconfiguration // → object

);

Page 82: JavaScript und trotzdem Softwerker

“Data” Descriptorsvalue → anywritable → boolean

“Accessor” Descriptorsget → functionset → function

“Shared” Descriptorsconfigurable → booleanenumerable → boolean

Page 83: JavaScript und trotzdem Softwerker

function createUser(name, email, password) {let user;let_password;

Object.defineProperty(user, 'password', {set: function setPassword(password) {

_password = hash(password);},get: function getPassword() {

return _password;}

});

return user;}

Page 84: JavaScript und trotzdem Softwerker

user.password ='geheim';console.log(user.password);//'a3f4a...ff'

Page 85: JavaScript und trotzdem Softwerker

Strategy Pattern

Page 86: JavaScript und trotzdem Softwerker

Strategy Pattern

https://en.wikipedia.org/wiki/Strategy_pattern

Page 87: JavaScript und trotzdem Softwerker

Strategy Pattern

Page 88: JavaScript und trotzdem Softwerker

Zusammenfassung

Page 89: JavaScript und trotzdem Softwerker

• Softwerker gerechte Entwicklung möglich!

• Plattformen gleichzeitig Herausforderung und Seegen

• Besonderheiten und Stolpersteine

• Ausgefeilte Möglichkeiten für Teststing

• Häufig anzutreffende Pattern

Page 90: JavaScript und trotzdem Softwerker

+49 (0)176 6226 [email protected]

DennisWilsonITBerater &Entwicklerc/oBüro23/25Stolzestraße 23–2544139Dortmund

May the source be with you!

Page 91: JavaScript und trotzdem Softwerker

http://www.cartoonmovement.com/depot/cartoons/2012/12/24/beyond_any_religion__miguel_villalba_snchez__elchicotriste_.jpeg

https://gnusocial.no/file/johan-20150209-church_emacs-dq7r.png

https://www.flickr.com/photos/kjgarbutt/5496295615/in/photostream/

https://www.flickr.com/photos/dhdesign/3843848623/

https://www.flickr.com/photos/theresasthompson/7163227255/

https://www.flickr.com/photos/drzuco/10711635635

http://www-tc.pbs.org/wnet/americanmasters/files/2001/12/BuckminsterFuller16x9.jpg

https://www.flickr.com/photos/vialbost/17797990034

https://www.flickr.com/photos/armydre2008/4336507150

https://www.flickr.com/photos/dhdesign/3843848623

https://www.flickr.com/photos/craigleontowicz/6218613822

https://www.flickr.com/photos/icrontic/3696364959/

http://1.bp.blogspot.com/-ubpDJspaQco/UT0bUjmImkI/AAAAAAAALns/UjKTDWHCggo/s1600/math.jpg

https://bunkstrutts.files.wordpress.com/2014/04/safety-in-the-workplace.jpg

https://www.industryleadersmagazine.com/japans-construction-index-surges-on-reconstruction-demand-prospects/

Thanks to all picture suppliers!


Recommended