• Javascript фреймворки - дань моде или быстрота и удобство?

    @maxbublik
    JS фреймворки уже несколько лет - это будни фронтэнда, и это не мода, и это никуда не уйдет. Также как никуда не уйдет традиционная верстка. Они будут жить вместе. Четкую границу между веб-сайтами и веб-приложениями провести нельзя, но суть вопроса автора вопроса понятна.

    Конечно же, делать простой лендинг на чем-то типа Angular/React - это клиника. Хотя если нужны интерактивные блоки, очевидно лучше использовать Vue, чем городить что-то на jQuery. Vue как раз хорош тем, что его можно задействовать только для отдельных виджетов, а весь остальной сайт продолжай писать как тебе угодно.

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

    Короче, если вы верстаете но на JavaScript ничего сложней jQuery вы не умеете, то вы в заднице. И каждый год вы все глубже.
    Ответ написан
    Комментировать
  • Как лучше установить Linux для проведения практического курса по нему?

    RiseOfDeath
    @RiseOfDeath
    Диванный эксперт.
    Снапшоты.

    Как вариант - виртуалка во весь экран развернутая. Тут выбираете ту, что нравится, делаете в ней нужную убунту. Делаете снапшот виртуалки и все. Откатываетесь к снапшоту по необходимости. Какую именно виртуалку брать - выбор уже за вами. Насколько я помню и VirtualBox, и KVM, и vmware, и Hyper-V умеют и снапшоты и разворачиваться во весь экран.

    Чую что на "железной" убунте это мождно сделать, но не знаю как. Возможно ксен, хотя это уже, в некотором роде, тоже виртуалка.

    Еще в головы пришли мысли поставить убунту на какую-либо файловую систему, поддерживающую снапшоты, но ИМХО вариант с виртуалкой потребует минимальных умственных усилий и чтений манов. (Хотя он не самый лучший, как мне кажется)
    Ответ написан
    2 комментария
  • JavaScript переопределяет значение переменной, но не так как требуется, в чем ошибка?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Объекты и массивы в JS передаются по ссылке. Так что меняя mat внутри функции вы меняете исходный массив.
    https://learn.javascript.ru/object-reference
    Ответ написан
    1 комментарий
  • Как Вы учите JavaScript, и похожие на него языки (ООП)?

    rim89
    @rim89
    программист-велосипедист
    Читаю книгу - делаю , читаю опять - переделываю и тд. и так со временем откладываются какие то знания
    Ответ написан
    Комментировать
  • Как Вы учите JavaScript, и похожие на него языки (ООП)?

    rockon404
    @rockon404
    Frontend Developer
    Берете современный учебник, изучаете от корки до корки и получаете хорошие, структуированые знания о спецификации, ее особенностях и приемах использования.
    Лезть при отсутствии знаний, как таковых, и наугад учить конкретные методы, подход неэффективный. Таким можно заниматься, когда уже получили хорошую базу или в процессе ее изучения.
    Ответ написан
    Комментировать
  • Переопределение функции в дочерней теме Wordpress?

    deniscopro
    @deniscopro Куратор тега WordPress
    WordPress-разработчик, denisco.pro
    1. Если функция использует хуки или привязана к хукам — отвязать и присоединить свою функцию.
    2. Если выводится в шаблоне — переопределить шаблон.
    Ответ написан
    3 комментария
  • Можно ли верстать на ноутбуке?

    rim89
    @rim89
    программист-велосипедист
    Верстали еще на селеронах, когда notepade++ был "лучший IDE" , так что чего тут спрашивать то
    Ответ написан
    4 комментария
  • Как со 100% вероятностью определить мобильный телефон?

    iNickolay
    @iNickolay
    Со 100% вероятностью - никак
    Ответ написан
    Комментировать
  • Какая из посадок верстки на Wordpress более актуальная и правильная?

    azerphoenix
    @azerphoenix
    Java Software Engineer
    1) либо используйте стартовые темы Пример - https://understrap.com/ underscores.me
    2) пишите с нуля, не редактируйте стандартные темы ВП и т.д.
    3) насчет страницы настроек для темы (Простой вариант - ACF, более грамотный вариант фреймворки). Пример фреймворка - redux framewor
    https://reduxframework.com/ https://ru.wordpress.org/plugins/redux-framework/
    Ответ написан
    3 комментария
  • Пересаживаться ли на linux или достаточно установить docker, оставаясь на винде?

    Jump
    @Jump
    Системный администратор со стажем.
    Все просто-
    Работать надо в той системе где удобно- вам удобно работать в Windows, значит в ней и работайте.
    А вот проект над которым вы работаете нужно запускать в той среде, в которой он будет работать.
    Ответ написан
  • Как верстать такое?

    Ankhena
    @Ankhena Куратор тега CSS
    Нежно люблю верстку
    Варианты:
    1. Либо clip-path и трактор отдельно.
    2. Либо множественный фон: внизу желтая картинка, поверх 2 треугольника с помощью линейных градиентов, верхний слой - трактор.
    3. Либо полностью одна фоновая картинка и все.

    Я бы выбрала 2 или 3 способ, в зависимости от потребностей перестроений для разных экранов.

    Как-то так: https://jsfiddle.net/Ankhena/bec9qcyy/
    значения свои поставьте
    Ответ написан
    1 комментарий
  • Как верстать такое?

    @Camaro67
    Помог? - жми "Отметить решением"
    Картинкой и верстайте, в чем проблема? Задаете блоку в качестве бэкграунда эту картинку, а поверх накладываете все остальное.
    Ответ написан
    Комментировать
  • Как работать с очень длинными списками в JavaScript (angular, react, vuejs)?

    alvvi
    @alvvi
    export default apathy;
    (angular не использует vdom, для него история другая)
    перерисует целиком свой виртуальный dom

    Давайте немного проясним: виртуальный DOM - это грубо говоря js объект содержащий другие объекты.
    При добавлении нового сообщения туда добавится новый объект и весь DOM сравнится со старой версией с помощью diff-алгоритма специфичного для конкретного фреймворка.
    И только результат этого сравнения добавится в реальный DOM.
    Работа с объектом значительно быстрее работы с самим DOM-ом, поэтому чтобы оно начало работать заметно медленее у вас должен быть дикий уровень вложенности или очень большой DOM.

    100 сообщений и 50 контактов - это небольшие цифры, с таким любой из упомянутых фреймворков справится без просадок.

    Вот пример бенчмарков с большим количеством объектов(1000+) для многих фреймворков на примере незамысловатой таблицы:
    www.stefankrause.net/js-frameworks-benchmark6/webd...
    (там же есть ссылка на репо чтобы увидеть как она выглядит)
    Как видите, там в таблицу уже содержащую 10 000 добавляется еще 1000(!) объектов, и многие фреймворки впонле с этим справляются.

    В реальности же, вам вряд-ли придется добавлять такие цифры, потому что подгружают изначально обычно меньшее количество: такое, которое пользователь сможет увидеть в одном экране, все остальное догружается постепенно по мере надобности. То же самое касается вашей истории чата, ее стоит подгружать только за тот период, за который она необходима пользвателю.
    Ответ написан
    1 комментарий
  • Что лучше начать изучать новичку желающему писать веб сервисы Angular или Node JS?

    rockon404
    @rockon404
    Frontend Developer
    Вопрос поставлен некорректно, так как Node.js никак не альтернатива Angular.
    Изучайте Node.js и React.
    Node для бека, React для фронта.
    Можно посмотреть на Vue как альтернативу React, порог входа там ниже.
    Но комьюнити и экосистема у React больше.
    Angular тяжеловат для новичка, порог входа повыше, а научиться писать на нем правильные вещи тяжелей.
    Лучшая IDE для JS и фронтенда в частности Webstorm
    Ответ написан
    Комментировать
  • Как проследить путь исполнения для CMS под PHP?

    @Yan-s
    IDE (например phpstorm) + XDebug
    Ответ написан
    Комментировать
  • Все браузеры кроме explorer не отображают css, почему?

    @djnick
    1. На локалхосте всё или на сервере?
    2. Хост на win или nix?
    3. Файлы все в корне сайта?
    Имена файлов все маленькими буквами сделайте и в коде везде тоже сделаете все имена нижним регистром.

    В консоли гугла, что пишет (F12).
    Ответ написан
    Комментировать
  • Какой принцип работы при аутентификации JWT?

    @idyoshin
    jwt в первую очередь используется в микросервисных архитектурах, когда конечный клиентский запрос будет обрабатываться одним из нескольких серверов.

    Классически в такой архитектуре использовали механизмы OAuth. которые при обслуживании каждого запроса клиента осуществляли запрос на сервер OAuth - "клиент с токеном ААА запрашивает выполнение действия БББ"

    Понятно что узким местом становится сервер OAuth - который должен выдержать "шторм" запросов при нагрузке. Вторым узким местом такой архитектуры становится увеличение времени ожидания ответа на запрос - внутри запроса как минимум будет выполнен 1 запрос авторизации.

    Если мы говорим о "классическом" монолите, то на пример использование старых cookie требует от сервера держать в памяти все открытые сессии пользователей - тоже большая нагрузка на сервис авторизации.

    JWT решает эти проблемы следующим путем: access токен сразу же содержит необходимую информацию: на пример о Ролях текущего пользователя, или о доступных ему действиях, кроме того предоставляет информацию о времени жизни этого токена. Обязательно в конце токена цифровая подпись. По ней собственно и проверяется "действительность" токена.

    Алгоритм прост:
    1. осуществить авторизацию - получить ответ 2 токена access, refresh.
    2. обращаемся к микросервисам с использованием access токена.
    3. если необходимо с помощью refresh токена обновляем access токен.
    4. когда и refresh токен истек - осуществляем повторную авторизацию.

    Где хранить JWT токен - где угодно. все зависит от инструментов и реализации. На пример можно реализовать хранение токена в LocalStorage, и пробрасывание его во время каждого запроса в виде header'а. Если один и тот же домен - то токен можно хранить в cookie и т.д.

    Что хранить в виде полезной нагрузки? Сам разработчик должен для себя решить какой объем информации публиковать в таком токене, кроме того стоит учитывать что информацию из токена можно прочитать - это просто base64 кодированная JSON строка...
    Ответ написан
    1 комментарий
  • Как ускорить сборку и минификацию js скриптов?

    delphinpro
    @delphinpro Куратор тега Gulp.js
    frontend developer
    1. Не нужно пересобирать вендоров на каждый чих.
    2. Не нужно минифицировать на каждый чих.


    Есть два режима работы скриптов — development и production.
    В режиме разработки вы не пересобираете вендоров вотчером, подключаете два файла в html (условно vendor.js и main.js), генерируете сорс-карты, не минифицируете код.
    Когда всё готово, вы собираете билд для сайта — клеите всё в один файл, минифицируете код, отключаете сорс-карты.
    Ответ написан
    1 комментарий
  • Чем Nginx лучше IIS?

    sergey-gornostaev
    @sergey-gornostaev
    Седой и строгий
    Во-первых, у Nginx очень высокая производительность при очень низкой требовательности к ресурсам сервера. В вашей схеме сотня тысяч одновременных запросов на статику будет обработана в разумный срок и никак не скажется на производительности бэкенда. В схеме заказчика, тормозить начнёт и отдача статики и бэк, не исключено, что сервер вообще перестанет отвечать на запросы.

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