• В каких случаях надо писать тесты для сайтов на фреймворках?

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

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

    Вы пробовали их писать вообще? Если пробовали, то зачем? Потратили ли вы это время зря? Есть ли у вас бюджет на тесты?

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

    @andrei_pro
    Работаю фул-стек разработчиком уже давно и использую именно такой стек почти везде, поделюсь мнением.
    Стек Bootstrap + Laravel + VueJS вы выбрали отлично, подойдет для любого уровня приложений. У нас хайлоад управление админкой мы делаем на Laravel + VueJS, а хайлоад апи на симфони и ноде.

    Отвечая на ваши вопросы:
    чтобы оно было универсально, то есть корректно отображалось на смартфонах, планшетах, десктопах

    Bootstrap как раз для этого, изучите все детали верстки на разные устройства.

    чтобы оно корректно работало на старых/дешевых смартфонах

    Забудьте про jQuery, пишите на vuejs (>es6) + vanilla js, используйте вебпак + полифилы если старые девайсы нужны.

    Подытожу: учите bash + git + composer + laravel + vuejs + bootstrap + sass + js (es6) + docker. (бутстрап по желанию, если объем стилей не большой пишите на чистом css)
    Ответ написан
    6 комментариев
  • Как сделать выходные дни - жирным шрифтом в массиве?

    IvanBlacky
    @IvanBlacky
    back-end разработчик
    Храните в массиве не строки, а объекты, где одним полем будет название дня недели, а другим -- флаг, нужно ли выводить это жирным. Потом проходитесь циклом по массиву и создавайте элементы с нужным выделением.
    Ответ написан
    Комментировать
  • Актуален ли IE11 в 2019м?

    iiiBird
    @iiiBird
    Пока ты спишь - твой конкурент совершенствуется
    6 комментариев
  • Какая css методология самая популярная за рубежом?

    rockon404
    @rockon404
    Frontend Developer
    Ответ написан
    Комментировать
  • Не отображает картинку на заднем фоне страницы?

    alexey-m-ukolov
    @alexey-m-ukolov Куратор тега CSS
    У вас в коде ерунда полная:
    background-image: url('<span id=" title
    Это работать не может и не будет.

    Должно быть что-то вроде этого:
    <section class="hero" style="background-image: url('<?=SITE_TEMPLATE_PATH;?>/img/hero-bg.jpg')">
    ...
    </section>
    Ответ написан
    2 комментария
  • Какие цвета на ваш взгляд ассоциируются с кальянной?

    Zoominger
    @Zoominger
    System Integrator
    С коричневым, как густая грязь, которая течёт из трубки после пары заварок.
    С чёрным, как уже прокуренный табак, который снова кладут лошкам-посетителям.
    С розовато-белым, как раковая опухоль в лёгких.

    P. S. Это не шутка.
    Ответ написан
    1 комментарий
  • Как сделать так, чтобы цифры в сгенерированном массиве не повторялись?

    0xD34F
    @0xD34F Куратор тега JavaScript
    Создать массив, содержащий все возможные значения, перемешать его, взять сколько надо элементов из начала:

    function randomArr(size, min, max) {
      const arr = Array.from({ length: max - min + 1 }, (n, i) => i + min);
    
      for (let i = arr.length; --i > 0;) {
        const j = Math.random() * (i + 1) | 0;
        [ arr[j], arr[i] ] = [ arr[i], arr[j] ];
      }
    
      return arr.slice(0, size);
    }
    
    
    const arr = randomArr(4, 1, 9);
    Ответ написан
    Комментировать
  • В чем смысл быть гуру тостера?

    sergey-gornostaev
    @sergey-gornostaev
    Седой и строгий
    1. Работа над личным брендом: Высокая репутация в профессиональных сообществах повышает привлекательность для нанимателей.
    2. Улучшение существующих знаний: Хочешь что-то понять, объясни другому.
    3. Приобретение новых знаний: Специализация замыкает в узком спектре задач и проблем, а Q&A-сервисы - это источник задач и проблем из самых разных областей и иногда под самыми неожиданными углами.
    4. Альтруизм: Большинству из нас кто-то помогал в начале пути, пришло время возвращать долг и делать свой скромный вклад в рост кадров.

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

    Для чего просиживаете на тостере по 5-6 часов в день?

    Я в среднем раз в полчаса-час заглядываю. Если находится интересный вопрос, могу потратить на него минут 10. Некоторые на перекуры больше времени тратят.
    Ответ написан
    7 комментариев
  • Можно ли растрировать SVG в браузере?

    Moskus
    @Moskus
    Собственно, browser и тормозит у вас из-за того, что он ее растрирует. Хотите сэкономить на этом - нужно растрировать на сервере или вообще, еще до закачки на сервер.
    Ответ написан
    2 комментария
  • Хочу стать хорошим программистом,как быть?

    Moskus
    @Moskus
    Я не знаю, кто сказал вам, что у вас логический склад ума - то, что вы пишете, больше всего похоже на крайне эмоциональный и несвязный "поток сознания". Ничего личного, просто фактичнское наблюдение. Вы, например, очень много внимания уделили тому, что вас бесит, какая у вас паника, и так далее. Ни разу при этом не упомянули, например, что вам нравится самому что-то упорядочивать, исследовать, систематизировать. А это то, что как раз определяет этот самый "логический склад".

    Поймите, что, во-первых, программист учится всегда, потому что постоянно что-то меняется в его работе. Во-вторых, он постоянно ищет решения новых проблем самостоятельно, а не применяет решения, которые ему показали во время учёбы. И, в-третьих, программирование на 90% состоит из рутины, которая никак не тянет на развлечение.

    Я не исключаю, что вы сможете, наконец, справиться с всем этим избытком эмоций, обуздать тягу к немедленной гратификации (вознаграждению за совершенные действия), избавиться от эффектов современного воспитания, которое вы получили, но что в вас останется после этого, я сказать не могу. Могу только сказать, что вам на вход в профессию понадобится больше сил и времени, чем если бы вы уже сейчас могли спокойно ковыряться с интересом в каких-то (пусть и самых простых) задачах, проводя за этим часы. Маленький совет: забудьте о том, что видеокурсы существуют, вообще. Только печатная информация: книги, статьи. Видео крадёт время.
    Ответ написан
    10 комментариев
  • О каком кэшировании в вебе идет речь, если браузер сам сохраняет все файлы у себя?

    @RidgeA
    есть кеширование в бразуере, когда клиент (браузер) сохраняет ресурсы у себя на основании заголовков
    есть кеширование на веб-серверах, когда вебсервер сохраняет у себя в кеше ответ по какому-то ключу и заголовкам - если разные пользователи запрашивают одни и те же данные, зачем каждый раз из базы их выбирать и вообще дергать бэкэнд для этого да и не всегда клиентом выступает бразуер
    есть кеширование в приложении, когда где-то (в той же сессии, например) сохраняются какие-то данные, опять же что бы не трогать БД каждый раз
    можно кешировать запросы к БД что бы не нагружать ее без необходимости

    а про node я не понял
    Ответ написан
    Комментировать
  • Как переключать слайды при клике на кнопки?

    bootd
    @bootd
    Гугли и ты откроешь врата знаний!
    а как вы их вставляете? У свайпера есть специальный метод, для добавления новых слайдов
    Вот тут - метод appendSlide
    Ответ написан
    Комментировать
  • Каким тегом лучше представлять кастомные кнопки в веб-приложении?

    yarkov
    @yarkov
    Помог ответ? Отметь решением.
    Товарищ Макеев в одном из докладов очень подробно эту ситуацию описывал. Кнопка, если это не ссылка, должна быть button.
    Найду ссылку на доклад - обновлю ответ.
    Ответ написан
    2 комментария
  • Как получить асинхронное состояние vuex?

    0xD34F
    @0xD34F Куратор тега Vue.js
    getOneProfile: state => {
      return state.profile
    }

    {{ getOneProfile.profile.name }}

    То есть, у state.profile есть свойство profile? Типа, можно было бы и $store.state.profile.profile.name написать? Подозреваю, что profile всё-таки лишний. Ну и чтобы не пытаться выводить данные, которых пока нет, используйте условный рендеринг:

    <КакойТоКомпонент v-if="данные">

    UPD. Вынесено из комментариев:

    Я думал, нужно делать какой то лоадер, пока данные идут?

    Ну сделайте:

    <КакойТоКомпонент v-if="данные" />
    <ИндикаторЗагрузки v-else />
    Ответ написан
    2 комментария
  • Как защитить HTML5 (H5P) видео на своем сервере от копирования и скачки?

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

    0xD34F
    @0xD34F Куратор тега JavaScript
    Снимайте обработчик события после того, как нужное действие будет выполнено:

    $(window).scroll(function onScroll() {
      if ($(this).scrollTop() > 777) {
        $('.div_clone').clone().appendTo('.container2');
        $(this).off('scroll', onScroll);
      }
    });
    Ответ написан
    5 комментариев
  • Cookie или localStorage?

    @artinnok
    бекенд-программист
    Тут нет оптимального варианта - надо смотреть на бэкэнд и фронтенд совокупно.
    Далее, считаем что фронтенд SPA, бэкэнд чистое API.

    Если выбор за Cookies:
    1. На сервере необходимо реализовать защиту от CSRF
    2. На фронте также надо будет реализовать обвязку под передачу CSRF-токена
    3. Вся авторизация будет обрабатываться бэкэндом - т.е. он ставит куку через Set-Cookie с httpOnly и secure и сам же читает из куки для аутентификации / авторизации
    4. Фронтенд не имеет доступа к кукам - не думает об авторизации и об XSS
    5. Обычно, XSS используют чтобы украсть авторизационный токен через JS - если авторизационная кука httpOnly - нет доступа к кукам через JS, нет проблем

    Если выбор за localStorage:
    1. Не надо делать CSRF защиту на сервере - нет кук, нет проблем
    2. Экранировать потенциально опасные данные бэкэндом на входе - обеспечит дополнительную защиту от XSS при рендере данных
    3. Надо делать защиту от XSS на фронте, т.е. экранирование данных при рендере - чтобы потенциально вредоносный JS код превращался в строку, а не вставлялся в DOM
    4. На фронте надо сделать обвязку под сохранение / передачу / валидацию токена
    5. Всегда остается человеческий фактор - забыли сделать экранирование при рендере на фронте, JS код имеет доступ к токену и он утек


    Могу посоветовать использовать фреймворки, как на бэкэ, так и на фронте - они обычно имеют уже реализованную защиту от основных типов атак. Мы на проекте юзаем localStorage и React, ну и верим в лучшее :)
    Ответ написан
  • Выбор фреймворка для нового проекта - Angular? React? Vue?

    dom1n1k
    @dom1n1k
    Лично для меня Vue - это такой "фреймворк с человеческим лицом".
    В целом JS-мир похож на поле боевых действий, где постоянно то налеты авиации, то кононада гремит, то хипстерская конница с новым логотипом на знамёнах проскачет.
    А "обычный" человек сидит в подвале, обхватив голову руками, и думает - мама дорогая, куда я попал, и чё ваще вокруг происходит?
    Какие-то новые паттерны, подходы, языки... Раньше, чтобы начать, достаточно было блокнота и браузера. Пишешь hello world и сразу его видишь. Теперь нужно поставить ноду, овер 9000 пакетов, десять транспиляторов, таск-менеджеров и бандлеров. Пока увидишь рабочий результат - поседеешь.
    И вдруг какая-то добрая душа взяла у хипстоты всё самое лучшее и разумное, что та родила, но очистив от лишних абстракций и усложнений - и выкатила велосипед в виде велосипеда, а не турбо-космолета с инструкцией толщиной как "Капитал". И снова можно писать в блокноте и смотреть в браузере. При этом почти не проигрывая в возможностях.
    Ответ написан
    1 комментарий
  • Как сделать свой сборщик front end-a?

    werty1001
    @werty1001
    undefined
    Можете глянуть у меня и попробовать (вроде все требования из вашего списка есть), ну или просто посмотреть реализацию и написать уже свое.
    Ответ написан
    Комментировать