• Есть ли сайты, на которых собраны множество "рецептов" по html/css?

    Eugevin
    @Eugevin
    22 года, frontend как смысл жизни
    Оу, май, парень. В этом плане лучше всех CSS-Tricks! И это на самом деле лучший ресурс: трюки, фишки, обучение и гайды с подробным описанием всех новейших технологий в области HTML/CSS (Flex, Grid, красивые менюшки и так далее)
    Ответ написан
    Комментировать
  • Возможно ли тестирование сайта в автоматическом режиме?

    @bioroot
    Не увидел в ответах выше, так что вставлю свои 5 копеек. Посмотрите в сторону Cypress. На удивление крутая и почему-то не сильно известная штука. Это такой комбайн, в которой напиханы лучшие решения для тестирования на js, хорошая документация, поддержка jQuery. У него низкий порог вхождения. Особо и настраивать ничего не надо. Установил и поехали. И один из главных бонусов - тесты запускаются в очень презентабельном виде. Грубо говоря у вас в окошке браузера подсвечиваются выбираемые элементы и параллельно рядом показывается логика исполнения теста. Так что теперь когда начальник спросит "А чем вы вообще, ребята, тут занимаетесь?" ему всегда есть что показать.
    Ответ написан
    2 комментария
  • Как вести документацию для react компонетов?

    iCoderXXI
    @iCoderXXI
    React.JS/FrontEnd engineer
    Документировать надо, в первую очередь, бизнес-логику
    Ответ написан
    Комментировать
  • Как выравнять колонки в bootstrap 4?

    mahmudchon
    @mahmudchon
    Из простого - берете значение самой широкой и прописываете его для всех, например, на уровне min-width и тп.
    .features i {
        min-width: 50px;/* или любое другое значение */
    }
    Ответ написан
    Комментировать
  • Как обновить свойства объекта в js?

    Negezor
    @Negezor
    Senior Shaurma Developer
    let value = 1;
    const object = {
      get property() {
         return value;
      }
    };
    
    object.property;  //  результат: 1
    value = 2;
    object.property;  //  результат: 2
    Ответ написан
    1 комментарий
  • Как защитить приложение?

    sergiks
    @sergiks Куратор тега JavaScript
    ♬♬
    Обсуждение похожего вопроса на github Electron'а.

    Один из вариантов – написать на C++ собственный модуль для NodeJS, реализующий скрываемый функционал.

    В вопросе не описано, как работает приложение: полностью автономно или клиент-сервер. Необходимость общения с сервером значительно упростила бы контроль оплаты.

    Для автономного моё предложение: регулярно обновлять приложение, улучшая его с каждым релизом. При автообновлениях проверять статус подписки. Так «хакеры» лишились бы свежих версий.
    Ответ написан
    1 комментарий
  • Почему babel использует метод concat() вместо оператора "+"?

    0xD34F
    @0xD34F Куратор тега JavaScript
    ...или есть какой-то скрытый от меня смысл?

    Есть:

    It will handle cases with Symbol.toPrimitive correctly and throw correctly if template literal expression is a Symbol(). See babel/babel#5791.
    Ответ написан
    1 комментарий
  • Как реализовать сложный динамический фронт?

    Anna_BS
    @Anna_BS
    Можно использовать d3js пример
    Ответ написан
    Комментировать
  • Что будет быстрее работать?

    profesor08
    @profesor08 Куратор тега JavaScript
    Первое быстрее. Второе удобнее. Если грубо проверить в консоли:

    start = Date.now();
    for (let i = 0; i < 10000; i++) {
      let el = document.querySelector(".layout__body");
    }
    console.log(Date.now() - start);

    Разница в скорости примерно в три раза, а чтоб ее увидеть в консоли, надо, хотя бы, 10000 раз выполнить действие. И даже так счет 4 против 12 миллисекунд.

    Преимущества и недостатки обоих способов очевидны без тестов и скорость тут имеет не приоритетное значение. Любители стрелять себе в ногу могут пользоваться первым способом для выборки. Нормальные же люди пользуются первым способом когда программно надо пробежаться по потомкам/родителям и что-то найти.
    Ответ написан
    4 комментария
  • Какие js библиотеки учить и что они делают?

    Vlad_IT
    @Vlad_IT Куратор тега JavaScript
    Front-end разработчик
    Тут все зависит от того, что вы планируете делать. Если графика, то нужны библиотеки для работы с канвой, svg и webgl (three.js, d3), если SPA-приложения, то нужно освоить фреймворк (vue, react, angular и.т.д.). Есть даже либы для машинного обучения (https://www.tensorflow.org/js), для вычислений на gpu, например gpu.js.
    Не надо все учить, нужно учить только то, что требуется использовать, а об остальном нужно лишь знать.
    Есть еще вот такой полезный реп со списком популярных библиотек на js https://github.com/sorrycc/awesome-javascript
    Ответ написан
    1 комментарий
  • Callback / Promises / await - что быстрее и экономичнее?

    sergey-gornostaev
    @sergey-gornostaev
    Седой и строгий
    Соответственно вопрос - что же все-таки использовать правильнее

    То, что делает код чище, понятнее и проще для сопровождения. А это async/await при прочих равных.

    если промисы и асинк/авайт только "сахар", то помимо накладных расходов от колбеков добавляется еще и эта "сахароза

    Не добавится. Весь сахар растворится при парсинге скрипта, в AST его уже не будет.
    Ответ написан
    6 комментариев
  • В чем смысл bootstrap'a и его аналогов?

    Stalker_RED
    @Stalker_RED
    но как там применять бэм

    Никак. К тому времени когда яндекс придумал свой БЭМ, бутстрап уже был вполне сформировавшимся продуктом.

    Основных плюсов три:
    1. довольно вменяемая адаптивная сетка
    2. офигенное ускорение за счет тупого копирования готовых компонентов
    3. легко найти человека, который умеет в бутстрап

    Конечно, эти плюсы важны не всем. Кому-то важен БЭМ, а кому-то сетка бутстрапа кажется плохой.
    Ответ написан
    4 комментария
  • Ошибка с redux-saga?

    @davidnum95
    Вы запускаете сагу до того как создался стор.
    const configureStore = history => {
      const store = createStore(
        rootReducer(history),
        composeWithDevTools(
          applyMiddleware(routerMiddleware(history), sagaMiddleware, logger)
        )
      );
      sagaMiddleware.run(rootSaga);
      return store;
    };
    Ответ написан
    1 комментарий
  • Почему nodejs в кластерном режиме показывает результат производительности хуже чем в одном инстансе?

    bingo347
    @bingo347 Куратор тега Node.js
    Crazy on performance...
    https://nodejs.org/dist/latest-v10.x/docs/api/clus...

    Сам по себе кластер, на всех ОС кроме винды, делает accept соединений в мастер процессе и передает воркерам уже установленное tcp соединение с клиентом, это позволяет балансировать нагрузку алгоритмом round-robin (каждому воркеру дается примерно равное количество соединений, так как они раздаются строго по очереди), но это же накладывает издержки на передачу файлового дескриптора соединения между мастер и воркер процессами при каждом соединении.

    Вариантов оптимизации тут 2:
    1. Nginx должен открывать соединения с бэкендом в режиме keep-alive. Так минимизируются издержки не только на передачу соединения воркеру, но и вообще на его открытие, что даст ощутимый прирост производительности под нагрузкой.
    2. Вместо модуля cluster использовать обычный child_process и управлять передачей соединений вручную, а точнее передавать не уже открытые соединения, а слушающий сокет. В этом случае балансировка будет происходить на уровне ОС. Как пишут в документации к cluster, это может привести к неравномерной загрузке воркеров, так как соединение будет доставаться тому воркеру, который первым успеет сделать accept. Зато уберет издержки на передачу каждого соединения между процессами. Но даже при этом варианте, keep-alive крайне желателен.
    Ответ написан
    1 комментарий
  • Symfony + React + SSR + SEO?

    crazy_leo
    @crazy_leo
    Frontend Developer
    1) У SPA приложений проблема с SEO присутствует, так как приложение строится не на сервере, а на клиенте. Т.е все приложение, как ты писал выше, находится в js скриптах и сервер - отдает пустую html страницу со скриптами и т.д. Но само содержимое приложения в этой странице нет, так как оно формируется, после того как загрузились скрипты.
    Получается, что поисковики видят пустую страницу без содержимого самого приложения.
    Единственно, пока что google поисковик научился ждать, пока загрузятся скрипты и соответственно пока не построится приложение. Но есть очень много других поисковиков, которые это делать не умеют (Яндекс поисковик, к примеру).
    Также плюс SSR в том, что страница быстрее появляется у клиента, так как оно строится как на клиенте так и на сервере. А без SSR, сначала отобразится пустая страница, потом загрузится скрипт и только потом отобразится само приложение. Но также рендеринг средних React приложений - это много вычислений, что на ноде очень плохо. (Но там можно делать свои хаки чтобы все работало шикарно)

    Поэтому ты должен сравнить плюсы и минусы!

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

    Если этого всего необходимо, то придется реализовать SSR. Это не сложно. Главное понять суть React и некоторых его сопутствующих библиотек если они используются (styled-components, redux). (Я реализовал SSR за 60 средних строк. Там много чего предусмотрено)

    2) На нем можно создавать приложения, но я не использовал React Native и точно тебе сказать не могу. Но знаю что там, нету всего из коробки, если нужно будет что-то сложное, которого нет в React Native, то придется писать нативные модули под React Native. А так конечно можно его изучать и использовать.

    3) SPA - тренд, поэтому надо. Также это очень хорошая концепция в перспективе, убедился на практике
    Ответ написан
    Комментировать
  • Как не пускать на сайт при включенном adblock/ublock и прочее?

    @uroot
    Для того, чтобы обойти такие определения на наличие adblock/ublock достаточно просто отключить JS. Но здесь дело в другом. Если лично я вижу такой сайт, то я просто на него больше никогда не вернусь или тем же adblock-ом заблокирую всплывающее окно "Отключите adblock".

    И так сделают многие - они просто не вернутся на ваш сайт.
    Ответ написан
    14 комментариев
  • React + Redux, как начать правильно?

    KaaPex
    @KaaPex
    неумеха
    Бесплатные курсы от создателя Dan Abramov
    https://egghead.io/technologies/react
    Ответ написан
    Комментировать
  • Тестовое задание (Junior Frontend), приемлемое ли?

    @dimoff66
    Кратко о себе: Я есть
    Подход к тестовым заданиям очень многое говорит о человеке. Есть люди, кто глядя на сложное тестовое, радуется: "Ура, даже если меня не возьмут, есть возможность еще чему-то поучиться и положить еще один проект в копилку портфолио". Это будущие хорошие специалисты. Те же, кто боится сложных тестовых заданий, так же будут бояться и работы и будут всегда присматривать себе местечко с меньшим гимором, а главное не получать от работы удовольствия. Плох тот джуниор, кто не считает себя потенциальным сеньором.

    Весь кайф в жизни и программировании - делать сумасшедшие вещи, делать то, что ты не знаешь, делать с запредельным качеством. Тогда есть удовлетворение, иначе все наскучит.
    Ответ написан
    4 комментария
  • Фреймворк для рисования графов и блоксхем?

    @bkosun
    Ответ написан
    Комментировать
  • Теперь все на функциях?

    @Thanatos1998
    Хуки однозначно заслуживают внимания! Использование методов контроля состояния внутри функциональных компонент поможет не городить огромное количество HoC и спасет от warper hell'a. Использование хуков не убивает классы, хранилища состояний, а дополняет их, предлагая альтернативный подход к написанию более простого и читаемого кода.
    Ответ написан
    Комментировать