Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #31 (permalink)  
Старый 23.07.2012, 15:12
что-то знаю
Отправить личное сообщение для devote Посмотреть профиль Найти все сообщения от devote
 
Регистрация: 24.05.2009
Сообщений: 5,176

B~Vladi,
вот спасибо добрый человек. Почитаю на досуге что к чему, я так понимаю IDE нужно для этого дела то.. Видимо придется поставить.
__________________
хм Russians say завтра but завтра doesn't mean "tomorrow" it just means "not today."
HTML5 history API рассширение для браузеров не поддерживающих pushState, replaceState
QSA CSS3 Selector Engine
Ответить с цитированием
  #32 (permalink)  
Старый 23.07.2012, 15:19
Аватар для B~Vladi
Модератор Всея Форума
Отправить личное сообщение для B~Vladi Посмотреть профиль Найти все сообщения от B~Vladi
 
Регистрация: 14.05.2009
Сообщений: 4,021

Сообщение от devote
я так понимаю IDE нужно для этого дела
Нет, не нужно. IDE даст тебе только автокомплит (как в коде, так и при написании jsdoc), а генерировать саму доку нужно отдельной утилитой, ссылку на которую я тебе давал выше. Если вообще захочешь генерировать.
__________________
Болтовня ничего не стоит. Покажите мне код. — Linus Torvalds
влад.куркин.рф
Ответить с цитированием
  #33 (permalink)  
Старый 23.07.2012, 15:20
что-то знаю
Отправить личное сообщение для devote Посмотреть профиль Найти все сообщения от devote
 
Регистрация: 24.05.2009
Сообщений: 5,176

а отлично, покумекаю над этим на досуге.. Доку то надо начирикать какую то.
__________________
хм Russians say завтра but завтра doesn't mean "tomorrow" it just means "not today."
HTML5 history API рассширение для браузеров не поддерживающих pushState, replaceState
QSA CSS3 Selector Engine
Ответить с цитированием
  #34 (permalink)  
Старый 23.07.2012, 17:03
Аватар для x-yuri
Отправить личное сообщение для x-yuri Посмотреть профиль Найти все сообщения от x-yuri
 
Регистрация: 27.12.2008
Сообщений: 4,201

Сообщение от devote
Есть тут свои тонкости, конечно же нет возможности создания интерфейсов, абстракции и прочих полноценных прелестей ООП.
Сообщение от devote
хм.. что-то не так написал? могу исправить если я в чем-то ошибаюсь.
Создается впечатление, что автор считает классовое ООП рассово верным, чем может обидеть религиозные чувства сторонников противоположной позиции, случайно наткнувшихся на этот текст...

Сообщение от devote
честно говоря над методом Class.autoload нужно еще поработать, мне конечно не совсем пока нравится как это работает. Поэтому в будущих версия этот метод возможно претерпит изменения.
Сообщение от devote
насчет обработки ошибок (Class.imports) тоже вполне возможно будут изменения, но пока не решил как улучшить и т.д.
что не нравится?

Сообщение от B~Vladi
Правильнее было бы назвать это пространством имён.
Правильнее было бы не называть это, чтобы можно было самому решать, где это будет пространством имен, а где классом.

Сообщение от devote
а вообще внутри библиотеки указаны примеры создания:
Сообщение от devote
аж 12 вариантов:
Поддерживаю, слишком много. Можно было бы вынести дополнительные свойства в отдельный аргумент, в результате у них появится имя:
Class('MyClass', {
    myMethod: function() {...},
    ...
}, {context: '...', staticData: {...}});

т.е. такая сигнатура: Class(name, data, options)

И по поводу extends/implements/include (наследование), их можно туда же засунуть. Или прямо в data, зарезервивовав для служебных целей, например, двойное подчеркивание:
Class('MyClass', {
    __extends: 'MyBaseClass',
    __implements: 'MyMixin',
    __construct: function() {...},
    myMethod: function() {...}
});
Ответить с цитированием
  #35 (permalink)  
Старый 23.07.2012, 21:07
Аватар для B~Vladi
Модератор Всея Форума
Отправить личное сообщение для B~Vladi Посмотреть профиль Найти все сообщения от B~Vladi
 
Регистрация: 14.05.2009
Сообщений: 4,021

