Профиль пользователя заблокирован сроком с 15 октября 2017 г. и навсегда по причине: многократные нарушения регламента работы сервиса
  • Как быть, если callback'y подменяют контекст ( заурядное и OOP решение )?

    Petroveg
    @Petroveg
    Миром правят маленькие с#@&ки
    А можно мне пояснить эту конструкцию?

    function One(){
    	// Очевидно, устанавливает this свойства и методы
    }
    function Two(){
    	One.call(this);
    }
    Two.prototype = Object.create(One.prototype);
    Two.prototype = {
    	setParams: function (num) {
    		this.prop = num;
    	},
    	prop: null
    };


    Что мне непонятно:
    1. Точно ли нужно в каждый объект new Two() писать собственные методы? Может, проще-таки наследовать от прототипа One? Но тогда подход к созданию должен быть другим.

    2. Зачем мы сослались на прототип One и тут же затерли эту ссылку?

    Если бы я хотел унаследовать от One и дописать своё в Two, то поступил бы по-другому:

    function One(){}
    function Two(){}
    function F(options) {
    	for (var i in options) {
    		if (options.hasOwnProperty(i)) {
    			this[i] = options[i];
    		}
    	}
    }
    
    One.prototype = {
    	// наследуемые свойства и методы
    };
    F.prototype = One.prototype;
    Two.prototype = new F({
    	setParams: function (num) {
    		this.prop = num;
    	},
    	prop: null
    });


    Что же насчёт вопроса — покажите код с передачей callback.
    Ответ написан
  • Принято ли в js выделять приватные свойства?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    В JS нету приватных свойст. Вообще.

    Можно добавлять символы в начале, например классический вариант с двумя нижними подчеркиваниями. Например в angular.js все приватные свойства начинаются с $$ и помечены в jsdoc как @ private. При этом, если включена нужная опция google closure compiller при минификации имя свойства поменяется на какое-нибудь короткое рандомное, так что вопрос с доступом к свойству в принципе решен так как с каждым билдом имя свойства скорее всего будет отличаться и это ограничит количество желающих с ним работать.

    По настоящему приватные свойства можно эмулировать завернув все это дело в замыкания. За счет того что наша переменная находится в своей области видимости, к которой имеет доступ только ваш код, можно чуть чуть себя обезапасить.
    Ответ написан
  • Принято ли в js выделять приватные свойства?

    k12th
    @k12th
    console.log(`You're pulling my leg, right?`);
    Не всегда. Если выделяют, то обычно начиная их имя с подчеркивания:
    var obj = { _answer: 42}
    Не стоит забывать и про protected.
    Ответ написан
    Комментировать
  • Что нужно, чтобы отслеживать изменение html в gulp?

    Все вроде бы ок, если не считать уже упомянутых опечаток :) Может быть, в них все дело?

    Если интересно, можете глянуть мой gulpfile. Недавно как раз пересобрал.
    Ответ написан
    9 комментариев
  • Что нужно, чтобы отслеживать изменение html в gulp?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    опечатки в путях? Как минимум две опечатки вижу.
    Ответ написан
  • Где можно почитать о методах gulp ( tasks-manager ) ?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    Плохо искали видимо.
    https://github.com/gulpjs/gulp/blob/master/docs/API.md

    Так же рекомендую почитать документацию к vinyl-fs и orchestrator, на который основан Gulp.
    Ответ написан
    Комментировать
  • Как установить и настроить PhpStorm в Ubuntu?

    nazarpc
    @nazarpc
    Open Source enthusiast
    Не нужно рута!
    0) Ставите Java
    1) Скачиваете и распаковываете дистрибутив куда угодно
    2) В PhpStorm: Tools -> Create Desktop Entry...
    Всё
    Шрифты настраиваются по желанию, тоже не нравится в последних EAP
    Ответ написан
    Комментировать
  • Как правильно учить Javascript?

    IonDen
    @IonDen
    JavaScript developer. IonDen.com
    Вы наверное слышали, что каждый уважающий себя программист обязан написать несколько велосипедов? И JavaScript-программисты тоже так делают и еще как! Так вот в этом нет ничего плохого, это отличное самообучение.

    Для начала заходите на любой каталог плагинов для JavaScript или jQuery. Находите интересный, не очень сложный на вид плагинчик (например карусель, лайтбокс, слайдер и т.п.) и пытаетесь сделать похожий, только лучше. Поначалу будет выходить черти что, но, это будет уже реальная задача, где вы начнете сталкиваться с реальными особенностями языка. Вот тут то знания и начнут обретать какую-то структуру у вас в голове.

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

    Хорошим программистом можно стать только если это занятие нравится. По крайней мере в первые годы это занятие должно приносить удовольствие само по себе. Это должно быть стремление, страсть, талант. Если бы у вас это было, вы бы вопросы здесь не задавали, а просто программировали. Не важно что.

    То, что вам, похоже, нужно - это быстрый заработок. Для этого нужно изучить спрос, и сопоставить его с вашими возможностями. Здесь уже писали, что хороший источник статистики спроса - это фриланс-биржи. Смотрите заказы, ищете наиболее популярные темы. Всякие там Wordpress и django с RoR для веб, а может что-то по мобильной разработке, но это уже сложнее. Смотрите, что это такое (по попсовым темам очень много материалов), изучаете (попсовые темы потому и попсовые, что легки в освоении) и практикуетесь.

    С выходом на фриланс лучше повременить. Не имея опыта можно сходу угробить себе репутацию, а исправить это тяжело. Лучше пойдите к кому-нибудь в подмастерья. Есть у вас на районе веб-студии небольшие? Вот к ним. У них вечно работы больше, чем исполнителей. И не звездите сразу. Подмастерья зарабатывают мало. Немного опыта на реальных проектах - и вы готовы конкурировать с индусами на фриланс-биржах...

    Ответ написан
    Комментировать
  • Для чего нужна ORM?

    Вы не путаете ORM с DBAL? ORM это не технология замены SELECT * FROM goods WHERE cost < 100.00 на $db->select()->from('goods')->where('cost < 100.00'). ORM это способ задания связи объектов и РСУБД. По сути позволяет абстрагироваться от способа хранения объектов вообще, с лёгкостью переходя от SQL к NoSQL, memcache, файлам или REST/RPC API на удалённом сервере, оперируя на уровне модели (если говорить о MVC и т. п.) простыми plain old objects, а их персистентность отдать контроллеру. Не $db->select()->from('goods'),, не mysql_query('SELECT * FROM goods'), а $goodsRepository->findAll(), а уж будет репозиторий формировать SQL запрос, читать файлы или память, а может стучаться на Гугл и парсить его вывод — его, репозитория, личное дело (а также разработчика(ов), отвечающих за подсистему хранения).

    Кроме того ORM, как правило не исключает обращение к БД на уровне произвольных SQL запросов, оно лишь преобразуют результаты этих запросов в объекты модели предметной области (и наоборот), которые ничего не знают (в идеале) о таблицах, WHERE, HAVING и т. п.

    ORM это не только инструмент архитектурного разделения областей ответственности объектов и классов приложения, а также инструмент облегчения разделения труда разработчиков: кто хорошо шарит в SQL вообще и особенностях конкретного движка в частности — работает по «ту сторону» ORM, оптимизирует его как хочет, может нормализовывать и денормализовывать, например; кто хорошо разбирается в дебетах и кредитах — работает с plain old objects в терминах предметной области и может вообще ничего не зная об SQL, ему лишь нужно знать, что он всегда может получить объект или их коллекцию обратившись к методам вроде findById() или findAll() и сохранить результат работы методом save() или flush().
    Ответ написан
    3 комментария