• Стоит ли читать спецификацию w3c?

    delphinpro
    @delphinpro Куратор тега CSS
    frontend developer
    Недавно наткнулся на фразу, что тем кто пишет спецификации легко, т.к. они только описывают как технология должна себя вести, а внедряют её разработчики браузеров.

    Вовсе нет. Спецификации писать нелегко. Вы не можете взять и тупо дописать в спеку новый тег. Это длительный процесс обсуждений и черновых реализаций.

    В w3c разрабатывается Amaya
    Работа над Amaya началась на W3C в 1996 году для демонстрации веб-технологий в полнофункциональном веб-клиенте. Основной мотивацией для разработки Amaya было создание фреймворка, способного интегрировать как можно больше технологий W3C. Он предназначен для демонстрации этих технологий в действии, используя преимущества их комбинации в единой, согласованной среде.


    Почему тогда, какие-то технологии где-то работают только с префиксами?

    От префиксов давно уже отказались. Остались только для совместимости или типа того. Новые фичи теперь пилятся под экспериментальными флагами до готовности.
    Почему они были нужны? Потому что браузеры либо частично реализовывали функционал, либо по-своему (когда, например, спецификация еще не была в статусе рекомендации).

    И насколько стоит доверять спеками w3c

    На 100%. Это стандарт, к которому рано или поздно приводятся все фичи браузеров.

    если они не занимаются технической реализацией этих технологий?

    Будьте спокойны. В написании спецификаций участвуют не какие-то отдельные личности. Список участников достаточно большой, и в нем присутствуют все ведущие разработчики браузеров: и гугл, и мозилла, и опера, и хрен знает кто еще. Изучите список сами: https://www.w3.org/Consortium/Member/List

    В общем, поменьше читайте сеошные статейки, и побольше признанных разработчиков в интересующей сфере. И официальной документации.
    Ответ написан
    Комментировать
  • Запутался в замыкании + обертка, разбермся?

    lastuniverse
    @lastuniverse
    Всегда вокруг да около IT тем
    Тут все просто:
    ...
    
    function delay(func, timeOut) {
        // при вызове delay(func, timeOut) мы создаем анонимную функцию и возвращаем ее
        // но при этом внутри нее мы обращаемся к переданному параметру func 
        // создавая тем самым замыкание на него
        return function() {
            // внутри возвращаемой анонимной функции мы запускаем таймер
            // которому передаем параметр func являющейся функцией, определенной 
            // где то вовне этот таймер выполнит func но при этом внутри самой func 
            // уже будет не видны параметры переданные для анонимной функции. 
            // Внутри анонимной функции эти параметры можно получить через arguments.
            // Тля того, чтобы func могла получить к ним доступ, мы используем apply, 
            // привязывая к func контент вызова анонимной функции и ее arguments
            // тем самым создавая замыкания к this и arguments анонимной функции
            setTimeout(func.apply(this, arguments), timeOut);
            // как правильно подсказал @bingo347, эту строчку надо немного переписать
            setTimeout(func.bind(this, ...arguments), timeOut);
        }
    }
    
    // примерно того же эффекта можно было добиться следующим кодом
    function delay(func, timeOut) {
        return function(text) {
            setTimeout(()=>func(text), timeOut);
        }
    }
    
    // можно даже добиться не примерно такого, а точно такого же эффекта
    // (за исключением привязки контекста анонимной функции через this
    // который влияет лишь на возможность обратится непосредственно
    // к методам и свойствам самой анонимной функции, которых в вашем
    // примере не объявлено ))) 
    function delay(func, timeOut) {
        return function(...args) {
            setTimeout(()=>func(...args), timeOut);
        }
    }
    ...


    по теме:
    arguments
    apply

    PS: но ваш способ с учетом поправок от Дмитрий Беляев (как и мой второй способ) правильнее, потому что позволяет не переписывая функцию delay делать так:
    function f(argument1, argument2) {
        alert(argument1 + " " + argument2);
    }
    let f1000 = delay(f, 1000);
    f1000("1111", "2222"); // показывает "1111 2222" после 1000 мс


    и так:
    function f(argument1, argument2, argument3) {
        alert(argument1 + " " + argument2 + " " + argument3);
    }
    let f1000 = delay(f, 1000);
    f1000("1111", "2222", "3333"); // показывает "1111 2222 3333" после 1000 мс


    и так далее ))))
    Ответ написан
    1 комментарий
  • Куда пойти работать программисту?

    VladimirAndreev
    @VladimirAndreev
    php web dev
    Посмотрите в сторону golang (если веб) и rust.
    Там вам по крайней мере не попадётся поддерживать монстра родом из 90х
    Ответ написан
    6 комментариев
  • Почему такая ошибка в коде?

    Martovitskiy
    @Martovitskiy
    Практика важна. А если по списку, то не хватает:

    5.5 Методы массивов
    6.9 Декораторы и переадресация вызова, сall/apply
    6.10 Привязка контекста к функции
    7.2 Свойства - геттеры и сеттеры
    8 Прототипы, наследование!!!
    11 Промисы, async/await
    Замыкание, наследование - тут еще раз разобраться.

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

    @jamtuson
    Но никто не будет заходить на аналог пикабу, если есть пикабу уже. Даже есть аналог в виде ЯП.
    И не в том дело, что вы сможете в одиночку сделать что - то лучше пикабу, а в том, что не будет контента. Либо заполнять самому, либо платить деньги, чтоб начали заполнять за вас. На пустой сайт не перейдут.
    Гуглите в сторону информационных сайтов под узкую тематику.
    Ответ написан
  • С чего правильно начинать изучение JavaScript?

    @reaget
    Мне в свое время эта книга помогла и понравилась)
    https://eloquentjavascript.net/
    А так, я тоже начинал с learn.javascript.ru
    Ответ написан
    Комментировать
  • Программирование как хобби, как делать по уму?

    php666
    @php666
    PHP-макака
    В общем, хочу начать с самых основ
    Не надо с самых основ. Тебе это не нужно. Ты когда хочешь полку повесить на стену, ты же не изучаешь принцип работы дрели и молекулярный состав сверла? Также и здесь. Ты не сможешь объять необъятное. Просто выбери что хочешь делать и уже конкретно спрашивай что именно тебе изучать.

    Сейчас я скажу страшную вещь (по меркам местной аудитории), но если тебе веб интересен и хочешь именно там осуществить "какие-то свои задумки", то бери PHP 7. Если сразу начнешь читать правильную литературу - сразу станешь писать на нем более-менее правильно. Польза есть - всегда можно для себя/для работы сделать веб-проект. Язык удобный, мануал весь на русском, всё разжевано до такой степени, что даже даун сможет научиться.
    Ответ написан
    Комментировать
  • Где продолжать учить js?

    @painmaker
    Coursehunter как бич-вариант различных курсов. Если нужны бумажки-сертификаты, то udemy. А вообще, учить нужно начинать с печатных изданий. Советую начинать с класики - Дэвид Фленеган "JavaScript Подробное руководство", Этан Браун "Изучаем JavaScript", Кайл Симпсон (вся серия You Don't Know JS).
    Ответ написан
    Комментировать
  • Как быть с медленными заказчиками?

    alexyarik
    @alexyarik
    Битрикс разработчик
    Работайте поэтапно через сервисы безопасных сделок. Деньги резервируются, например, в одном ресурсе я отправляю работу на проверку, даётся 3 дня на приём, если заказчик пропал, то после 3-х дней заказ автоматически принимается и вам поступает оплата.
    Ответ написан
    5 комментариев
  • Как быть с медленными заказчиками?

    @igotDiamonds
    Комментировать
  • Как быть с медленными заказчиками?

    Robur
    @Robur
    Знаю больше чем это необходимо
    Работаю с заказчиками по проектной оплате, без договора

    работайте с договором.
    В котором не только ваши обязанности и штрафы за них но и обязанности заказчика и штрафы за них.

    Например - утвердить за три дня, после этого идет штраф в сумме стоимости времени вашего простоя.

    Без договора вы их можете только просить.
    Можно конечно сказать что "вот вы тут затянули на столько то, тут настолько то" поэтому сроки проекта увеличились как минимум на эту величину, но скорее всего всем будет пофиг.
    Ответ написан
    Комментировать
  • Как быть с медленными заказчиками?

    sergey-gornostaev
    @sergey-gornostaev
    Седой и строгий
    Предупреждаю заказчика, о двух неприятных фактах: Во-первых, предоплата не возвращается ни при каких обстоятельствах. Во-вторых, в случае отсутствия реакции с его стороны в оговоренные сроки я бросаю проект.
    Ответ написан
    Комментировать
  • Как объяснять кадровикам быстрые смены работы?

    CityCat4
    @CityCat4
    Внимание! Изменился адрес почты!
    У техдиректора с его "любовницей" были прям такие при-всех-афишируемые отношения, что сразу было понятно, кто есть ху?
    Если это на самом деле так (а так бывает) - невелика потеря. Все равно в такой конторе мерой заслуг будет не умение программировать.
    Если же нет, а это просто Ваши домыслы, слухи, рассказы коллег, что Вася вчера сказал Пете, как Коля видел, как техдиректор шпилил Олю - меньше обращайте на это внимания, больше глядите в монитор :) Даже если это и так - Вам-то до этого что? У Вас есть задача - сосредоточьтесь на ней. Строго. Не надо "руководить за директора", как бывает делают многие (а вот я бы... а вот я бы...). Будете на месте директора милостью Господней - и будете руководить. А пока - вот задача, вот монитор.
    Не переутомляться. По тону чувствуется какое-то внутреннее отчаяние. Красные от недосыпания глаза и гудящая голова - плохие помошники делу.
    Про "мне за 40 и мне кормить семью" - лучше вообще нигде и никогда не упоминать. Хырам ровно параллельно на Вашу семью, а Ваш возраст они и так знают - из CV. Подобная фраза показывает только, что Вы понимаете, что особых достоинств у Вас нет и пытаетесь хыра разжалобить. А это бесполезно, даже если удастся.
    Держаться надо с достоинством. Конечно двери пинками не открывать, но и в "подайте бедному слепому коту Базилио" не впадать.
    Если я прохожу собеседование и не подхожу - я обычно говорю "пусть сдохнут от зависти те работодатели, которым я не достался" :D
    Ответ написан
    Комментировать
  • Как объяснять кадровикам быстрые смены работы?

    Обычно сливают быстро двух видов людей:

    1) Тех, кто не справляется со своей компетенцией за относительно неплохие деньги.
    2) Тех, кто видит кругом врагов, любовниц, сложности и прочее.

    Те, кто пришел что-то поделал, включил дурочка на загоны начальства и ушел домой - особо не трогают.

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

    Все же 3 места работы за 9 месяцев - это уже звоночек, что либо вы какой-то дефектный, либо вы не умеете выбирать работу. И надо работать именно с этим, а не с тем, что там говорить на собеседовании.
    Ответ написан
    1 комментарий
  • Как вывести элементы массива с заглавной буквы?

    Chefranov
    @Chefranov
    Новичок
    let words = ['первый', 'второй', 'третий'];
    for (let word of words) {
        word = word.charAt(0).toUpperCase() + word.substr(1);
        console.log(word);
    }
    Ответ написан
    4 комментария
  • Почему Git ведёт себя так?

    ruddy22
    @ruddy22
    Спасение утопающих — дело рук самих утопающих
    ответ на вопрос:
    потому что репозиторий из folder2 "перекрывает" родительский репозиторий.

    что с этим можно сделать:
    1. вынести folder1, folder2, folderN в подключаемые модули вашего языка и организовать работу через submodules в git https://git-scm.com/book/ru/v1/%D0%98%D0%BD%D1%81%...
    2. обзавестись моно-репозиторием. например, https://github.com/lerna/lerna этот инструмент неплохо справляется с задачей
    Ответ написан
    Комментировать
  • Аналоги js в web?

    ThunderCat
    @ThunderCat Куратор тега JavaScript
    {PHP, MySql, HTML, JS, CSS} developer
    Фишка в том что исполнять код должен браузер, который на лету должен создать и выполнить код, то есть иметь вполне себе компилятор в собственном ядре. Пихать их "сколько хочешь" во все браузеры никто не будет, жс пилили общими усилиями больше 20 лет, а довести до ума и кроссбраузерной совместимости до сих пор не до конца удалось. По этой причине ожидать какой-либо поддержки других языков в браузере в ближайшее время не стоит.
    Ответ написан
    Комментировать
  • Почему не работает обтравочная маска в Photoshop?

    chigoe
    @chigoe
    Design, front-end, wordpress
    Это потому, что к черному кругу применен эффект "Color overlay/наложение цвета".
    Ответ написан
    Комментировать