Сообщение от x-yuri
Правильнее было бы не называть это, чтобы можно было самому решать, где это будет пространством имен, а где классом.
Нужно просто правильно сформулировать это в доках.
__________________
Болтовня ничего не стоит. Покажите мне код. — Linus Torvalds
влад.куркин.рф
Ответить с цитированием
  #36 (permalink)  
Старый 24.07.2012, 04:46
что-то знаю
Отправить личное сообщение для devote Посмотреть профиль Найти все сообщения от devote
 
Регистрация: 24.05.2009
Сообщений: 5,176

Сообщение от x-yuri
Создается впечатление, что автор считает классовое ООП рассово верным, чем может обидеть религиозные чувства сторонников противоположной позиции, случайно наткнувшихся на этот текст...
ясно, перепишу позже иначе.

Сообщение от x-yuri
что не нравится?
ну то что autoload можно назначить лишь раз для всех скриптов, и входные параметры возможно сменю.. Нужно наверно добавить во входной параметр и имя класса который пытается найти нужный ему класс.. Хотя над этим еще подумаю. Насчет imports пока сложно сказать что не так, но явно что-то не так.

Сообщение от x-yuri
Поддерживаю, слишком много. Можно было бы вынести дополнительные свойства в отдельный аргумент, в результате у них появится имя:
А вот такой вариант я почему-то считаю сложным, не знаю возможно для любителей JS он удобен и т.д. Но его тоже нужно будет изучать и так же получится не один, не два не три варианта а много, где нужно будет знать еще какие-то тонкости. Но тем не менее я подумаю над этим, возможно что-то придумаю.

Сообщение от x-yuri
Или прямо в data,
Насчет implments я его не реализовывал, пока не вижу в нем необходимости, множественное наследование не так часто нужно поэтому над этим еще нужно покумекать.

При всем этом я писал из расчета скорости работы, если я напишу так как вы предлагаете во втором варианте, тоесть прямо в data это приведет к тому что при создании экземпляра нужно будет каждый раз разбирать все эти параметры, что приведет к занижению производительности. Хоть она и не заметна будет, но для большого кода/проектов это значительные потери. В моей же реализации, все манипуляции с параметрами происходят во время объявления класса, далее уже при создании экземпляров, никакие параметры не разбираются.
Допустим:
Class("Foo", Parent, { // вот именно в этот момент идет разбор параметров
    // some code
});

// никакого разбора не происходит, но ищутся такие
// свойства как setters/getters затем складываются в
// специальный стек
var a = new Foo();

// при втором обращении, уже ничего вообще не делается
// а все сеттеры/геттеры берутся из стека, что увеличивает
// скорость работы конструктора.
var b = new Foo();

Сообщение от B~Vladi
Нужно просто правильно сформулировать это в доках.
Насчет доков я все же посмотрел JSDoc и попробовал, честно скажу паршивая это штука. Совсем не понятно делает доку. Без пива сложно понять. Хотя дело привычки конечно. Но и описании в коде под него нужно хорошо заточить, что бы он все подряд в доку не совал. Как это произошло у меня, все приватные и внутренние методы сунул в доку, что не есть гуд.
__________________
хм Russians say завтра but завтра doesn't mean "tomorrow" it just means "not today."
HTML5 history API рассширение для браузеров не поддерживающих pushState, replaceState
QSA CSS3 Selector Engine

Последний раз редактировалось devote, 31.01.2013 в 10:36.
Ответить с цитированием
  #37 (permalink)  
Старый 24.07.2012, 09:54
Аватар для B~Vladi
Модератор Всея Форума
Отправить личное сообщение для B~Vladi Посмотреть профиль Найти все сообщения от B~Vladi
 
Регистрация: 14.05.2009
Сообщений: 4,021

Сообщение от devote
все приватные и внутренние методы сунул в доку, что не есть гуд.
Юзай @private или @ignore.

Сообщение от devote
Совсем не понятно делает доку.
Если разобраться, то всё становится понятным.
__________________
Болтовня ничего не стоит. Покажите мне код. — Linus Torvalds
влад.куркин.рф
Ответить с цитированием
  #38 (permalink)  
Старый 24.07.2012, 10:37
что-то знаю
Отправить личное сообщение для devote Посмотреть профиль Найти все сообщения от devote
 
Регистрация: 24.05.2009
Сообщений: 5,176

