• Как строить карьеру senior разработчику?

    1) Написание эффективного кода и кругозор - не есть критически навык для сениора. Большое количество людей получает этот навык в той или иной степени.

    2) Знание отрасли и её специфики, и как под эту специфику писать код - куда более важный навык, который и оплачивается за хорошие деньги. Если эта отрасль обширная и денежная (большой спрос на программистов и большие возможности у компаний - то мы получаем бинго). Поэтому так много банковских программистов остается в финтехе, ибо они понимают, что им платят "выше рынка", не за написание кода, а за знание специфики финтеха. Тоже самое верно для телекома, логистики, недвижки, медицины, чат-серверов и так далее.

    3) Если хотите быть востребованным сениором, которого все хотят и зовут к себе, надо выбирать именно такие отрасли.
    Ответ написан
    Комментировать
  • Как дробить большие post запросы?

    zkrvndm
    @zkrvndm
    Архитектор решений
    Ну, в теории можно запаковать все файлы в архив, сам архив разбить на ровные части и отравить на сервер, а там уже собрать мозаику обратно, после чего распаковать собранный архив.

    Создавать zip-архивы на JavaScript можно посредством библиотеки JSZip, он на выходе даст вам Blob, который в свою очередь ни что не помешает разбить на части и отослать кусками.

    P. S. Но честно сказать, вам будет проще увеличить лимиты сервера, чем такую мудрёную схему реализовывать. Если хостер не позволяет менять лимиты, меняйте хостера или переходите на VDS.
    Ответ написан
    Комментировать
  • Как выстраивать работу компонентов реакт для определенных роутов?

    Robur
    @Robur
    Знаю больше чем это необходимо
    возьмите react-router и не изобретайте свой велосипед.

    в header пишете свою логику для роутов (в вашем случае -<Route path="/page1"><Button /></Route> ), в content - свою.

    Форму отправляйте программно по нажатию этой кнопки, если сама форма где-то в content. Сделать можно по разному - проще всего данные в стор положить.

    Детали зависят от того что там и как у вас должно работать.
    Ответ написан
    Комментировать
  • Как работает код?

    lastuniverse
    @lastuniverse
    Всегда вокруг да около IT тем
    Потому что
    n-- не тоже самое что n-1
    Первое уменьшает n на единицу и возвращает результат.
    Второе возвращает число на еденицу меньше чем n. При этом само n остается прежним, в результате вы и получаете бесконечный цикл (ведь n не меняется)

    А вот следующие выражения идентичны:
    n=n-1;
    n-=1;
    n--;
    Ответ написан
    3 комментария
  • Зачем frontend девелоперу такой большой опыт?

    mroforolhc
    @mroforolhc
    умственно отсталый
    Интересный вопрос, который и продолжил бы быть "интересным", если бы не ваш максимализм (а именно деление на черное/белое) и нежелание понимать, как всё устроено на самом деле. Постараюсь ответить вам, учитывая вышесказанное.

    Не хочу говорить, что веб сложнее тех же плюсов, это будет лукавство. Но и утверждать, что за 3 дня можно познать все реакты и вебпаки, почитать исходники это тоже самое, что и говорить "да я ща месяц потрачу на прочтение книг страуструпа - всё буду знать, он же создатель языка" — полный бред, который может сказать только профан. Изучить строение молотка и принцип его работы это не то же самое, что и забивать гвозди. И вот как раз за забивание гвоздей отвечает ваш нелюбимый "опыт". Благодаря которому вы не будете совершать ошибок новичков, а сразу вкатитесь на работу со своими наработками.

    Ну и если всё так просто на словах, попробуйте, чисто для эксперимента, отвлекитесь от плюсов и других ЯП, связанных с железом, и напишите пару проектов за...сколько там у вас в посте...а, за 1-2 недели. Это не такой большой срок, но зато какие потом большие перспективы (ориентируясь на ваш пост, опять же). И не смотрите на года опыта. Это примерная оценка того, сколько требуется человеку, чтобы он умел владеть необходимым стеком технологий. Если вы такой замотивированный и классный, то вам вполне хватит, как вы и написали, 2 недели и можете устраиваться на работу с опытом работы от 3 лет. Работодателю не важен особо факт того, что вы работали до этого 3 года. Если вы знаете всё, то он вас с радостью возьмёт. А сроки "от 3 лет" это указаны специально для нас – очень глупых людей, работающих на дядю, без мотивации, 30летние бездари одним словом.
    Ответ написан
    2 комментария
  • Почему не работает код (кнопка которая опускает вниз страницы)?

    hzzzzl
    @hzzzzl
    class App extends React.Component
    у тебя здесь в слове class русская буква по ходу, перепиши :D
    Ответ написан
    Комментировать
  • Как правильно обрабатывать контролируемый компонент реакт?

    rockon404
    @rockon404 Куратор тега React
    Frontend Developer
    Синтетические события нельзя использовать асинхронно, e.persist() освобождает событие из пула и оно не очищается, поэтому все значения сохраняются на момент выполнения асинхронного вызова.

    Ваша задача решалась так:
    onChange={(e) => this.limitSwitchHandler(e, row.id)}


    В вашем решении правильней назвать хандлер:
    createLimitPerDayHandler = (rowId) => (e) => { ... };

    так как технически вызов не является хандлером, а возвращает его.
    Ответ написан
    Комментировать
  • Как добавить кастомную сортировку в datatables.js?

    Stalker_RED
    @Stalker_RED
    Сейчас у вас эта колонка сортируется как строка текста. Исправляется так:

    columns: [
                    {title: "id", type: 'num'}, // магия здесь!
                    {title: "Имя"},
                    {title: "email"},
                    {title: "Телефон"},
                ],


    При этом числа не должны содержать пробелов, а значок € должен добавляться только для отображения.

    Ну или писать свою функцию sort (искать готовую?) типа как здесь
    www.datatables.net/plug-ins/sorting
    Ответ написан
    2 комментария
  • Как получить ошибки из консоли devtools?

    @SimasikS
    Я есть
    https://stackoverflow.com/questions/19846078/how-t...
    Ну можно попробовать так, то есть вы переопределяете console.error и добавляете в массив, что нужно
    Ответ написан
    5 комментариев
  • Можно ли обернуть блок в label?

    @tyzberd
    можно, только лучше не div а span с display:block
    и for="option-one" в таком случае можно не добавлять
    Ответ написан
    1 комментарий
  • Как подменять пути в файлах с помощью gulp?

    Wolfnsex
    @Wolfnsex Куратор тега CSS
    Если не хочешь быть первым - не вставай в очередь!
    Думаю, вот это должно Вам помочь. Если мне не изменяет память, когда пользовался Gulp'ом - именно эта штука проводила операции подобные тем, что Вы описали.
    Ответ написан
    2 комментария
  • Как собирать карту исходников (sourcemaps) для sass в один выходной файл?

    @faragly Автор вопроса
    Ответ на мой вопрос следующий: нужно в первом таске (например компиляция sass файлов) в таске пишем .pipe(sourcemaps.init()), а вот в следующих тасках, нужно инициализировать карты с помощью параметра loadMaps: true
    .pipe(sourcemaps.init({loadMaps: true})).
    Ответ написан
    Комментировать
  • Что значит оборачивание функции в скобки (function() { ... })?

    copist
    @copist
    Empower people to give
    Короткий ответ
    (function() { ... })()
    Это определение анонимной функции без параметров и непосредственный вызов её, так же, без параметров

    Длинный ответ
    Зачем оборачивать значение в круглые скобки?

    Оборачивание функции в скобки, так же как и оборачивание константы в скобки - это просто способ показать интерпретатору, что это значение внутри скобок может быть использовано как возвращаемое значение.
    var var_a = 5
    (var_a) /* или */ (5) // не является ошибкой, возвращает значение переменной или выражения
    function func_b() { }
    (func_b) /* или */ (function func_b() { }) // не является ошибкой, возвращает ссылку на функцию
    var var_c = { key: "val" }
    (var_c) /* или */ ({ key: "val" }) // не является ошибкой, возвращает объект
    var var_d = [ "one", "two" ]
    (var_d) /* или */ ([ "one", "two" ]) // не является ошибкой, возвращает массив


    Ну а раз (func_b) - это ссылка на функцию func_b, то значит её можно сразу же вызвать.
    A если (var_c) - это объект, то значит можно сразу же использовать его
    Аналогично (var_d) - это массив, то значит можно сразу же использовать его

    (func_b)() или (function func_b() { })() вызвать функцию
    (var_c).key или ({ "key": "val" }).key использовать объект
    (var_d)[0] или ([ "one", "two" ])[0] использовать массив

    Синтаксической ошибкой было бы использование функции, массива, объекта без скобок ( )
    function func_b() { }() ошибка "Unexpected token )"

    Хотя нет ошибки, по крайней мере в Google Chrome
    { key: "val" }["key"]
    ["one", "two"][0]

    Для чего вообще придумали самовызывающиеся функции?
    Для того, чтобы изолировать переменные и функции, чтобы они не попадали в глобальную область видимости.

    Сравни
    var a = "test"
    alert(a)

    по завершении этого блока переменная a болтается в глобальной области видимости

    и
    (function(){
        var a = "test"
    })()
    
    alert(a) // недоступно, потому что она была локальной переменной внутри анонимной функции


    Почему скобки ( ) пустые?
    В данном случае у функции function() { ... }нет формальных параметров, значит и вызывать можно без параметров.

    Но вообще в самовызывающуюся функцию можно передавать параметры. Это общая практика передачи ссылок на глобальные объекты:

    (function (w, d, $) {
       // некоторым нравится сокращать код путём использования коротких имён переменных
       w['fizz'] = "buzz" // вот так можно принудительно зарегистрировать
                           // глобальную переменную fizz
       $('body').css({background: 'red'}) // вот так можно работать с jQuery через привычную $
                           // даже если библиотека была загружена в режиме noСonflict
    }(window, document, jQuery))


    Некоторым не нравится длинный вариант проверки на undefined и они специально предусматривают лишний параметр, который не инициализируют

    (function (message1, message2, empty) {
        // это и есть проверка на undefined
        if (message1 === empty)
            alert('message1 is undefined')
        else
            alert('message1 = ' + message1)
    
        if (message2 === empty)
            alert('message2 is undefined')
        else
            alert('message2 = ' + message2)
    })("test") // вызвана только с одним параметром, значит второй по имени message2
    //  будет пустой, а третий empty специально ввели в качестве образца
    //  данных с типом "undefined", для служебного использования

    Зачем функция анонимная?
    Аналогично - чтобы не регистрировать её имя в глобальной области видимости, если она нужна один раз.
    Ответ написан
    7 комментариев
  • Как удалить не используемые пакеты npm?

    sim3x
    @sim3x
    Посмотри как организованы диретории все в node_modules
    Все зависимости SomePack1 находятся в его дире
    Зависимости не шарятся
    Ответ написан
    Комментировать
  • Как поменять местами блоки bootstrap?

    Комментировать
  • Как вызвать функцию после полной загрузки асинхронного скрипта?

    lazalu68
    @lazalu68
    Salmon
    Стоило заглянуть в документацию, это второй пункт в соответствующем разделе.

    При инициализации счетчика выбираете опцию triggerEvent:

    var yaCounterXXXXXX = new Ya.Metrika({
        id: XXXXXX,
        triggerEvent: true
    });


    После этого в коде можете вешать обработчик, который будет вызван когда счетчик инициализируется:

    document.addEventListener('yacounterXXXXXinited', function () {
        console.log('the yaCounterXXXXX counter can be used');
    });
    Ответ написан
    5 комментариев
  • Скрывать placeholder при фокусе, как правильно?

    <input class="input-text" type="text" name="name" value="Your name">
    				<input class="input-text" type="text" name="email" value="Email Address">
    				<input class="input-text" type="text" name="password" value="Create a Password">
    				<input class="input-button" type="button" value="Get started — free forever!">


    У вас там value а не placeholder. Замените и все магическим образом заработает.

    <input class="input-text" type="text" name="name" placeholder="Your name">
    				<input class="input-text" type="text" name="email" placeholder="Email Address">
    				<input class="input-text" type="text" name="password" placeholder="Create a Password">
    				<input class="input-button" type="button" placeholder="Get started — free forever!">
    Ответ написан
    1 комментарий
  • Как позиционировать в зависимости от разного контента?

    webirus
    @webirus
    Тыжверстальщик! Наверстай мне упущенное...
    display: flex и нет проблем
    Ответ написан