JavaScript в enterprise приложениях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 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 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 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 23. Спасибо за внимание
Platypus.js документация, дистрибутивы:
http://www.platypus-platform.org
Исходники:
https://github.com/altsoft
Направляйте вопросы по адресу:
info@altsoft.biz
Доклад: Марат Гайнуллин. mg@altsoft.biz
23