0

Пока мы ждем следующей будущей версии javascript, то есть кодового имени ECMAScript 6 Harmony, мы вынуждены использовать объектно-основанный/функциональный javascript. В настоящее время нет конструкции класса, интерфейса, наследования, средств для скрытия информации и т. Д. Но я не буду спорить о его полезности, я просто задаюсь вопросом об использовании конструкций UML в полной платформе Single Pages Application, такой как AngularJS.Несколько вопросов, касающихся использования UML в SPA Angular

  1. UML подходит только для ECMAScript 6 Harmony?

  2. Говорит, что, когда мы используем MongoDB мы больше не нужен ОРМ больше, потому что выход уже объект, то теперь Oracle имеет условие HTTP Plugin, что позволит MySQL обеспечить RESTful CRUD API и имеет JSON в качестве своей продукции , Вопрос в том, когда я создаю диаграмму класса , я могу преобразовать ее в класс сущности JPA, чем это все еще полезно, когда я использую Restangular -> MySQL или просто приятно иметь?

  3. В книге Doug Rosenberg & Matt Стивенса Use Case Driven Object Моделирование с UML, они используют одну граничную линию жизни для каждой страницы и сущности спасательного круга для каждой модели домена, которые участвуют в его схеме последовательности, так что, когда я используйте UI-Router с U-образным UI-интерфейсом, то что такое , он считается границей? это каждое государство? то я полагаю, что контрольная линия является зарегистрированным контроллером моего угла, а объект спасательный круг для моего объекта javascript, который я передаю каждому методу postangule post/put/delete, не так ли?

  4. Я думаю, что Restangular - это объект доступа к данным, не так ли?

  5. Является ли такое развитие модели не подходящим для AngularJS вообще, если да, то что это уместно?

пример кода для экранным MySQL непосредственно из restangular:

Restangular.setDefaultHeaders({'Authorization':'Basic '+btoa("basic_auth_user:basic_auth_passwd")}); 
RestangularProvider.setBaseUrl('http://localhost:8080/crud/mydatabase/'); 

myModule.controller('salesmanController', 
function($scope, Restangular){ 
var salesmanDAO = Restangular.all('salesmanTable'); 
$scope.allSalesman = salesmanDAO.getList().$object; 


$scope.insertSalesman = function(){ 
    var newSalesman = {firstName: $scope.newSalesman.firstName, lastName: $scope.newSalesman.lastName, city: $scope.newnewSalesman.city}; 
    salesmanDAO.post(newSalesman) 
    .then(
     function(newObject){ 
      $scope.allSalesman = salesmanDAO.getList().$object; 
     }, 
     function error(reason){ 
      console.log("the reason: ", reason) 
     } 
    ); 
    $scope.newSalesman.firstName = ''; 
    $scope.newSalesman.lastName = ''; 
    $scope.newSalesman.city = ''; 
} 
+0

До тех пор, пока вы видите мир (и мир существа, который вы создали из атомов кода) через очки [Объектно-ориентированная парадигма (ООП)] (http://en.wikipedia.org/wiki/Object -oriented_programming), то использование языка унифицированного моделирования (UML) является подходящим. BTW: ожидание фазы пророка может быть сокращено с помощью [TypeScript] (http://www.typescriptlang.org/). Совместимость ECMA 6 входит в число целей дизайна языка – xmojmr

+0

Я думаю, что всегда важно использовать uml настолько строго, насколько это необходимо, чтобы описать ваш дизайн и не быть более строгим. Не сверните диаграмму, потому что вы пытаетесь вписаться в строгую спецификацию uml. Кроме того, при описании вариантов использования в терминах ui-router не заставляйте себя устанавливать жесткие и быстрые правила. Иногда диаграмма состояния будет полезна, и другие времена пересечения границ будут полезны. Чтобы подвести итог, важно, чтобы ваши диаграммы описывали ваш дизайн, а затем они на 100% строгие. Тем не менее, я согласен, что было бы неплохо, если бы были какие-то идиоматические шаблоны js –

+0

, когда я искал «диаграмму последовательности состояний представления» в книгах googe, я нашел [это] (https://books.google.co.id/books ? id = BFlF1TQQ26gC & printsec = frontcover & dq = View + States + Sequence + Diagram & hl = en & sa = X & ei = rwGPVIm-E8-zuATm7IAQ & redir_esc = y # v = onepage & q = sequence% 20diagram & f = false), он сказал, что Adobe Flex также имеет понятие состояний, Я думаю, что состояние ui-router и adobe flex имеет что-то общее, но диаграмма последовательности на этой странице автор ничего не говорит о состоянии только формы, как @benschwartz [said] (http://goo.gl/dYL5nw): «Диаграмма последовательности не может интуитивно отображать одно состояние». –

ответ

0

Является ли UML подходит только для ECMAScript 6 Harmony?

Нет, UML (диаграммы классов и диаграммы последовательности/активность), всегда может быть использован для создания IT-независимых концептуальных моделей (информация и процесс), а также независимой от платформы (информация и процесс) модели проектирования. Это не зависит от языка программирования. Таким образом, эти модели могут (и должны) использоваться, независимо от того, используете ли вы Java, C# или JavaScript для своей реализации.

Это еще один вопрос, какие шаблоны кода могут использоваться для реализации концепции класса в JavaScript. Здесь мы в основном есть два варианта, как описано в this section моей книги Engineering Frontend Web Apps with Plain JavaScript,

  1. Классическая конструктор на основе шаблон класс Mozilla рекомендуется на своем сайте MDN. Новая конструкция ECMAScript 6 class представляет собой просто синтаксический сахар для этого шаблона на основе конструктора.
  2. В форме завод объект, который использует предопределенный метод Object.create для создания новых экземпляров класса. В этом основанный на заводе подход, рекомендованный Эриком Эллиотом, механизм наследования на основе прототипа заменен другим механизмом. Эллиот утверждает, что классы на фабрике являются жизнеспособной альтернативой классам, основанным на конструкторах, в JavaScript.

Заметим, однако, что в AngularJS, нет никакого реального понятие модели класса, но вы можете, конечно, использовать свой собственный подход.

Говорят, что, когда мы используем MongoDB мы больше не больше нужно ОРМ, поскольку выход уже объект

Это просто неправильно. Своего рода ОРМ (или, может быть, лучше объект к хранению отображения) всегда необходимо, например, для отображения

  1. ссылки внутреннего объекта (представляющей ассоциации) в ссылки ID с некоторой формой ссылочной целостности,
  2. иерархии классов к определенным структурам хранения (например, один объект таблицы или магазин с дополнительными атрибутами)

этот вид модели Driven Development не подходит для AngularJS

Подход к разработке моделей может быть использован для любой целевой платформы, включая AngularJS.

+1

Спасибо @gwag за ваше объяснение и указав вашу книгу, это действительно затеняет свет. Я привел орды монгодба из [здесь] (http://www.mongodb.com/what-is-mongodb).Я думаю, что мне сложно сформулировать мой второй вопрос, но вопрос, который ответил на сообщение в блоге из янтарного каплана, действительно то, что я имел в виду, [насколько сложно будет моделировать наши данные, особенно в AngularJS] (http: // sauceio. com/index.php/2014/07/angularjs-data-models-http-vs-resource-vs-restangular /) он не имеет ничего общего с mysql, или uml, Restangular отлично подходит для конечных точек REST MySQL, структурированная –