Submit Search
JavaScript в enterprise приложениях
0 likes
•
724 views
MoscowJS
Слайды с выступления Марата Гайнуллина на MoscowJS 16
Software
Read more
1 of 23
Download now
Download to read offline
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
More Related Content
PDF
C++ Programming - 13th Study
Chris Ohk
PPTX
Testes unitários de JS com Jasmine e Karma
Douglas Matoso
PDF
Meteor за 15 минут
MoscowJS
PDF
Александр Русаков - TypeScript 2 in action
MoscowJS
PDF
Виктор Розаев - Как не сломать обратную совместимость в Public API
MoscowJS
PDF
Favicon на стероидах
MoscowJS
PDF
E2E-тестирование мобильных приложений
MoscowJS
PDF
Reliable DOM testing with browser-monkey
MoscowJS
C++ Programming - 13th Study
Chris Ohk
Testes unitários de JS com Jasmine e Karma
Douglas Matoso
Meteor за 15 минут
MoscowJS
Александр Русаков - TypeScript 2 in action
MoscowJS
Виктор Розаев - Как не сломать обратную совместимость в Public API
MoscowJS
Favicon на стероидах
MoscowJS
E2E-тестирование мобильных приложений
MoscowJS
Reliable DOM testing with browser-monkey
MoscowJS
More from MoscowJS
(20)
PDF
Basis.js - Production Ready SPA Framework
MoscowJS
PDF
Контекст в React, Николай Надоричев, MoscowJS 31
MoscowJS
PDF
Верстка Canvas, Алексей Охрименко, MoscowJS 31
MoscowJS
PDF
Веб без интернет соединения, Михаил Дунаев, MoscowJS 31
MoscowJS
PDF
Angular2 Change Detection, Тимофей Яценко, MoscowJS 31
MoscowJS
PDF
Создание WYSIWIG-редакторов для веба, Егор Яковишен, Setka, MoscowJs 33
MoscowJS
PDF
Предсказуемый Viewport, Вопиловский Константин, KamaGames Studio, MoscowJs 33
MoscowJS
PDF
Promise me an Image... Антон Корзунов, Яндекс, MoscowJs 33
MoscowJS
PDF
Регрессионное тестирование на lenta.ru, Кондратенко Павел, Rambler&Co, Moscow...
MoscowJS
PDF
"Опыт разработки универсальной библиотеки визуальных компонентов в HeadHunter...
MoscowJS
PDF
"Во все тяжкие с responsive images", Павел Померанцев, MoscowJS 29
MoscowJS
PDF
"AMP - технология на три буквы", Макс Фролов, MoscowJS 29
MoscowJS
PDF
"Observable и Computed на пример KnockoutJS", Ольга Кобец, MoscowJS 29
MoscowJS
PDF
«Пиринговый веб на JavaScript», Денис Глазков, MoscowJS 28
MoscowJS
PDF
"Доклад не про React", Антон Виноградов, MoscowJS 27
MoscowJS
PDF
"Web Audio Api", Анатолий Найда, MoscowJS 27
MoscowJS
PDF
"Redux: the best for isomorphic apps", Денис Измайлов, MoscowJS 25
MoscowJS
PDF
"Изоморфный D3 + MALEVICH", Алексей Охрименко, MoscowJS 25
MoscowJS
PDF
"HTML5 Cache Manifest на практике", Дмитрий Головин, MoscowJS 25
MoscowJS
PDF
"Подход к написанию безопасного клиентского кода на примере React", Иван Елки...
MoscowJS
Basis.js - Production Ready SPA Framework
MoscowJS
Контекст в React, Николай Надоричев, MoscowJS 31
MoscowJS
Верстка Canvas, Алексей Охрименко, MoscowJS 31
MoscowJS
Веб без интернет соединения, Михаил Дунаев, MoscowJS 31
MoscowJS
Angular2 Change Detection, Тимофей Яценко, MoscowJS 31
MoscowJS
Создание WYSIWIG-редакторов для веба, Егор Яковишен, Setka, MoscowJs 33
MoscowJS
Предсказуемый Viewport, Вопиловский Константин, KamaGames Studio, MoscowJs 33
MoscowJS
Promise me an Image... Антон Корзунов, Яндекс, MoscowJs 33
MoscowJS
Регрессионное тестирование на lenta.ru, Кондратенко Павел, Rambler&Co, Moscow...
MoscowJS
"Опыт разработки универсальной библиотеки визуальных компонентов в HeadHunter...
MoscowJS
"Во все тяжкие с responsive images", Павел Померанцев, MoscowJS 29
MoscowJS
"AMP - технология на три буквы", Макс Фролов, MoscowJS 29
MoscowJS
"Observable и Computed на пример KnockoutJS", Ольга Кобец, MoscowJS 29
MoscowJS
«Пиринговый веб на JavaScript», Денис Глазков, MoscowJS 28
MoscowJS
"Доклад не про React", Антон Виноградов, MoscowJS 27
MoscowJS
"Web Audio Api", Анатолий Найда, MoscowJS 27
MoscowJS
"Redux: the best for isomorphic apps", Денис Измайлов, MoscowJS 25
MoscowJS
"Изоморфный D3 + MALEVICH", Алексей Охрименко, MoscowJS 25
MoscowJS
"HTML5 Cache Manifest на практике", Дмитрий Головин, MoscowJS 25
MoscowJS
"Подход к написанию безопасного клиентского кода на примере React", Иван Елки...
MoscowJS
Ad
JavaScript в enterprise приложениях
1.
Platypus.jsEnterpriseJavaScript ContainerДоклад: Марат
Гайнуллин
2.
Чтение данных без
ORM-а 1.varresults = executeQuery(“some sqlselect text”); 2.while(!results.eof()){ 3.results.first(); 4.varaddress = results.fieldByName(“address”).asString(); 5.varphone = results.fieldByName(“phone”).asString(); 6.varemail = results.fieldByName(“phone”).asString(); 7.vardateOfBirth= results.fieldByName(“birth”).asDate(); 8.} 2
3.
Использование ORM-а 1.varcustomers
= Models.find(“select * from customers …”); 2.customers.forEach(function(aCustomer){ 3.… 4.}); 5.varfifthCustomer= customers[4]; 6.If(customers[2].name == =“”){ 7.varcName= prompt(“Введите имя”); 8.customers[2].name = cName; 9.} 3
4.
Запрос как источник
схемы данных4
5.
Platypus.js ORM 1./**
2.* Devices communication module. 3.* @acceptor asc6 4.*/ 5.function Asc6Acceptor() { 6.varself = this; 7.varmodel = P.loadModel(this.constructor.name); 8.model.packets.elementClass= Packet; 9.varpackets = model.packets; 10. 11.self.flush= function () { 12.model.save(function (aAffected) { 13.log(“saved “); 14.}, function (e) { 15.log(“failed”); 16.}); 17.}; 18.} 5
6.
Knockout.js 1.function TaskListViewModel()
{ 2.// Data 3.varself = this; 4.self.tasks=ko.observableArray([]); 5.self.newTaskText= ko.observable(); 6.self.incompleteTasks= ko.computed(function () { 7.return ko.utils.arrayFilter( 8.self.tasks(), 9.function (task) { 10.return !task.isDone() 11.}); 12.}); 13.} 14.ko.applyBindings(new TaskListViewModel()); 6
7.
Bookshelf.js 1.varCustomer =bookshelf.Model.extend({
2.initialize: function () { 3.this.on('saving', this.validateSave); 4.}, 5.validateSave: function () { 6.return checkit(rules).run(this.attributes); 7.} 8.}); 7
8.
Backbone.js 1.varSubject =
{}; 2._.extend(Subject, Backbone.Events); 3.Subject.on("alert", function (msg) { 4.alert("Triggered " + msg); 5.}); 6.Subject.trigger("alert", "an event"); 8
9.
Platypus.js Декларативный жизненный
цикл 1./** 2.* @resident 3.* 4.*/ 5.function GlobalModule() { 6.} 7./** 8.* @stateless 9.* 10.*/ 11.function SessionModule() { 12.} 9
10.
Platypus.js Декларативная безопасность
1./** 2.* @rolesAllowedbuh 3.*/ 4.function SessionModule() { 5.varself = this; 6./** 7.* @rolesAllowedmanager 8.*/ 9.self.calcProfit= function () { 10.}; 11.} 10
11.
Platypus.js Чистый прикладной
код 1.function Packet(){ 2.// Pure application class 3.Packet.superclass.constructor.apply(this, arguments); 4.self = this; 5.self.calcVolume= function(){}; 6.self.logtitude= 67; 7.self.latitude= 34; 8.self.calcTime= function(){}; 9.} 10.//… 11.varp = new Packet(); 12.p. calcVolume(); 13.p. calcTime(); 14.//… 11
12.
12
13.
Platypus UI13
14.
14
15.
Java SE ClientBrowser15
16.
16
17.
17
18.
Java EE18
19.
Node19
20.
Platypus20
21.
Уровни параллелизма Platypus.jsBrowser
Browser2BrowserBrowserStateless server moduleStateful server moduleResident server moduleBrowser3Browser1BrowserУровень 1Уровень 2Уровень 321
22.
Архитектура Platypus.js22
23.
Спасибо за внимание
Platypus.js документация, дистрибутивы: http://www.platypus-platform.org Исходники: https://github.com/altsoft Направляйте вопросы по адресу:
[email protected]
Доклад: Марат Гайнуллин.
[email protected]
23
Download