• Разработчик недисциплинированно трекает время. Что делать?

    Sanes
    @Sanes
    Фигня все эти трекеры. Если вы друг-другу не доверяете, то уже ничего не поможет.
    Разработчику тоже не упало постоянно страдать с этими трекерами. Ему проще в конце дня примерно затраченное время записать.
    Редко бывает, когда линейно работаешь. Постоянно дергаешься от одной задачи к другой. Если это не так, то и трекер не нужен.
    Ответ написан
    2 комментария
  • Как преобразовать большой массив чисел к единому числу?

    @Nc_Soft
    Дело в том что
    console.log(Number.MAX_SAFE_INTEGER)
    //9007199254740991

    Тоесть в integer вы не укладываетесь, поэтому надо использовать BigInt
    const array = [9, 2, 2, 3, 3, 7, 2, 0, 3, 6, 8, 5, 4, 7, 7, 5 , 6,7,7];
    const number = BigInt(array.join(''));
    console.log(number.toString());
    Ответ написан
    Комментировать
  • Разработчик недисциплинированно трекает время. Что делать?

    BasiC2k
    @BasiC2k
    .NET developer (open to job offers)
    Вы рассмотрели возможные причины "со своей колокольни" и сами дали на них ответ. Что показывает Ваш авторитарный (директивный) стиль управления.
    Постарайтесь быть ближе к подчинённым, разговаривайте с ними, вникайте в их проблемы. Тогда они сами расскажут - почему они не трекают, а Вы поймёте как это решить.
    Сейчас у Вас нет обратной связи.
    Ответ написан
    Комментировать
  • Готов поработать по ставке 0 в час. Где найти такую "работу"?

    iCoderXXI
    @iCoderXXI
    React.JS/FrontEnd engineer
    Если лень писать пет, то и работать за 0 станет тоже лень, не надо себя обманывать. Если ты хочешь и любишь кодить, то вместо того чтобы придумывать гнилые отмазы, ты будешь кодить. В любом случае на любой вакансии спросят о прошлом опыте, попросят показать код на заданном стеке, поэтому фигнёй не страдай, иди и запили пару-тройку петов, а потом уже иди и за адекватную скиллам ставку работй. Если опыт в вебе уже богатый, то скиллы прокачаешь быстро и выйдешь на нормальный рейт. А вот такой фигнёй страдать не гоже. :)
    Ответ написан
    Комментировать
  • Что делают эти фреймворки Javascript?

    0xD34F
    @0xD34F
    Начал задумываться о выборе фреймворка после изучения основ

    Не "после", а "до". Ничего вы не изучили - вон, ещё и суток не прошло с тех пор, как вы не знали разницы между сравнением и присваиванием. Ну а как без среднего образования нельзя получить высшее, так и без знания языка его фреймворки освоить не получиться. Так что рано вам за ангуляры и реакты браться, продолжайте (начните) js изучать.
    Ответ написан
    Комментировать
  • Как избавиться от замкнутого круга с портфолио и опытом работы?

    devalone
    @devalone
    ̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻
    1 Делать "для себя", т.е. верстать что-нибудь и выкладывать на github pages
    2 Найти заказы по знакомству, так часто дают работу не смотря на портфолио
    3 Работать за еду
    Ответ написан
    Комментировать
  • Очень доступным языком о Long-Polling?

    planc
    @planc
    поковыряй пример https://socket.io/

    long polling используется, если клиент не может использовать websocket

    фишка в том, что вместо постоянного флуда новыми соединениями

    - есть что новое ?
    - нету !
    - есть что новое ?
    - нету !
    - есть что новое ?
    - { 'user': 'вася', 'message': 'привет'}
    - есть что новое ?
    - нету !

    происходит:
    - есть что новое
    ...
    ...
    ...
    ...
    - { 'user': 'вася', 'message': 'привет'}
    - есть что новое ?
    ...
    Ответ написан
    5 комментариев
  • Как сделать маску для input с кириллицей?

    MyMac
    @MyMac
    Задать свою маску, смотря какой плагин, или

    $.mask.definitions['Z'] = "[АВЕКМНОРСТУХ]";
    $('.gosnomer').mask('Z000ZZ000?');

    или
    $('.gosnomer').mask('Z000ZZ009', {
        translation: {
          'Z': {
            pattern: /[АВЕКМНОРСТУХ]/, optional: false
          }
        }
      });

    только наверное в маске еще стоит их латинский вариант продублировать.
    Ответ написан
    Комментировать
  • С чего начать изучать game dev?

    @xfg
    Авторитетные книги и авторы в этой области отсутствуют. Статьи по основным темам есть:

    Игровой цикл
    Архитектура игры
    Архитектура игры на русском (видео)
    Определение столкновений
    Шейдеры
    Библиотека для работы с 3D графикой
    Библиотека для работы с физикой
    Пример игры на entity-component-system
    Действия над векторами

    Можно также поизучать матрицы преобразования (смещение, поворот, масштабирование), view matrix, perspective matrix, но в целом это уже реализовано в любой библиотеке для работы с 3d.
    Ответ написан
    1 комментарий
  • Как практиковаться в JavaScript?

    Ответ написан
    Комментировать
  • Как работать с выгоранием?

    pospelov
    @pospelov
    Руководитель веб-студии
    Не работать в выходные и вечерами.
    Не работать в компании, где не комфортно работать.
    Не работать в режиме аврала больше 20% всего времени.
    Отдыхать раз в пол года.
    Развивать навыки хотя бы 5 часов в неделю. Что бы увеличивать скилы, либо личное КПД.
    ВАЖНО - приберитесь в задачах. Должен быть один единый центр, задачник. Трелло, Тудуист, бумажки, не важно.

    Если к вам всегда может подойти 5 человек, дернуть вас, и переформулировать задачу, отвлечь, поменять приоритеты, то вы всегда будете в стрессе и с выгоранием.
    Ответ написан
    2 комментария
  • Возможен ли частичный переход на TypeScript с ES6?

    @XimikS
    Да, allowjs настройка за этим и нужна
    Ответ написан
    Комментировать
  • Оценка своего уровня. Как улучшить код?

    rockon404
    @rockon404 Куратор тега React
    Frontend Developer
    1. Используйте const вместо let для определения переменных которые не переопределяются в коде. Это помогает снизить когнитивную нагрузку с человека читающего код и негласный стандарт в React разработке.

    2. Такие вещи как globalStyles и конфигурацию store лучше вынести в отдельные файлы. Они могут со временем хорошо разрастись.
    По поводу globalStyles, вы вообще можете вынести их в отдельный css файл.

    3. Вместо:
    {
      isModal
      ? <Route path="/auth" component={AuthPopup} />
      : null
    }

    лучше:
    {isModal && <Route path="/auth" component={AuthPopup} />}


    4. Вместо:
    function mapDispatchToProps(dispatch) {
        return {
            autoLogin: () => dispatch(autoLogin()),
            getBrowser: () => dispatch(getBrowser()),
            getMedia: () => dispatch(getMedia())
        }
    }


    лучше:
    const mapDispatchToProps = {
      autoLogin,
      getBrowser,
      getMedia,
    };


    5. Точки с запятыми в конце то есть, то нет. Определитесь и приведите код к одному виду.

    6.
    & label {}
    & input {}
    & span {}

    Это не очень хороший подход. Во-первых ваши стили не изолированные, что может приводить к неожиданным результатам. Во-вторых у вас очень много дублирования стилей. Определите Input и Label как базовые компоненты и используйте в разных местах, то же с остальным если есть.

    7. Почему папка со страницами называется Containers? Дань бойлерплейтам?

    8. Использование trailing comma является хорошей практикой.

    9.
    import {combineReducers} from 'redux';
    import photoReducer from './photoReducer';
    import authReducer from './authReducer';
    import globalReducer from './globalReducer';
    
    export default combineReducers({
        photoReducer, authReducer, globalReducer
    })


    Все таки приятней работать с хранилищем в котором ключи не имеют в названии слова reducer:
    import {combineReducers} from 'redux';
    import photo from './photoReducer';
    import auth from './authReducer';
    import global from './globalReducer';
    
    export default combineReducers({
      photo, 
      auth,
      global,
    });


    10. Забудьте вообще, что в языке есть возможность использовать вложенный тернарный оператор:
    return e === 'invalid-email' ? 'Неверно указан e-mail'
        : e === 'user-not-found' ? 'Указанный e-mail на найден'
        : e === 'wrong-password' ? 'Неверный пароль'
        : e === 'email-already-in-use' ? 'Указанный e-mail уже используется'
        : e === 'network-request-failed' ? 'Нет подключения к интернету'
        : e === 'operation-not-allowed' ? 'Произошла ошибка, попробуйте снова'
        : e === 'popup-closed-by-user' ? 'Окно авторизации закрыто пользователем'
        : e === 'account-exists-with-different-credential' ? 'Аккаунт уже существует с другими данными, используйте другой способ авторизации'
        : e

    Это одна из самых худших практик в JavaScript разработке. Тут лучше подойдет конструкция switch case

    11. Константы actionTypes лучше вынести в папку constants и разложить по разным файлам, иначе со временем у вас там будет свалка.

    12. Вместо:
    import {SET_ACTIVE, CHANGE_VALUE, SET_DEFAULT, UPLOAD, UPDATE_IMAGE, SET_IMAGE_ERROR, SET_LIKE, SET_COMMENT, ADD_ARTICLE_SUCCESS, FETCH_ARTICLES_START, FETCH_ARTICLES_SUCCESS, FETCH_ARTICLES_ERROR} from '../actions/actionTypes';

    Лучше:
    import {
      SET_ACTIVE,
      CHANGE_VALUE,
      SET_DEFAULT, UPLOAD,  
      UPDATE_IMAGE,
      SET_IMAGE_ERROR,
      SET_LIKE,
      SET_COMMENT,
      ADD_ARTICLE_SUCCESS,
      FETCH_ARTICLES_START,
      FETCH_ARTICLES_SUCCESS,
      FETCH_ARTICLES_ERROR,
    } from '../actions/actionTypes';


    13. Попробуйте внедрить библиотеку reselect. И для получения значения из store вместо записи вида:
    function mapStateToProps(state) {
        return {
            browser: state.globalReducer.browser
        }
    }


    использовать селектор:
    const mapStateToProps = state => ({
      browser: browserSelector(state),
    });
    Ответ написан
    12 комментариев
  • Что нужно иметь и знать в фреймворке React джуну?

    rockon404
    @rockon404 Куратор тега React
    Frontend Developer
    Хороший кандидат на должность Junior React Developer, по моему мнению, должен соответствовать следующему перечню требований:
    1. Хорошее знание JavaScript. В React разработке используется ES6 и большинство экспериментальных фич еще не вошедших в стандарт.
    2. Хорошее знание HTML и CSS. Кроссбраузерная верстка. Так же, хорошо иметь представление о том, что такое css-in-js.
    3. Web APIs. Умение работать с объектной моделью документа(DOM) и все эти XMLHttpRequest, localstorage, cookie, history и прочее.
    4. Хорошее знание API React. Вы должны хорошо знать React, знать его возможности, понимать основные концепции и уметь ответить на большинство типовых вопросов. Для этого достаточно хорошо изучить документацию, разобрать пару типовых проектов на github и попрактиковаться. Много полезной информации, приёмов и идей можно подчерпнуть из тематических статей и докладов. Так же, на просторах интернета можно найти подборки типовых вопросов, часто задаваемых на собеседованиях. В англоязычном сегменте их больше.
    5. Redux. Уверенное знание API. API библиотеки до боли пост. Знать, что такое промежуточное ПО и зачем оно. Понимать базовые концепции архитектуры Flux. Все это есть в документации и многочисленных курсах.
    6. Умение работать с менеджером пакетов npm на базовом уровне.
    7. Node.js. Хотя бы уметь написать простейший express/koa сервер, который будет отдавать ваше приложение и статику.
    8. Webpack. Базовые знания.
    9. Умение работать с git. Хотя бы знать и уметь примерять команды: init, clone, add, commit, push, pull, merge, checkout.
    10. Иммутабельность. Четкое понимание зачем это надо. Знание приемов иммутабельного изменения структур данных. Это есть в официальном туториале React.
    11. Статическая типизация TypeScrpt/Flow. Для начала хватит самых основ и способности понимать чужой код.
    12. Функциональное программирование. Хватит знаний полученных в процессе изучения JavaScript, а так же не помешает знать, что такое каррирование, чистые функции и рекурсия.
    13. Базовые концепции ООП. Хватит знаний полученных в рамках изучения JavaScript.
    14. Асинхронный код. Понимать как его правильно организовывать. Promise, async/await.
    15. Сетевые протоколы передачи данных. Вполне хватит базовых знаний о http/https, о том, что такое заголовки и какие они бывают. Хорошо знать о том, что такое websocket.
    16. За плечами должен быть хотя бы один учебный проект на React. Хватит типового тестового задания.
    Примеры таких заданий: 1, 2, 3(сайт может быть не доступен на территории РФ, советую отрыть через VPN и посмотреть), 4, 5. Если подобного проекта у вас нет, то будьте готовы, что потенциальный работодатель предложит вам выполнить тестовое задание и только по его результату вас, может быть, пригласят на техническое интервью. Если напишите хорошо, вас скорей всего пригласят.
    17. Желателен опыт создания типовых UI элементов. Например, чтобы не вызывало трудностей написать простой кастомный чекбокс. Куча примеров реализаций типовых элементов есть на codepen.

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

    Похожий вопрос.
    Ответ написан
    18 комментариев
  • Как добавить sass в webpack + react?

    Используйте sass-loader. В репозитории есть инструкция по установке. Если хотите использовать CSS-модули, читайте инструкцию к css-loader
    Ответ написан
    5 комментариев
  • Как сейчас правильно верстать таблицы?

    <table>
    <tr>
    <td></td>
    </tr>
    </table>

    Адаптивность такая же, как у остальных блоков - заданный размер в % или vw/vh (min + max опционально) и Media Queries сверху.
    Ссылки:
    Ответ написан
    1 комментарий
  • Как проверить, что знаешь на базовом уровне JavaScript?

    vicodin
    @vicodin
    Имею некоторый опыт
    пройти кодворс хотя бы до 4 kyu
    Ответ написан
    Комментировать
  • Структура проекта на React?

    maxfarseer
    @maxfarseer
    https://maxpfrontend.ru, обучаю реакту и компании
    В components/header + вложенность, все как вы описали в вопросе.

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

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

    @deliro
    Как преодолеть такой кризис?

    1. Уволиться, пойти поработать кассиром/грузчиком/официантом/таксистом (но надо иметь свой бизнес);
    2. Понять, что даже писать CRUD не так утомительно и скучно;
    3. Радоваться тому, что есть.

    Как на самом деле работают программисты?

    90% времени думают, 10% времени пишут.

    А ещё, говорят, ИТ не сводится к одному ДС. Можно попробовать что-то другое.
    Ответ написан
    Комментировать