2014-11-23 1 views
0

Мне интересно (возможно, с точки зрения UML), как другим удалось успешно документировать объекты JavaScript.Как документировать объекты JavaScript (с точки зрения UML)

JavaScript может быть выражен как ООП, но в дополнение к этим объектам файлы могут также содержать сценарии «потерять положение», которые принадлежат самому файлу, а не объект, который вы определили.

Вы задокументировали бы сам файл как класс и классы, которые он содержит как вложенные классы?

+0

Не ответ, а альтернатива. Вы изучали JSDoc? Не совсем то, что вы хотите, но это очень полезно для документирования. – user1167442

+0

Я посмотрю :) спасибо –

+0

Для некоторых рекомендаций относительно объема документации, которую вы хотите/нуждаетесь, также см. [Steve McConnell, Archeology Software Project] (http://www.construx.com/10x_Software_Development/Software_Project_Archaeology) и [Скотт У. Амблер, «Принципы гибкого моделирования» → «Модель с целью») (http://agilemodeling.com/principles.htm#ModelWithAPurpose) – xmojmr

ответ

1

Кто-то адаптировал UML для веб-артефакта, называемый расширением UA для UML. Если вы работаете с node.js, я создал модуль, который генерирует диаграмму классов для javascript/node/html/css. Его называют wavi. Для javascript функция, переменная автоматически распознаются. Вы можете использовать его для документирования вашего приложения.

https://www.npmjs.org/package/wavi

0

Если вы хотите документировать ваши объекты javascript, вы даже можете использовать шаблон MVC для проектов javascript. Я лично попытался бы избежать использования внутренних классов и использовать правильные отношения между классами. Если вы имеете в виду с внутренними классами; ставя несколько классов в один и тот же файл js; да, это допустимый вариант. Javascript не заботится о том, в каком файле находится класс, он только думает о классах (в отличие от Java, если я прав).

Пример я написал 8 лет назад в школе показывает класс управления:

function Control() 
{ 
    var myView = new View(respondOnChoice); 
    var myMathTest = new MathTest(); 
    var myExercise = new Exercise(); 

    function respondOnMathTestChoice() 
    { 
     myView.emptyMainDiv(); 
     myView.showNameAndClassChoice(); 
    } 
} 

Start.js (инициировать контроль):

if (window.attachEvent) //IE 
{ 
    window.attachEvent("onload", initApp); 
} 
if (window.addEventListener)//Firefox 
{ 
    window.addEventListener("load", initApp,false); 
} 

function initGame() 
{ 
    var myControl = new Control(); 
} 

На мой взгляд, это самый лучший способ использовать ООП в javascript. Если вы правильно программируете, вам не придется думать ни о чем, связанном с внутренними классами, а просто о взаимоотношениях между классами.

0

Нет, было бы нецелесообразно документировать файл JavaScript как класс (с внутренними классами), но содержащиеся в нем «классы» могут быть документированы с помощью диаграммы классов UML. Однако, поскольку в JavaScript нет явной концепции класса, люди используют разные шаблоны кода для определения «класса». Наиболее часто используемым кодом кода является определение классов на основе конструктора, как предлагается на веб-сайте Mozilla. В этом подходе функция-конструктор (скажем, C) представляет класс. Он определяет ряд свойств (используя this) и ряд методов/функций (с использованием C.prototype). Затем в диаграмме классов UML эти свойства и методы можно описать в виде прямоугольника класса.

+0

Я предполагаю, что моя идея file = class исходит из небольшого опыта, который у меня есть с python - другой язык сценариев. Иными словами, если вы не применяете какой-либо шаблон, вы не сможете документировать много. Есть ли альтернатива UML, которая имеет дело с такой ситуацией? –

+0

В общем, вы можете использовать UML (диаграммы классов и диаграммы поведения) для документирования логической/концептуальной структуры вашего программного кода, но не для создания нормального документа документации, созданного с помощью JsDoc. –