SlideShare a Scribd company logo
Platypus.jsEnterpriseJavaScript 
ContainerДоклад: Марат Гайнуллин
Чтение данных без 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
Использование 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
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
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
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
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
Platypus.js Декларативный жизненный цикл 
1./** 
2.* @resident 
3.* 
4.*/ 
5.function GlobalModule() { 
6.} 
7./** 
8.* @stateless 
9.* 
10.*/ 
11.function SessionModule() { 
12.} 
9
Platypus.js Декларативная безопасность 
1./** 
2.* @rolesAllowedbuh 
3.*/ 
4.function SessionModule() { 
5.varself = this; 
6./** 
7.* @rolesAllowedmanager 
8.*/ 
9.self.calcProfit= function () { 
10.}; 
11.} 
10
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
Platypus UI13
14
Java SE ClientBrowser15
16
17
Java EE18
Node19
Platypus20
Уровни параллелизма Platypus.jsBrowser 
Browser2BrowserBrowserStateless server moduleStateful server moduleResident server moduleBrowser3Browser1BrowserУровень 1Уровень 2Уровень 321
Архитектура Platypus.js22
Спасибо за внимание 
Platypus.js документация, дистрибутивы: 
http://www.platypus-platform.org 
Исходники: 
https://github.com/altsoft 
Направляйте вопросы по адресу: 
info@altsoft.biz 
Доклад: Марат Гайнуллин. mg@altsoft.biz 
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 приложениях