• Как разделить разработку backend и frontend?

    @maxtm
    Make money, not job
    Попробуйте REST API, front работает с четко стандартизированным апи, бэкенд не парится о том как это выглядит.
    Ответ написан
    Комментировать
  • Как работает this?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    Ох...

    Для начала нам стоит прояснить что в javascript "методы" это обычные функции, которые просто привязаны к объекту. Если не вдаваться в подробности работы интерпритатора, вы можете спокойно вынести содержимое конструктора и заменить this на экземпляр объекта.

    Если совсем упростить - в javascript нет "методов", у объектов могут быть только свойства. "Методы" реализуются присваиванием функции (обычно анонимной) к свойству объекта.

    Теперь про this. this - это контекст вызова. Это "волшебная" переменная указывает на контекст, в котором мы вызвали какую-либо функцию. Она никак не фиксируется, и мы можем крутить и вертеть ей как хотим.

    По умолчанию она указывает на "владельца" функции. Тот объект, в контексте которого мы вызвали функцию.

    function foo() {console.log(this);}
    
    function MyObject() {
        this.foo = foo;
    }
    
    var hashMap = {
        foo: foo
    };
    
    var obj = {};
    var instance = new MyObject();
    obj.bar = instance.foo;  // мы можем даже красть методы
    
    foo(); // выведет window, если для браузера и мы вызывали в глобальном контексте
    instance.foo(); // выведет instance так как в контексте этого объекта мы это дело и вызывали
    hashMap.foo(); // выведет hashMap по той же причине
    obj.bar(); // выведет obj опять же потому что мы вызывали функцию в этом контексте
    foo.call('my own context') //мы можем задать свой контекст


    Зачем присваивается this и используется в дальнейшем?


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

    У нас конечно есть еще функция bind, которая позволяет явно зафиксировать контекст, но иногда удобнее так.

    Именно за счет областей видимости функций в javascript мы достигаем инкапсуляции, скрываля приватные штуки внутри нашей области видимости и выплевывая наружу только то, что нужно. Самая настоящая инкапсуляция, модификаторы доступа в этом плане - просто кастыли (хотя для восприятия они проще).
    Ответ написан
    12 комментариев
  • Что почитать по тестированию в JavaScript?

    xmoonlight
    @xmoonlight
    https://sitecoder.blogspot.com
    Ответ написан
    Комментировать
  • Из JS в obj-c, swift, iOS-dev. Как сложен переход и с чего начать?

    Deerenaros
    @Deerenaros
    Программист, математик, задрот и даже чуть инженер
    JS, как и Objective C принадлежит к алголоподобной семье, так что особых проблем с синтаксисом не будет. Разве только возможен разрыв шаблона по поводу ООП, так как оно совсем по другому реализовано в Objective C. Почитайте любую общую литературу, а там найдёте волну. Не скажу, что должны возникнуть какие-то особые сложности, однако в любом случае - терпение и труд всё перетрут.

    По поводу специфики JS как языка - пусть он и урод, однако он довольно мощный язык программирования с тучей возможностей и ещё тележкой фич. Objective C в этом плане намного больше похож на классический Smalltalk, да и совместимость с классическим Си только добавляет очков в пользу классики, однако сам по себе Objective C всё таки имеет несколько интересный устрой.

    По поводу Swift - он пока довольно сырой и создавался с учётом специфики iOS разработки, без опыта вряд ли действительно поймёте улучшения, разве только некоторые из них. Впрочем, смысла действительно никакого, а вот большая привязанность к платформе ничего хорошего не сулит.
    Ответ написан
    2 комментария
  • Как можно выдать пользователю модальное окно после успешной регистрации?

    xmoonlight
    @xmoonlight
    https://sitecoder.blogspot.com
    В коде успешной регистрации:
    @session_start();
    $_SESSION['ShowWelcome']=1;


    При открытии страницы:
    @session_start();
    if (isset($_SESSION['ShowWelcome'])) {
       ...................//загрузка отображения модального окна
        unset($_SESSION['ShowWelcome']);
    }
    Ответ написан
    Комментировать
  • Чем отличается junior от middle? а Senior?

    viktorvsk
    @viktorvsk
    Зарплатой и умением сказать "я - миддл" или "я - джуниор" и убедить в этом собеседника.
    Ответ написан
    1 комментарий
  • AngularJS. С чего начать, не имея опыта работы с другими фреймворками?

    @krlljs
    Видеокурсы:
    loftblog.ru - rus
    egghead.io - eng
    Ответ написан
    Комментировать
  • Какую среду выбрать для разработки HTML-верстальщику (особые задачи)?

    GitHub плохой, а Dreamweaver хороший софт? Разработка через Goggle.Drive?
    Да. Индус это состояние души =(
    Ответ написан
    7 комментариев
  • Что необходимо для современного веб-программирования?

    @gro
    Программисту нужно уметь получать удовольствие от вещей, от которых никто в здравом уме удовольствия не получит. И не думать при этом о деньгах. Тогда они сами придут.
    И главное никому и тем более себе никогда не говорить "отлично знаю %что угодно%".
    Ответ написан
    7 комментариев