Задать вопрос
  • Какой необходимый уровень знаний для junior React.js Разработчика?

    maxfarseer
    @maxfarseer
    https://maxpfrontend.ru, обучаю реакту и компании
    UPDATE: реальные тестовые задания и разборы здесь, ответы на все вопросы из поста в моем блоге об обучении react.

    не включая основы js

    Извините, но стандартная задача, про "напишите функуцию add, которая при вызове add(1)(2) вернет 3" - многих положила на лопатки =) Поэтому будьте готовы..

    React
    0) Какую проблему решает react ?
    1) Мгновенно ли срабатывает setState? Если нет, то как выполнить код, который 100% выполнится после того, как новый state будет установлен?
    2) Зачем многие постоянно пишут в constructor: this.FUNCTION_NAME = this.FUNCTION_NAME.bind(this) и отсюда вопрос вытекает чему равно this в разных местах вашего компонента...
    3) в каких методах жизненого цикла стоит выполнять xhr запросы? В каких стоит "обновлять state на основе props"?
    4) Что будет если вызвать this.setState в render методе компонента?
    5) зачем нужен componenWIllUnmount, приведите пример..
    6) Контролируемые, не контролируемые компоненты
    7) Как организовать роутинг в реакт приложении? (ответ: взять react-router - подходит, но было бы круто, если бы вы рассказали, как он примерно работает)*
    8) Зачем нужны propTypes? Что происходит с ними в production сборке?
    9) Как можно удобно "отлаживать" чужой код приложения, написанного на react (намек в сторону React devtools)
    ...

    Redux
    0) Какую проблему решает redux?
    1) Зачем многие создают типы действий NAME_REQUEST / NAME_SUCCESS ? А заодно, что такое "действие", а что такое "создатель действия"...
    2) Что такое редьюсер? Можете написать простой редьюсер без react/redux?*
    3) Для чего нужен redux-thunk? Как он работает? Напишите (можно псевдокод) асинхронный создатель действия (либо, если надоело говорить "терминами" - асинхронный aciton)
    4) Как компоненты приложения получают "пропсы" из "стора"?*
    5) Можно ли (и считается ли это нормальным) использовать state, если используется Redux?
    6) Почему в reducer'ax мы возвращаем новые объекты? Приведите пример, когда вы возвращаете новый объект, а когда тот же самый.
    6.5) А так же, "как в js вообще это работает?". Например:
    let obj1 { name: 'Test', age: 100 }
    let obj2 = obj1
    obj2.name = 'Test_new'

    Что будет в obj1, почему? В каких случаях объекты могут быть равны?
    7) Что возвращает функция connect (из react-redux)?
    ...

    Общее:
    0) package.json
    1) Webpack, gulp, etc...
    2) node.js
    3) promise

    Что-нибудь практическое:
    1) Как бы вы валидировали форму, если ошибки валидации приходят после submit'a ее на сервер..
    2) Почему не работает следующий код, сделайте чтобы работало
    ...
    На истину не претендую, но такие вопросы имели место быть на собеседованиях. В беседе можно многое разузнать дополнительными вопросами и так далее. Так же, если часть вопросов вам неизвестна - не беда, многие и на половину ответить не могут.

    p.s. возможно дополню...
    p.p.s. звездочкой отметил, на мой взгляд не самые необходимые для junior-собеседования вопросы.
    Ответ написан
    31 комментарий
  • React js как учить?

    maxfarseer
    @maxfarseer
    https://maxpfrontend.ru, обучаю реакту и компании
    У меня в профиле есть информация о старых учебниках + новый в процессе.
    Старые продублирую. Практика устарела, но теория не плохая.
    Ответ написан
    Комментировать
  • Стоит ли идти на такую работу?

    xtala
    @xtala
    Постигает Дзен
    Качай навык обмана и изворотливости! Когда ты один, то дается бонус +5 к начальному навыку вранья, +3 к изворотливости, а так же призрачный посох просраного дедлайна одинокого разработчика. Посох кастует заклинание: "Немного осталось, скорее всего уже завтра!", а так же дает временный иммунитет от увольнения, пока ты один, без союзников.
    Ответ написан
    2 комментария
  • Как добавить кнопку удалить к записям в таблице?

    0xD34F
    @0xD34F Куратор тега JavaScript
    удаляются последовательно только теги tr <...> вложенные теги td остаются

    Не вложенные. Давайте повнимательнее взглянем на создание новой строки в таблице:

    table.appendChild(tr);
    <...>
    table.appendChild(tdLeft);  // "Название"
    table.appendChild(tdRight); //"Описание"
    table.appendChild(tdDelete); //"Навигация"

    Ячейки у вас добавляются непосредственно в tbody, а вовсе не в tr.

    Кроме того, обработчики клика по кнопкам удаления у вас добавляются один раз, при загрузке страницы, то есть кнопки всех добавленных пользователем строк обработчиков клика иметь не будут. Вам следует освоить такой приём, как делегирование.

    UPD. Исправлено.
    Ответ написан
    1 комментарий
  • Почему код на JsFiddle не работает, а на CodePen работает?

    UnluckySerivelha
    @UnluckySerivelha
    На codepen весь JS код выполняется после загрузки DOM. На JSFiddle - нет. Нужно писать так -
    document.addEventListener("DOMContentLoaded", function(event) {
    var button = document.getElementById('button');
    var qq = document.getElementById('qq');
    
    button.onclick = function (){
    
    	qq.style.background = 'green';
      
    };
    });
    Ответ написан
    2 комментария
  • Почему выводится только одна графа в chartJS?

    0xD34F
    @0xD34F
    После изменения значения labels надо график обновить: myChart.update().
    Ответ написан
    4 комментария
  • Споры с менеджером?

    @kstyle
    Соберите статистику по таким оценкам и в удобный момент покажите график на сколько процентов ошибались.

    А вообще есть книги по таким оценкам. Цитаты по теме

    В большинстве случаев наши оценки скорее напоминают желания, чем реалистичные цели. Еще хуже, что мы, похоже, вообще не представляем, как улучшить эту пагубную практику. В результате все гонятся за недостижимыми целями, поставленными в ходе оценки, отчаянно срезая углы и игнорируя хорошие практические приемы, и неизбежное отставание от графика превращается в отставание всей технологии.


    Проекты, в которых оценка не делалась вовсе, были лучшими в смысле продуктивности, за ними шли проекты, в которых оценки делали технические специалисты, а наихудшие показатели были у проектов, оцениваемых менеджерами.
    Ответ написан
    3 комментария
  • Сколько нужно swap разделов для нескольких Linux систем?

    @Tabletko
    никого не трогаю, починяю примус
    Если гибернацию не будете использовать, то можно обойтись одним.
    Ответ написан
    Комментировать
  • Get запрос на чистом js ( работа с api (openweather))?

    BRAGA96
    @BRAGA96
    var request = new XMLHttpRequest();
    request.open('GET', 'https://jsonplaceholder.typicode.com/users', true);
    
    request.onload = function() {
      if (request.status >= 200 && request.status < 400) {
        var data = JSON.parse(request.responseText);
        console.log(data);
      } else {
        // error
      }
    };
    
    request.send();
    Ответ написан
    Комментировать
  • Что делать если обманул фрилансер?

    webinar
    @webinar
    Учим yii: https://youtu.be/-WRMlGHLgRg
    Заказ кривой и не доделан, Макс 30%

    взвешивали? Но за 7500 - 30% это уже не плохо

    В ватсаппе договорились об предоплате

    То есть то что он не доделан это норм?

    Итого:
    Вы нашли человека, который согласился за 7500+-7500 написать Вам карточную игру и даже что-то сделал за частичную оплату. Дал Вам исходники (не за полную стоимость) и вполне возможно, что они работают, просто Вы не разобрались (хотя поему они не должны работать если это не релиз версия).
    Я вижу ситуацию так: Вы очень странный заказчик, и не понятно по какой причине, преследуете разработчика.
    Ответ написан
    1 комментарий
  • Как убрать все вендорные префиксы?

    SmthTo
    @SmthTo Куратор тега CSS
    Все перепёлки мира будут оплакивать мою смерть.
    Прогоните CSS через Autoprefixer с параметром:
    >100%

    Тем самым получите на выходе вот такой результат:
    5c2ec261e28bc331351044.jpeg
    Ответ написан
    1 комментарий
  • Почему скорость записи на флешку такая низкая?

    @MechanID
    Админ хостинг провайдера
    Вы правы в началае скорость высокая потому что все падает в буфер которы находится в оперативной памяти, потом скорость падает, скорость записи на флешку очень зависит от размера блока, вы можете с помощью утилиты dd произвести тесты записи на вашу флешку:
    dd if=/dev/zero of=/dev/sdХ bs=$BLOCK_SIZE count=100000 conv=fsync
    в переменную BLOCK_SIZE подставляйте 512 1024 2048 4096 8192 16384 32768 65536 131072 262144 524288 1048576 2097152 4194304 8388608 16777216 33554432 67108864
    после каждого теста сбрасывайте куши командой echo 3 > /proc/sys/vm/drop_caches

    получив размер блока с хорошей скоростью записи можете отформатирывать флешку в ext4 указав этот размер блока например mkfs.ext4 -b 4096 /dev/sdb
    Ответ написан
    3 комментария
  • Как расположить картинку с div'ом в одну строку?

    @ber_enot
    Веб-разработчик, Vue.js / Node.js
    С inline-block между элементами ставится "пробел", поэтому в вашем случае div просто не влезает в ширину контейнера.

    Поставьте контейнеру font-size: 0, а в дочерних элементах верните размер шрифта на место, и все будет ок.

    UPD:
    Кроме того, нужно добавить вот это:
    #container img {
        vertical-align: top;
     }


    Вот полный код CSS (html из вопроса):
    body {
          background: #e5e9ff;
        }
        
        #container {
          width: 687px;
          height: 394px;
          background: #f4f5fa;
          font-size: 0;
        }
        
        #container img {
          width: 369px;
          height: 394px;
          vertical-align: top;
        }
        
        #container .right {
          background: #777;
          width: 318px;
          height: 394px;
          display: inline-block;
          font-size: 14px;
        }
    Ответ написан
    1 комментарий
  • Как правильно написать повторяющийся код?

    rockon404
    @rockon404
    Frontend Developer
    Можно создать билдер и передавать нужные параметры.
    Ответ написан
    Комментировать
  • Как правильно написать повторяющийся код?

    0xD34F
    @0xD34F Куратор тега JavaScript
    const caesar = (str, offset) => Array
      .from(str, n => String.fromCharCode(n.charCodeAt(0) + offset))
      .join('');
    
    const caesarTemplate = (title, offset) => `
      <div class="caesar">
        <textarea class="caesar-input" data-offset="${offset}"></textarea>
        <hr>
        <p>${title}: <span class="caesar-output"></span></p>
      </div>
    `;
    
    document.addEventListener('input', ({ target: t }) => {
      if (t.matches('.caesar-input')) {
        const output = t.closest('.caesar').querySelector('.caesar-output');
        output.innerHTML = caesar(t.value, +t.dataset.offset);
      }
    });
    
    document.body.insertAdjacentHTML('beforeend', [
      [        'Шифр',  3 ],
      [ 'Расшифровка', -3 ],
    ].map(n => caesarTemplate(...n)).join(''));
    Ответ написан
    Комментировать
  • Как правильно написать повторяющийся код?

    orlov0562
    @orlov0562
    I'm cool!
    я бы вынес в отдельный класс или объект функции и использовал их, типа того
    let Caesar = {
      encrypt: function(str){... return out;},
      decrypt: function(str){... return out;}
    }
    
    document.getElementById('in__сaesar').oninput = function() {
        document.getElementById('out__caesar').innerHTML = Caesar.encrypt(this.value);
    }
    Ответ написан
    3 комментария
  • Правильно ли использовать готовые библиотеки в проектах?

    Vlatqa
    @Vlatqa Куратор тега CSS
    правильно, но что бы ты понимал:
    1. JQuery это библиотека
    2. slick slider это плагин
    с их помощью ты сделал слайдер слайдер изображений как хотел заказчик за 3мин и доволен
    ...
    шли секунды... минуты... часы
    ...
    заказчик тебя попросил за доп. плату сделать превью изображений к слайдеру

    вот, что бы не сесть в лужу нужно знать как это работает

    и это 1см айсберга, дальше - глубже
    Ответ написан
    Комментировать
  • Тестовое задание (Junior Frontend), приемлемое ли?

    @kirill-93
    Вертел я такие задания при устройстве на работу.
    Однажды тоже устраиваясь в "крутую" контору прислали большое задание. Все выходные убил на него. Потом еще две недели мурыжили собеседованиями и в итоге не взяли.
    Я с тех пор никогда не соглашаюсь на тестовые задания, которые займут больше получаса моего времени.
    Объемные задания должны оплачиваться. Если они очень требовательно отбирают сотрудников, то сначала надо дать простое задание/прособеседовать и уже если человек их устраивает, давать объемное задание и платить.

    UPD
    Не слушайте, пожалуйста, бред об опыте и пользе для вас. Из таких "будущих хороших специалистов" потом веревки вьют, типа "поработай по вечерам, это ж опыт для тебя!" или "давай ты теперь и по субботам выходить будешь, а мы тебя за это серьёром называть будем!". Очень работает с наивными молодыми людьми.
    Вы поймите, что все эти разговоры про опыт и пользу для вас - это уловки с целью сэкономить и вас обмануть. Всем плевать на ваш опыт, им нужно денег меньше вам заплатить и все.
    Огромное тестовое задание - это неуважение к кандидаду.
    Давай представим обратную ситуацию: я прихожу к потенциальному работодателю и говорю: "Давайте я у вас тут недельку посижу без каких-либо обязательств, а вы мне зарплату платите. А потом посмотрим, может быть останусь, а может уйду". Нормально? Ситуация выглядит именно так, потому что работодатель не делает одолжения принимая на работу, он "покупает" ваше время и ваш опыт и все.
    Ответ написан
    13 комментариев
  • Тестовое задание (Junior Frontend), приемлемое ли?

    Слишком большое задание для теста. Хватило бы и одной страницы. А тут - довольно плотно поработать, чтобы сделать хорошо. Если без оплаты, то вероятно, они так экономят на верстке лендосов каких-нибудь.
    Ответ написан
    2 комментария