Ответы пользователя по тегу Node.js
  • Можно не использовать шаблонизатор для NodeJS?

    index0h
    @index0h
    PHP, Golang. https://github.com/index0h
    > А как происходит дело в NodeJS ?
    Прими за исходную: работаешь со строкой, которую записываешь в body ответа. Не больше и не меньше. Да, можно сделать эту строку в виде "< html >< body >" + myContentVarHere + "< /body >< /html >", но зачем? Есть популярные шаблонизаторы: Jade, EJS, JQtemplates используй их.

    @Fesor
    > В целом PHP плохой шаблонизатор.
    Не согласен. PHP - stateless язык, который вполне себе ок шаблонизатор. Если верить википедии: PHP: Hypertext Preprocessor. Да, есть twig, да есть smarty, но эти шаблонизаторы только пародируют PHP. Результат их работы - это тот же PHP код, только кэшированный.

    > Пока у людей пишущих на php появляются такие мысли, над php будут продолжать смеяться.
    Над нами php-dev смеются потому что:
    1. Динамическая типизация. 5 + "5abc" + "abc5" по хорошему должно давать исключение в стиле "парень меняй драг диллера, это какое-то УГ!".
    2. Не консистентное API. С тем же if (!strpos(...)) наверняка хлебнули горя.
    3. Наличие миллиона стандартов. Да, есть PSR, расскажите о нем автору, знающему кохану.
    4. Что на счет scalar type hinting? Всего 20 лет прошло как в 7-ке это таки решили внедрить, и то с ограничениями на вывод.
    5. Что на счет демонов? Да, я знаю, можно, да я знаю как, но №;%: есть языки для этого приспособленные и php в их число не входит, это stateless язык!

    Я отошел от темы шаблонизаторов.
    Чем принципиально {{someVar}} лучше <?= $someVar; ?>, учитывая, что шаблон в любом случае приведется к нейтивному коду + за кэшируется?
    Ответ написан
    2 комментария
  • Как обработать sessionStorage (браузерный) на node?

    index0h
    @index0h
    PHP, Golang. https://github.com/index0h
    Нужно явно передать эти данные из браузера на сервер, либо аякс запросом, либо через вебсокеты
    Ответ написан
    5 комментариев
  • Что из новинок нельзя как лучше подойдет для создания Http Rest Api?

    index0h
    @index0h
    PHP, Golang. https://github.com/index0h
    Ответ написан
    Комментировать
  • Как правильно сделать гибрид SPA и классики?

    index0h
    @index0h
    PHP, Golang. https://github.com/index0h
    Ответ написан
    Комментировать
  • Какой выбрать язык для серверной части highload проекта?

    index0h
    @index0h
    PHP, Golang. https://github.com/index0h
    С нодой очень вероятно - хлебнете горя на утечках памяти. Нода - конечно не плохая штука, но вы должны понимать, что ограничены N потоков запросов к БД, где N - количество CPU(в случае, если модуль кластер использовать не будете N = 1). То, что касается IO - нода очень даже синхронная.
    На счет C++ - будьте осторожны, скорость разработки и поддержка вероятно будут больным вопросом.
    На счет питона ничего не скажу.
    Можете посмотреть в сторону Golang или Java.

    Вообще говоря - нельзя подбирать технологию по паре абстракций типа "работа с postgre", "логика проекта", "highload")) Это как подбирать пароль зная, что но был написан на желтой бумажке. Слишком мало информации.

    На счет HL: возможно скажу спорную штуку, но если вы ориентируетесь на HL - даже не предполагайте того, что сервер будет один.
    Ответ написан
  • Создание бота, или где начать копать?

    index0h
    @index0h
    PHP, Golang. https://github.com/index0h
    Смотри в сторону PhantomJS / CasperJS
    Ответ написан
    Комментировать
  • Что учить: сразу NodeJS на Azure или NodeJS отдельно?

    index0h
    @index0h
    PHP, Golang. https://github.com/index0h
    Для "лишь бы было" учить в принципе не стоит, дешевле нанять фрилансера.

    Код обычно разрабатывается на локальной машине, а дальше диплоится на боевой сервер. Писать сразу на боевом - не самая хорошая мысль. Это не безопасно И время каждый раз на синхронизацию тратить будете.
    Ответ написан
    Комментировать
  • Где водятся специалисты JavaScript?

    index0h
    @index0h
    PHP, Golang. https://github.com/index0h
    > ... который мог бы совмещать качественных фронт и бэкэнд на node.
    Не ищите 8-мирукого Шиву. Backend и Frontend отличаются очень сильно.
    Хороший фронтендщик должен уметь верстку, уметь браузерные фреймворки и знать нюансы работы каждого из поддерживаемых браузеров + фотошоп и т.д.
    Хороший бэкнедщик (nodejs) должен знать как минимум несколько бэкенд фреймворков, как минимум одну СУБД, уметь в линукс (если проды под ним), знать k-v базы данных и т.д.

    Это при том, что оба должны знать JavaScript.

    Обратите внимание, какие вопросы задаются на собеседовании. Очень много зависит от интервьюера. Бывали довольно забавные случаи:
    1. Ок, про горизонтальное расширение поговорили, про индексы бд поговорили, про системы кэширования поговорили, а теперь практика: что произойдет (показывает код) $a = 5 + '5abc' + 'abc5';. Я: Вообще говоря 10, но на самом деле - постараюсь поговорить с автором с целью понять, что такое ужасное может произойти в жизни, что бы он позволил себе такое написать. (сразу после этого вопроса желание идти в эту компанию поубавилось)
    2. Назовите хотя бы 5 плейсхолдеров sprintf. Я: я ее не использовал. Но как же, все ее используют! Я: вы помните все плейсхолдеры функции date, помимо стандартных Y,m,d,H,i,s ? ....

    > Сергей
    > который знает js, а Node.js, это библиотека.
    Очень спорно)), браузерный и серверный js довольно сильно отличаются. Если программист знает nodejs - он знает js, в противном случае - велика вероятность, что он просто знает jquery, такое сплошь и рядом.

    UPD

    > Тимофей
    > Нельзя "знать node.js". Это как сказать, что я знаю не Java, а JVM или не C#, а .NET.
    Вы мой комментарий прочитайте еще раз.
    > Если программист знает nodejs - он знает js
    В браузерном JS чуть-что всегда можно перезагрузить страничку. Проблема утечек памяти в там в принципе возникает, если пишется SPA, или его производные. В то же время на серверной части - это критично.
    Я лично, когда собеседовал соискателей задавал вопрос: как на существующем сайте (там jquery не установлен), с помощью jquery нажать на кнопку? Единицы отвечали что-то в стиле "создать DOM элемент script под jquery, а дальше нажать через click", в большинствен случае было что-то невнятное в стиле "ыыы....", или "никак".

    Смысл тут в том, что nodejs разработчик обязан знать native js, от фронтендщика это требуется меньше, как следствие существует куча человеков, считающих себя тру-синьйорами, а на деле знаю только jquery.
    Ответ написан
    2 комментария
  • JSLint зло или добро!???

    index0h
    @index0h
    PHP, Golang. https://github.com/index0h
    Не пиши каку и все ок будет, там же в выводе написано, что не так. И это не "гребанный валидатор", а ОЧЕНЬ эффективная система по выпрямлению кривых рук.
    Ответ написан
    1 комментарий
  • Какой правильный подход к изучению JavaScript?

    index0h
    @index0h
    PHP, Golang. https://github.com/index0h
    Как правильно подойти к процессу изучения?

    Про системы обучения написаны кучи диссертаций, и лучшей не существует))
    Я учу что-то новое в it сфере следующим образом: подбираю "понятную для меня" книгу 700+ стр. Читаю, как "художественную" с целью понять: что я могу делать и какие механизмы для этого стоит использовать. Дальше практика с книгой. Потом книга откладывается на полочку и пользуюсь официальной документацией ну и гуглом конечно.

    Какую литературу читать?

    Книга подбирается под себя. Заходишь в магазин, берешь первую попавшуюся (книги типа "С++ за 21 день" - даже не смотри, это тупая трата времени). Открываешь где-то в средине, читаешь абзац, если вообще не ясно о чем там - книга не подходит.

    Какие видео курсы смотреть?

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

    Сколько времени уделять обучению в день?

    Не ставь так вопрос)) Поставь себе реальную цель и добивайся ее, она же будет тебя направлять. Программирование - это процесс непрерывного обучения.

    Какая перспектива как javascript-разработчик?

    Вы посмотрите вакансии по js

    Что вообще лучше Верстальщик или писать мозги сайту(хотелось бы услышать о зарплате, сравнительно)?

    Что лучше, вилка, или ложка? Смотря что собираешься делать))

    --

    З.Ы. Самое важное научиться быстро находить информацию - например ваш вопрос тут уже не раз освещался))
    Ответ написан
    1 комментарий
  • Как узнать с мобильника заходят на сайт или с ПК?

    index0h
    @index0h
    PHP, Golang. https://github.com/index0h
    User-Agent в помощь
    Ответ написан
    Комментировать
  • Как написать десткоп на html/css/js?

    index0h
    @index0h
    PHP, Golang. https://github.com/index0h
    > а есть какой-то другой, более удобный
    да, не использовать nodejs для этого)) Это серверная технология как-ни-как.

    Посмотрите в сторону QML
    Ответ написан
  • Nodejs vs ASP.NET MVC vs php?

    index0h
    @index0h
    PHP, Golang. https://github.com/index0h
    Добрый день, подскажите, какой прибор удобнее для "среднестатистического" употребления пищи? Ложка vs вилка (vs нож)?

    Это системы для разных целей и удобнее на них решать задачи, под которые они заточены
    Ответ написан
    7 комментариев
  • Как сделать поле где хранятся только два выбора mongoDb?

    index0h
    @index0h
    PHP, Golang. https://github.com/index0h
    Это полностью на совести разработчика. Mongo не предъявляет особых требований к документам (ну разве что валидный json). По сему на этапе вставки / обновления вы обязаны следить за тем, что бы в ваше поле записывался либо 0, либо 1.
    Ответ написан
    1 комментарий
  • Какой набор ПО хотели бы видеть на VPS для разработки?

    index0h
    @index0h
    PHP, Golang. https://github.com/index0h
    Посмотрите puphpet, туда бы еще logstash + kibana / sentry, docker, анализаторы кода в стиле scrutinizer, golang (gvm), couchdb
    Ответ написан
    Комментировать
  • Как правильно писать асинхронный код?

    index0h
    @index0h
    PHP, Golang. https://github.com/index0h
    1. У вас callback выполнится 2 раза, если так задумано - все правильно, в противном случае - нет. Второй callback вызов должен быть в else.
    2. return не нужен так как после него все равно ничего не происходит.

    В остальном явных проблем не вижу))
    Ответ написан
    Комментировать
  • Для PHP нужен лок. сервер, а для других ЯП?

    index0h
    @index0h
    PHP, Golang. https://github.com/index0h
    С 5.4 у php есть встроенный сервер, но его стоит использовать разве что для тестирования. PHP - не хранит свое состояния от запроса к запросу, он так изначально создавался, как следствие - для части кейсов - это его киллер фича, для другой части - недостаток. Например: в одном из 200 файлов php ошибка синтаксиса, все запросы, которые НЕ будут требовать этот файл будут работать, остальные - фаталить. Я не спорю, за такое надо бить сраным веником по одному месту, но ситуации бывают разные.
    У NodeJS / Ruby / Golang / Erlang / ... сервера поднимаются собственные, и у них есть некое состояние, хранящееся между запросами. Нужно быть осторожным в плане перехвата ошибок, так как любое не перехваченное исключение выведет из строя ваш сервер (за такое нужно тем же веником по тому же месту)) ).
    Для этих языков обычно тоже поднимается nginx и отдает статику, а запросы на html - уже проксирует.
    Ответ написан
    2 комментария
  • Как вам архитектура node.js + asp.net web api?

    index0h
    @index0h
    PHP, Golang. https://github.com/index0h
    Для маленького на коленке вы еще туда RoR, Django и Symphony2 подключите)).

    NodeJS /IO.js - это backend система, она не предназначена для браузера.

    ui-backend - что то новенькое)) на базе console dialog?))
    Ответ написан
    1 комментарий
  • Как выполнить синхронно цикл в nodeJS?

    index0h
    @index0h
    PHP, Golang. https://github.com/index0h
    var func = function (i) {
        return function () {
            console.log('Индекс: ' + i);
        };
    };
    for(var i = 0; i <= 10; i++) {
      setTimeout(func(i), 5000 / i);
    }


    Только i != 0, потому как деление на 0 будет

    Как получить: Индекс: 0, Индекс: 1, Индекс: 2, Индекс: 3... ?

    Не катит, у вас i увеличивается, а задержка уменьшается, будет в обратном порядке. 10 -> 1
    Ответ написан
    Комментировать
  • Обучение по видео урокам. В чем фишка?

    index0h
    @index0h
    PHP, Golang. https://github.com/index0h
    Обучение по видео эффективнее учебников и статей?

    Нет, в видеоуроке нет возможности рассмотреть все возможные варианты работы с технологией.

    Какие есть причины, чтобы начать разбираться в технологии по видео урокам?

    Время. Намного быстрее для общего понимания просмотреть 2 раза видео по 2 часа, чем читать книгу на 800 стр. Безусловно, в памяти отложится меньше, посему сразу необходимо практиковаться.
    Лично я учусь хотя и по книгам, но принцип тот же: сначала читаю как художественную, что бы понять что в принципе я смогу и зачем нужен тот, или иной механизм, листинги при этом либо смотрю бегло, либо не смотрю вообще. Дальше - официальная документация и практика.
    Ответ написан
    Комментировать