Сообщение от B~Vladi
Если разобраться, то всё становится понятным.
ну дык я и говорю, без пива не разберешь А так да, время лечит.
__________________
хм Russians say завтра but завтра doesn't mean "tomorrow" it just means "not today."
HTML5 history API рассширение для браузеров не поддерживающих pushState, replaceState
QSA CSS3 Selector Engine
Ответить с цитированием
  #39 (permalink)  
Старый 24.07.2012, 15:12
Аватар для x-yuri
Отправить личное сообщение для x-yuri Посмотреть профиль Найти все сообщения от x-yuri
 
Регистрация: 27.12.2008
Сообщений: 4,201

Сообщение от devote
ну то что autoload можно назначить лишь раз для всех скриптов, и входные параметры возможно сменю.. Нужно наверно добавить во входной параметр и имя класса который пытается найти нужный ему класс.. Хотя над этим еще подумаю.
Да, несколько раз было бы удобнее. По поводу параметров, не знаю, зачем может понадобиться что-то кроме имени класса, который надо подгрузить. Хотя дополнительная информация наверное не помешает.

Сообщение от devote
А вот такой вариант я почему-то считаю сложным, не знаю возможно для любителей JS он удобен и т.д. Но его тоже нужно будет изучать и так же получится не один, не два не три варианта а много, где нужно будет знать еще какие-то тонкости. Но тем не менее я подумаю над этим, возможно что-то придумаю.
Что ж в нем сложного-то? Использование объекта (ассоц. массива) вместо перечисления параметров через запятую? В твоём варианта рассчет идет на очевидность, с целью сэкономить на "назывании параметров". Экономия очень сомнительная на мой взгляд. Чем больше параметров, тем сомнительнее. Так почему бы не расслабиться и не использовать мой вариант? А твой подход использовать, в более простых случаях? Кстати, я бы назвал его jQuery-подходом.

Сообщение от devote
При всем этом я писал из расчета скорости работы, если я напишу так как вы предлагаете во втором варианте, тоесть прямо в data это приведет к тому что при создании экземпляра нужно будет каждый раз разбирать все эти параметры, что приведет к занижению производительности. Хоть она и не заметна будет, но для большого кода/проектов это значительные потери. В моей же реализации, все манипуляции с параметрами происходят во время объявления класса, далее уже при создании экземпляров, никакие параметры не разбираются.
Во-первых, кеширование никто не отменял. Во-вторых, это ваше классовое ООП странновато смотрится в прототипно-ориентированном ЯП. Альтернатива: mixin, inherit. Разве этого не достаточно? На фоне альтернативного варианта твоя библиотека выглядит ненужным усложнением (в первую очередь интересны __get/__set и autoload, ну и imports), и тут мне в очередной раз приходит в голову мысль, что большинство проблем с производительностью связаны с неоправданно высокими требованиями (ненужными усложнениями)...
Ответить с цитированием
  #40 (permalink)  
Старый 24.07.2012, 15:28
что-то знаю
Отправить личное сообщение для devote Посмотреть профиль Найти все сообщения от devote
 
Регистрация: 24.05.2009
Сообщений: 5,176

Сообщение от x-yuri
Да, несколько раз было бы удобнее. По поводу параметров, не знаю, зачем может понадобиться что-то кроме имени класса, который надо подгрузить. Хотя дополнительная информация наверное не помешает.
вот и я о том же.

Сообщение от x-yuri
Что ж в нем сложного-то? Использование объекта (ассоц. массива) вместо перечисления параметров через запятую?
Ну я не сказал что отказываюсь от решения, конечно покумекаю над этим, и обязательно реализую это.

Сообщение от x-yuri
Во-вторых, это ваше классовое ООП странновато смотрится в прототипно-ориентированном ЯП
Никто и не утверждает обратного.
__________________
хм Russians say завтра but завтра doesn't mean "tomorrow" it just means "not today."
HTML5 history API рассширение для браузеров не поддерживающих pushState, replaceState
QSA CSS3 Selector Engine
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Использование JavaScript на платформах Android и iPhone monolithed Мобильный JavaScript 32 08.05.2012 14:17
Первый Moscow JavaScript Meetup korenyushkin Общие вопросы Javascript 0 26.07.2011 15:23
Последние книги по JavaScript! monolithed Учебные материалы 7 26.10.2010 19:40
Выдвет ошибку JavaScript Ромио Opera, Safari и др. 4 21.10.2010 20:34
Использование dll в javascript. alexKniaz Общие вопросы Javascript 5 28.10.2008 18:56