Задать вопрос
  • Как в С++ использовать несколько методов к объекту как в JavaScript?

    gbg
    @gbg Куратор тега C++
    Любые ответы на любые вопросы
    В C++ это будет вызов метода method2() у того, что вернул method1().

    А вы что хотите? Чтобы method2() вызывался у object? тогда метод1 должен возвращать ссылку на *this.

    #include <iostream>
    #include <stdexcept>
    #include <iomanip>
    using namespace std;
    
    
    struct vantuz
    {
       vantuz& push();
       vantuz& pull();
       vantuz();
    private:
       bool pushed;
    };
    
    vantuz::vantuz():pushed(false)
    {
    }
    
    vantuz& vantuz::push()
    {
            if(pushed)
            {
                  throw logic_error("already pushed!");
            }
            pushed=!pushed;
            cout<<"push! ";
            return *this;
    }
    
    vantuz& vantuz::pull()
    {
        pushed=!pushed;
        if(pushed)
        {
              throw logic_error("already pulled!");
        }
       cout<<"pull! ";
       return *this;
    }
    
    int main()
    {
       try
       {
          vantuz v;
          v.push().pull().push().pull().push().pull().push().push();
       }
       catch(logic_error& ex)
       {
       	  cout<<endl<<setw(20)<<setfill('@')<<' '<<"Runtime error!"<<setw(20)<<setfill('@')<<' '<<endl<<ex.what()<<endl;
       	  throw;
       }
       return 0;
    }

    Потыкать на ideone
    Ответ написан
    3 комментария
  • Возможно ли установить набор модулей для NODE.JS на компьютере без выхода в инет?

    MarcusAurelius
    @MarcusAurelius Куратор тега Node.js
    автор Impress Application Server для Node.js
    В вашем случае проще установить на подключенной машине и потом просто папку перенести целиком, вместе с node_modules.
    Ответ написан
    1 комментарий
  • Как изменить значение переменной в функции?

    @IceJOKER
    Web/Android developer
    Объявить переменную вне функции, то что внутри функции объявлено доступно только внутри этой функции.
    Ответ написан
    Комментировать
  • Как разобраться с typescript?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    Начните с ES6. TypeScript это тот же ES6/7 + плюшки.

    Собственно "классы" в TS или в ES6 это всего-лишь сахар над старыми добрыми прототипами, что бы не писать все руками через Object.create или Object.defineProperties
    Ответ написан
    5 комментариев
  • Как оптимизировать загрузку сайта?

    zo0m
    @zo0m
    full stack developer
    фаербаг показывает что вы грузите картинки по 2мб
    f21a3fee24724a919725eb6a7eeb7943.png
    Ответ написан
    Комментировать
  • Чем io.js лучше Node.js?

    BOOMER_74
    @BOOMER_74
    Full-Stack разработчик
    Главное это включенная поддержка (на уровне V8) ES6 по умолчанию (тоже самое есть в Node.js, но доступно с указанием специальных ключей). Так же отличается открытым обсуждением и принятием новых фич, изменений в API и т.д. (в отличии от Node.js, где этим заправляет Joyent). В принципе ничего не мешает использовать его сейчас, разве что стабильность некоторых функций (проверьте список баг, перед использованием :) ).
    Ответ написан
    Комментировать
  • Как расположить точки на цилиндрической карте?

    Mrrl
    @Mrrl
    Заводчик кардиганов
    Зависит от проекции. Пусть широта точки равна u (измеряется в радианах, от -pi/2 до pi/2), а долгота v (от 0 до 2*pi).

    Самая распространённая - равнопромежуточная цилиндрическая проекция. В ней карта имеет размер (2*pi) x pi, и координаты вычисляются как x=v, y=u+pi/2.

    В проекции Меркатора ширина карты равна 2*pi, а высота может быть любой, вся планета всё равно не поместится. Допустим, высота равна 2*H, ширина - 2*pi. Тогда координаты будут x=v, y=ln(tan(u/2+pi/4))+H. Для некоторых точек (около полюсов) y выйдет за пределы диапазона (0,2*H), этих точек на карте не будет.

    В равновеликой проекции Ламберта (сохраняющей площади) карта имеет размер (2*pi) x 2, и координаты вычисляются как x=v, y=sin(u)+1.

    В равнопромежуточной азимутальной проекции (с центром в северном полюсе) карта умещается в квадрат со стороной 2*pi. x=pi+(pi/2-u)*cos(v), y=pi+(pi/2-u)*sin(v).

    В центральной проекции (с центром в северном полюсе) на карте умещается только часть северного полушария. Допустим, карта - квадрат со стороной 2*M. Тогда x=M+ctg(u)*cos(v), y=M+ctg(u)*sin(v) (для u>0). Преимущество этой проекции - что кратчайшие пути между точками изображаются прямыми.

    В стереографической проекции (с центром в северном полюсе) планета на карте тоже не поместится. Допустим, карта - квадрат со стороной 2*M. Тогда x=M+ctg(u/2+pi/4)*cos(v), y=M+ctg(u/2+pi/4)*sin(v)

    Это первое, что пришло в голову (правда, три последних - не цилиндрические). А вообще, проекций (и алгоритмов) много. Вот краткий список (примерно 60 вариантов): https://en.wikipedia.org/wiki/List_of_map_projections
    Ответ написан
    Комментировать
  • Объясните коротко, по делу что же лучше/производительнее/удобнее и в каких ситуациях?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    мне казалось что все что не .on помечено как deprecated...

    В любом случае:
    - .on - универсальный метод объеденяющий все ниже перечисленные. Всегда старайтесь использовать его.

    - .live - вешает листенер на document и проверяет источник события. Гуглить "Всплытие событий". Был еще .delegate, который делал ровно то же самое но вы сами указывали ноду на которую вешается обработчик. А теперь вопрос, что будет быстрее? Вешать обработчик напрямую на элемент или на его родителя и проверять с какого элемента этот ивент всплыл? Будет ли разница по глубине DOM дерева? Если мы дошли что чем ближе обработчик висит к целевой ноде, тем быстрее, почему вообще нужно использовать делегирование событий? Помимо упрощения работы (если DOM поменялся обработчики не нужно перерегистрировать так как контейнер не менялся и все еще хранит листенер) есть еще такой параметр как количество листенеров. Если у вас табличка аля эксель, проще повесить один листенер на контейнер чем много-тысяч на каждую ячейку.

    - .bind - просто вешает событие на элемент.

    - .click - алиас для .bind('click').
    Ответ написан
    Комментировать
  • Разъясните суть кода?

    Lynn
    @Lynn
    nginx, js, css
    Вообще говоря sortArr и Boolean не эквивалентны. Впрочем для значений true и false они действительно будут выдавать одинаковый результат.

    Любой конструктор в JS это функция. Boolean не исключение. Если его вызывать как функцию, а не как конструктор (т.е. без new), то он приведёт переданный аргумент к true или false, так же как и выражение !!x.
    Ответ написан
    Комментировать
  • Почему не загружает json?

    Taraflex
    @Taraflex
    Ищу работу. Контакты в профиле.
    Открываем консоль разработчика браузера (f12)
    Смотрим что за ошибки у нас вывалились.
    Гуглим ошибки.
    Исправляем ошибки.

    ps. javascript я совсем не знаю. Появилась необходимость вывести метки из json файла на Яндекс карту.

    learn.javascript.ru
    javascript.ru
    Ответ написан
    Комментировать
  • Есть какие-нибудь ресурсы по построению правильной серверной архитектуры на node.js/io.js?

    MarcusAurelius
    @MarcusAurelius Куратор тега Node.js
    автор Impress Application Server для Node.js
    Архитектурные принципы не очень связаны именно с нодой, они будут примерно одинаковыми, на каком бы языке вы не писали. Первое, что я могу посоветовать, когда Вы переходите от технологий программирования к архитектуре систем, это как переход от кладки кирпича к архитектуре зданий - нужно отложить все шаблоны, которые Вы знали до того и подняться на другой уровень абстракции. А именно, нужно перестать мыслить такими понятиями, как DI (dependency injection), REST, MVC, ORM, RPC, шаблонизаторы, компоненты, сокеты, промисы и прочее - это все технологии. Что же нужно понять это: слои (layers), модули, контракты, адаптеры, клиент-сервер, 3-звенная архитектура, микросервисы, СМО (системы массового обслуживания), и т.д. Где так все собрано в одном месте - не могу сказать, я лично по крупицам все осваивал, на что положил 20 лет профессиональной деятельности. Почитайте про ISO/OSI, загляните в три мои статьи habrahabr.ru/post/227753 и habrahabr.ru/post/204958 и habrahabr.ru/post/117791 Раньше хорошие статьи по архитектуре были на www.osp.ru но, к сожалению, давно не читал его. Можно начать с книг Гради Буча и освоения UML, этот дядька сформировал достаточно полный подход и методологию проектирования программных систем, которая ведет правильным путем, но на практике, в каждом отдельном случае может быть заменена интуицией архитектора и существенно упрощена. Удачи!
    Ответ написан
    6 комментариев
  • Вредно ли копирование в программировании?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Авторы скринкастов, видеоуроков и прочих легкоусвояемых материалов в большинстве своем - малолетние долботрясы. Которые ничего не смыслят в теме, которую взялись объяснять другим. Так что, если говорить о вредности для программирования - это скринкасты. Причем вредность фатальная. Здесь, на тостере, полно жертв скринкастов. Душераздирающее зрелище.
    Ответ написан
    Комментировать
  • Вредно ли копирование в программировании?

    @dklokov
    php developer
    Хорошая IDE как компромисс ) Писать начал вроде сам, а дополняет уже она. Опечаток 0, продуктивность на высоте)
    Ответ написан
    Комментировать
  • Актуален ли сейчас jQuery?

    @fr33zy
    Если вы занимаетесь только версткой, то знания jQuery достаточно, чтобы сдать свою работу. Дальше работой займутся JS-разработчики. Не выполняйте чужую работу ;-)

    Если вы занимаетесь не только версткой.
    В этом случае я бы советовал сразу использовать BackboneJS (или AngularJS/любой-хороший-фреймворк), поскольку любые попытки организовать jQuery-код оборачиваются созданием того же BackboneJS (по собственному опыту).
    Проекты имеют свойство разрастаться, и использование хорошего фреймворка - это, пускай, медленный старт, но стабильно быстрая доработка/исправление.
    Ответ написан
    Комментировать
  • Как развернуть сервер с nodejs на Ubuntu?

    dizballanze
    @dizballanze
    Software developer at Yandex
    Есть достаточно много сервисов, которые предоставляют такую возможность: 1, 2, 3
    Ответ написан
    Комментировать
  • Как правильно хранить javascript?

    Assargin
    @Assargin
    Перед ответом смотрю наличие ✔ в ваших вопросах
    Отказываться не нужно, в наше-то время. Несколько общих рекомендаций:
    • В head'е могут быть только самые необходимые скрипты, которым это нужно. Например, аналитика, счётчики, возможно что и jquery (просто по привычке его всегда в head'е прописываю)
    • Остальные скрипты нужно убирать в самый конец страницы.
    • Скрипты, как и стили, кстати, для ускорения загрузки надо сжимать и сливать в один файл
    Ответ написан
    Комментировать
  • Как JavaScript фреймворк выбрать: AngularJS, EmberJS, Backbone или без под конкретную задачу?

    alexey-m-ukolov
    @alexey-m-ukolov Куратор тега JavaScript
    Я думаю, Backbone вам даст именно то, что вы хотите - основу, на которой вы сможете работать так, как удобно вам. Он не накладывает никаких ограничений на архитектуру. А если потом решите, что нужно что-то более высокоуровневое, добавите Marionette.
    Ответ написан
    1 комментарий