Результаты поиска
| |
NancyWithoutSid | Дата: Понедельник, 14 Января 2013, 20:08 | Сообщение # 21 | Тема: Node.JS, Java Script и все что с этим связано. |
был не раз
Сейчас нет на сайте
| Цитата (xMoonGuarDx) В памяти и скорости всё равно он не теряет, да и сложность от этого не повышается, т.к. данный метод наверняка делает тоже самое. Просто потратил на 5 секунд больше Извини, я сегодня педантична. Тяжелый день, все дела. Но в данном случае length - это публичное поле Array, и его вычисление не стоит ни копейки, вместо этого мы итерируем по коллекции, чей размер может быть хоть миллиард элементов(ну в теории). Я просто говорю что это муветон, а когда он выстрелит в ногу создателю, разумеется, неизвестно
Если вы считаете, что женщина не умеет программировать, то вам стоит попробовать JProfiler или valgrind...
|
|
| |
NancyWithoutSid | Дата: Понедельник, 14 Января 2013, 19:51 | Сообщение # 22 | Тема: Node.JS, Java Script и все что с этим связано. |
был не раз
Сейчас нет на сайте
| Цитата (NancyWithoutSid) Если не ошибаюсь, это for each, т.е. сокращенная запись фора. В си её нет, насколько я помню. Дело не в forEach, а в том, что господин решил найти число элементов в коллекции тупо проитерировав по ней, а не вызвав size()(извините, Java), наверное так length. Если в JS этого нет, то я выйду торговать своим телом к атлантиде!
Если вы считаете, что женщина не умеет программировать, то вам стоит попробовать JProfiler или valgrind...
|
|
| |
NancyWithoutSid | Дата: Понедельник, 14 Января 2013, 19:24 | Сообщение # 23 | Тема: Node.JS, Java Script и все что с этим связано. |
был не раз
Сейчас нет на сайте
| Всем добрый день, ребята. Вот набрела на ваш форум, друг посоветовал. Это мое первое сообщение, не судите строго, я еще вольюсь в ваш коллектив! Вы тут подняли очень интересную тему, а именно использование JS( NodeJS) для серверной части онлайн игр. Я немножко занималась программированием на JS под клиент. Надо сказать, что чувства были довольно странные. Не совсем ужасно конечно, но странновато. Я понимаю конечно, что прототипное программирование несколько иное(вернее совсем) нежели ООП. Но больше меня интересует как на JS код этот самый пишут. AGENTX001 как хорошо что ты выложил свой код! Я как раз тебе задам несколько интересующих вопросов, касаемо JS(наконец-то хоть кто-то ответит) Во-первых меня интересует проблема инкапсуляции. Как-то даже не по-сишному получается.Там хоть через хэдеры глобалили(при чем очень аккуратно), а тут все в кучу. Спасает то что клиентский код на JS однопоточен, и проблем с синхронизацией нет. Можно я чуть чуть покоментирую твой код? *SHY* Код var RegRenderFunction = function(func) { var RenderFunction = function() { func(); fpsCount++; setTimeout(function() { RenderFunction(); }, 4); } RenderFunction(); LOG('Render function registrated!'); } Зачем столько фунциональщины?(замыканий) За такое наказывают Ничего ж непонятно становится Код for (var i in loadList) all_sprites++; oO Код var DrawTexture = function(tex_name, x, y, offsetX, offsetY, angle, alpha, partX, partY, partW, partH) { if (arguments.length > 3) { Ай ай ай! Как же мейнтейнить ваш код? Когда у вас ф-ия имеет либо 3, либо какое-то другое число аргументов, при чем при другом числе аргументов она будет падать и пытаться что-то делать Логичнее наверное было бы сделать все же 2 Ой, извиняюсь,нашла еще вот это Код if (arguments.length > 6) ctx.globalAlpha = alpha; if (arguments.length > 7) { Не кажется что немного громоздко? Вы не пробовали почитать литературу? Как это идеологически верно делается в OpenGL например? Гораздо логичнее использовать статичную машину для цветов/текстур и тп. Размер кода уменьшится в разы. OpenGL - суперкнига, хорошая вещь(рекомендую) Код var DrawSprite = function(spr, x, y, angle, alpha) { Извини, но почему не function drawSprite(spr,x,y,angle,alpha) ? И так везде! Зачем смешивать данные и код? Лан,я устала. Хотя нет... Везде используются строковые литералы вместо констант. Очень печально дебажить неделю код из-за ошибки в одной букве... Ну а теперь перейдем к серверному коду в принципе идеи все те же, только вот велосипедство еще добавилось Есть же много разных на любой вкус и цвет логеров Ну и вот этот кусочек, пожалуй
Код var userList = []; //// var GetPublickUserList = function(ignore) { var data = [] ///// io.sockets.on('connection', function (socket) { socket.on('disconnect', function() { LOG('Player lost, name: '+socket.playerObject.name+', id: '+socket.playerObject.id); delete userList[socket.playerObject.id]; });
Оно userLits глобальная переменная, доступная из сотни потоков. Где синхронизация?Я думала, вы серьезный мужчина (с) Подведем итоги. Не важно подо что программировать(хоть под тостер), и на чем(хоть на фортране), главное делать это профессионально...
Если вы считаете, что женщина не умеет программировать, то вам стоит попробовать JProfiler или valgrind...
|
|
| |
|