Модераторы: Sardar, Aliance
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Мой стиль программирования - вдруг я не прав, хочу узнать мнение более опытных 
:(
    Опции темы
Timophey
  Дата 16.11.2012, 02:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 13
Регистрация: 16.10.2007
Где: Россия

Репутация: нет
Всего: нет



Приветствую ВАС, форумчане!
Не так давно я начал писать full ajax сайты или веб-приложения на ajax, или прочие подобные вкуснЯшки на JS.
Структура кода:
Код

var core={
 vars:{a:0,b:1,...},
 methods:{
  init:function(){
   // init all events, make sth different
  },...
 }
}

Т.е. все основные переменные живут в своём адресном пространстве, методы живут и общаются между собой этими переменными на соседней ветке, core.methods.init() вызывается после рендера страницы. Так работают мои последние поделки типа этой (проект сдан и уже живёт на другом адресе) или этой (сайт недоделан, но задумка была масштабная).
Хочу посоветоваться с более опытными и мозговитыми о правильности моего подхода, и если нет, то как его можно/нужно улучшить.
З.Ы. Пост не призван спровоцировать флуд и не несёт рекламного характера, интересно услышать совет и/или адекватное мнение.

Это сообщение отредактировал(а) Timophey - 16.11.2012, 02:22
PM MAIL WWW ICQ Skype   Вверх
Stolzen
Дата 16.11.2012, 09:12 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1041
Регистрация: 17.10.2005

Репутация: 4
Всего: 48



Нормально. Хотя я бы vars отдельно не выделял.

Рекомендую книгу JavaScript Patterns (Stoyan Stefanov), мне в свое время помогла систематизировать знания по JS. 


--------------------
datatalks.ru - анализ данных, статистика, машинное обучение
PM MAIL WWW   Вверх
Aliance
Дата 16.11.2012, 10:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


I ♥ <script>
****


Профиль
Группа: Модератор
Сообщений: 6418
Регистрация: 2.8.2004
Где: spb

Репутация: 55
Всего: 137



Вы не работали в большом коллективе, я прав?
PM MAIL WWW ICQ Skype   Вверх
CruorVult
Дата 16.11.2012, 11:30 (ссылка)  | (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 868
Регистрация: 24.9.2008
Где: г.Киев, Украина

Репутация: 13
Всего: 28



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

Это сообщение отредактировал(а) CruorVult - 16.11.2012, 11:55
PM MAIL Skype   Вверх
Amphiluke
Дата 16.11.2012, 19:45 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


   ☽
***


Профиль
Группа: Завсегдатай
Сообщений: 1253
Регистрация: 26.8.2009

Репутация: 35
Всего: 112



Большой уровень вложенности объектов отрицательно сказывается на производительности. Особенно в циклах. Правильнее использовать локальные переменные в качестве быстрых ссылок на нужные глубоко вложенные свойства. Этим вы избавляете интерпретатор от необходимости просматривать длинные цепи областей видимости (и прототипов). Так можно и обеспечить определенный уровень инкапсуляции (у вас же все свойства публичны).

Пример неоптимального кода из вашего скрипта:
Цитата

Код

init:function(){
    // make nav list and numered array, make slideshows
    for(var i in core.vars.pages.acos)
        if(!core.vars.pages.list[core.vars.pages.acos[i].index]) core.vars.pages.list.push(i);


Оптимизировать можно было бы при помощи локальных переменных (объект активации просматривается первым при разрешении имен)
Код

init:function(){
    // make nav list and numered array, make slideshows
    var pages = core.vars.pages,
        acos = pages.acos,
        list = pages.list,
        i;
    for(i in acos) {
        if(!list[acos[i].index]) list.push(i);
    }



Это сообщение отредактировал(а) Amphiluke - 16.11.2012, 19:47
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Форум для вопросов, которые имеются в справочниках, но их поиск вызвал затруднения, или для разработчика требуется совет или просьба отыскать ошибку. Напоминаем: 1) чётко формулируйте вопрос, 2) приведите пример того, что уже сделано, 3) укажите явно, нужен работающий пример или подсказка о том, где найти информацию.
 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | JavaScript: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0627 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.