• Сущетсвует ли способ получения информации с веб страницы в автоматическом режиме с помощью JS без хака?

    @rPman
    Да, если у вас нет возможности установить на пользовательские машины ваше приложение (или к примеру плагин в браузер) то у вас только один путь - написать веб приложение и попросить заходить на него пользователям.

    Тупой пример - открывайте вебсайт в iframe и обновляйте по таймеру. Чуть более правильно - вы должны найти запрос на сервер, с помощью которого вы сможете определить, изменились ли данные или нет, и на своем веб-сервере в бакэнде выполняйте его в цикле с интервалом, как только данные изменились - отправляйте по вебсокет требование обновить страницу (iframe) у пользователей.

    Недостаток iframe - есть вебсайты, которые не дают себя запускать так, ибо это уязвимость, позволяющая скрытно от пользователя выполнять на нем действия ( вслепую, двигая прозрачный фрейм на странице, подставляя под мышку пользователя нужные части)

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

    @grinat
    Коллеги не понимают что переписать просто не выйдет. Ui kit и обвязку для работы с api как минимум для каждого фреймворка с нуля придется делать, собсно это обычно самое трудозатратное, а остальное в большинстве случаев тупо рутинная лепка системы из этих кирпичиков. Они просто думают, что другой фреймфорк это типа другая орм и роутер, а прочее плюс минус одинаковое и мол все что нужно будет сделать, это заменить вызовы в репозитори.

    Микросервисы на фронте плохо работают в сложной системы, проблемы прозрачной склейки при переходе, проблемы включения кусков другого сервиса(аналитикам и пользователям пофиг что это другая система). Конкретно у вуе с монолитом другая проблема, когда он становится реально большим, то начинаются проблемы с hot-reload и сборкой, все это начинает занимать здоровенное количество времени, в рантайме просадок по производительности заметных нет.

    Из своего опыта могу сказать что начинать надо с монолита, когда будет ясно что система из себя представляет, то можно начинать выносить ui-kit/абстракции для работы с api и т.п. вещи. Проблема включения левого кода решается с помощью обычных гитовских сабмодулей. То есть для заказчика 1, репо с сабмодулями 1/2, для заказчика 2, репо с сабмодулями 1/3, то ест разбитие есть только на уровне гита, а фактически это монолит. Да, там немало геммороя, но работать будет. Если поставляются собранные файлы, то все еще проще, можно во время сборки заменять файл роутера и стора, и попадет в итоговую сборку только то что требуется.
    Ответ написан
    4 комментария
  • Существует ли type-c хаб с выходом на mini-DisplayPort?

    DevMan
    @DevMan
    любой usb-c хаб с заявленной поддержкой маков (в которых юсб-с и есть мдп). плюс шнур/переходник от него уже к монитору.
    это касательно самого подключения, про герцовку не подскажу (всегда обходился и обхожусь 60 герцами).
    Ответ написан
    Комментировать
  • Как сверстать такое?

    Kurokq
    @Kurokq
    Наполни смыслом каждое мгновенье

    например вот-так
    Ответ написан
    4 комментария
  • Что такое Vanilla JS?

    @Dasslier
    FrontEnd Developer
    Так обозначают чистый JavaScript без каких-либо библиотек
    Ответ написан
    1 комментарий
  • Что написать новичку на C# для практики?

    HemulGM
    @HemulGM
    Delphi Developer, сис. админ
    Просмотр изображений в каталоге в виде сетки с превью, подгружаемыми в отдельном потоке.

    Что увидит наниматель:
    1. Работа с ФС
    2. Навыки дизайна
    3. Работа с формой
    4. Работа с потоками
    5. Работа с графикой (пропорциональный ресайз, сглаживание)
    Ответ написан
    Комментировать
  • В чем преимущество Vue composition api?

    @marsdenden
    Лично мне понравились две вещи - разделение вёрстки и логики и повторное использование кода. Есть у меня в боевом проекте два компонента из которых один пришлось разбивать на три, а второй просто огромный - и развесистый template и просто бесконечная портянка script. Дождусь стабильного релиза vue3 и буду переделывать на composition api.
    Еще один плюс, который я для себя нашел - нормальная отладка. Почему то у меня отладчик в devtools имеет смещение на одну строку в коде, который находится в .vue и совершенно нормально работает с чистыми .js файлами. И console.log тоже врет на 1 строку в первом случае и точно выводит номер строки во втором.
    Ну и рекомендую к просмотру https://youtu.be/v6AVfIupNB8 и https://youtu.be/Ix8wcwrnPns
    Ответ написан
    Комментировать
  • Как реализовать "защиту" авторизации по номеру телефона?

    Vamp
    @Vamp
    1. Проверьте синтаксическую корректность номера телефона. Все мобильные номера в РФ начинаются на +79 и имеют длину ровно 11 цифр. Проверку можно даже добавить в веб форму на уровне js. Это нельзя назвать защитой от хулиганов, но она отсеет реальные ошибки и опечатки, облегчив жизнь обычным пользователям.

    2. Пробейте номер по базе россвязи (файл DEF-9xx). Так вы определите номера, на которые 100% не будет доставки. В отличии от проверки синтаксиса, не выдавайте пользователю ответ о некорректном номере. На все номера отвечайте "Одноразовый код отправлен, введите его сюда", но на невалидные номера не отправляйте сообщение.

    3. Добавьте ограничение на количество отправляемых форм в минуту с одного IP и количество отправляемых сообщений на один и тот же номер (независимо от IP).

    4. Оцените сколько может быть отправок форм в день и поставьте общий лимит на все отправки смс за день. Это единственный реальный способ контролировать атаку на сливание бюджета. Да, реальные пользователи пострадают при достижении лимита, но вы не должны доводить до него - настройте мониторинг количества отправляемых смс и алертинг при достижении порога в 90% от лимита, чтобы у вас было время среагировать на атаку и отбить её до полного исчерпания лимита. Либо если это всплеск реальных пользователей (например, неожиданно удачная реакция на рекламу), то у вас будет время скорректировать лимит. Можно рассчитывать лимит как 2 * среднее количество отправок смс за последние Х дней, чтобы не приходилось править его вручную по мере естественного роста посещаемости. Формулу и процент для алертинга, разумеется, подберёте под свои требования. Но можете взять и мои за основу.

    Отдельно хочу рассказать про так называемые прямые мобильные номера. Они выглядят как городские (например, +7495), но в реальности являются мобильными и могут принимать смски. Проверка в пункте 1 не пропускает такие номера и нет никакого способа проверить без отправки смс является ли отдельно взятый городской номер прямым мобильным. Прямых номеров мало по сравнению с настоящими мобильными или настоящими городскими. К тому же у каждого прямого номера есть мобильный аналог, начинающийся на +79, которым пользователь может воспользоваться для регистрации. Поэтому предлагаю просто забить на прямые номера, а в случае жалоб на невозможность регистрации с прямым номером, рассказывать про существование мобильного аналога, который может быть прописан где-то в договоре с оператором на оказание услуг связи или узнать в техподдержке оператора и с которым можно спокойно зарегистрироваться.

    Обязательное требование email'а не усилит схему защиты, так как не проблема наштамповать реальных адресов со скриптом, автоматически прокликивающим подтверждающие ссылки во входящих письмах.

    Альтернативным вариантом является аренда входящего номера. В этом случае не вы отправляете сообщения пользователям, а они вам. Обычно за входящий номер берут фиксированную плату в месяц независимо от количества смс, так что не придётся в принципе волноваться за бюджет. Но тогда у вас будут в пролёте пользователи с отключенной услугой отправки смс. А таких немало, могу сказать. Благодаря интернет-мессенджерам.
    Ответ написан
    2 комментария
  • С чего начать изучение IT?

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

    На изучение того, что вы описали, уйдут годы.
    Ответ написан
    2 комментария
  • В каких случаях использовать ajax, а в каких websocket?

    ThunderCat
    @ThunderCat Куратор тега JavaScript
    {PHP, MySql, HTML, JS, CSS} developer
    Хочется услышать отрицательные стороны вебсокета

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

    approximate_solution
    @approximate_solution
    JS Developer. Angular\React\Vue\Ember
    мне кажется, что мне легче будет даваться веб-разработка, т.к. есть очень много ресурсов для обучения, у этой сферы огромное сообщество, да и в целом, есть примерное представление о том, как работает HTML+CSS+JS, в отличие от любого другого вида проектирования.

    Вам кажется, на самом деле программирование это навык, и как и любой другой навык он сперва очень сложен и не понятен, и на протяжении первых 200-300-500 часов, кропотливого обучения он даёт плоды. Не важно что вы бы выбрали в качестве сферы или языка. JS или Java.
    Что меня беспокоит, так это то, что я уверена, что делать сайты для малого и среднего бизнеса, честно признаюсь, меня не очень вдохновляет...

    Расскажу Вам маленькую притчу, у меня друг работает в геймдеве в Москве, а там каждый проект - это масштабная разработка на 2-3-5 лет, и многие люди просто спекаются, от того что ты видишь фидбек и результат своей работы через такой колоссальный срок. Веб разработка в этом плане ок, так как во первых: деньги, при условии что вы человек с прямыми руками - очень даже хорошие, результат вы видите сразу же(в случае бэкэнда вы его никому не покажете правда). Так что я бы не стал бы так относится с скептицизмом к проектам средней руки, всё это бизнес, и если Вы будете получать за один средний магазин 100 тысяч, и делать типовую работу, а для кого-то 100 это 3 месяца кропотливой работы - то Вы недальновидны.

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

    Как вариант да, но я бы советовал бы сразу целится на Москву, мобильных разработчиков по регионам мало, а вы как джун будете обязаны по началу искать работу(опыт) в офисе, поэтому Вам нужен будет крупный город. Успехов.
    Ответ написан
    Комментировать
  • 2d игры на чистом JS без Canvas?

    IonDen
    @IonDen
    JavaScript developer. IonDen.com
    Все возможно, но!

    На дивах - в общем итоге вы получаете DOM-дерево. А DOM-деревья очень медленные, как браузер не оптимизируй. Они тащат за собой много много всякого легаси и много много не нужных для графики вещей.
    У них другое предназначение.

    Другое дело канвас, где все создано для быстрой отрисовки графики.

    Чем больше числа и чем слабее компьютер - тем заметнее разница.
    Ответ написан
    Комментировать
  • Пройти путь с 0(frontend)?

    approximate_solution
    @approximate_solution
    JS Developer. Angular\React\Vue\Ember
    Хочу сменить профессию, выбрал для себя frontend разработку

    Я бы для начала бы узнал сколько Вам лет, и с какой профессии вы пытаетесь прыгнуть в Веб.

    Для каждого возраста, будет свой алгоритм.
    Допустим от 18- до 24 - "пока HR видит что вы "молодой и перспективный" - один подход",
    если вам 24 - 30( у вас есть около технарское образование, вы работаете в около it-шной компании) - другой алгоритм.
    Если Вам 30+ и вы 8 лет проработали менеджером - и тут Вас осенило что вы получаете 50к за целый день работы с козлами клиентами, а где то Петров получает 60к, просто верстая сайтики и пожимая буфера busty blone - тут уже более изощренные подходы.
    По поводу курсов написано у коллег, но я бы добавил больше практики с самого начало, сразу брать макеты, и латать дыры в знаниях с помощью крови, слез и гугла.
    Ответ написан
    2 комментария
  • Как мутировать асинхронно vue store?

    @deliro
    Мутации не могут быть асинхронными, они нужны только чтобы устанавливать данные в стор. Всю асинхронную работу делай в actions, затем оттуда вызывай коммиты мутаций
    Ответ написан
    2 комментария
  • Как вы разрабатываете свои приложения?

    @xfg
    Я TDD использую. Без тестов совершенно не понимаю сделал задачу или еще нет и все вокруг кажется недоделанным. Здесь же поделил крупную задачу на ряд небольших, написал тесты, написал код и четко чувствуешь момент, когда можно переходить к следующей задаче. Но я не в релизе, поэтому я плохой пример, так как делаю потому что интересно сделать бесконечно масштабируемое full-websocket приложение с использованием 3d и слоистой архитектурой из всех этих умных книг по объектно-ориентированному программированию, а не потому что жажду миллиард. За это время уже сбился со счета сколько сменил фреймворков, баз данных и даже поменял язык в итоге. За это время успел родиться AngularJS (тот что 1.x) и умереть, а я все пишу :)
    Ответ написан
    1 комментарий
  • Как вы разрабатываете свои приложения?

    Hcuy
    @Hcuy
    Профессионально считаю ворон.
    Я всегда стараюсь полностью «пропитаться» духом стартаперства ( назвем это так), нужно несколько дней думать о проекте , его плюсы и минусы, и на второй день в 90% случаев вы поймёте что идея глупая или не нова. Это нужно для решения главной проблемы разработки в одно лицо, проблема потери интереса к проекту. Когда вы по-настоящему загоритесь проектом, то все пойдёт само собой, и главное помнить «Москва не сразу строилась», у вас будет постоянно что-то неполучаться, т.к вы берете на себя работу нескольких человек, и на проблемы нужно смотреть с позитивом :)
    Ответ написан
    3 комментария
  • Как вы разрабатываете свои приложения?

    Robur
    @Robur
    Знаю больше чем это необходимо
    Я тут предполагаю что вы хотите сделать какой-то стоящий продукт, который кому-то нужен:

    Вас посетила очередная идея на миллиард. Вы полны решимости осуществить проект, но пока, кроме абстрактной идеи, ничего нет. Ваши действия?

    Перевернуться на другой бок и спать дальше. Асбтрактная идея на миллиард ничего не стоит, даже 10 минут времени. Сотня абстракных идей - это просто в сто раз больше потраченного в пустую времени.

    Если сильно верите в какую-то идею, для начала - валидируете.

    понимаешь, что нихрена не понимаешь - нет представления, какие элементы на самом деле должны быть на данной странице.

    Тут вы почти уловили суть. Ваша "идея" вам должна говорить, какие элементы нужны, зачем они нужны и почему именно их надо делать прямо вот сейчас а не что-то другое. Пока этого нет - у вас не идея а какая-то смутная фантазия, вы не знаете что делаете, и вряд ли что-то сделаете.

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

    Тут вариантов два - найти кофаундера который будет двигать эту сторону, а себе оставить реализацию, либо пересилить себя и научиться нужным скиллам.
    Ответ написан
    2 комментария
  • Как сделать инпут, который может принимать телефон или email?

    @Vlad_Murashchenko
    Оставьте текстовым полем, не нужно никаких масок. На onBlur + onSubmit проверяйте что это корректный имейл или телефон, если ни одного ни другое показывайте ошибку. Это самое простое решение и его вам скорее всего будет достаточно.

    Можно добавить проверку во время ввода и которая будет проверять 2 случая сразу.
    1) введённые данные не подходит ни для одного ни для второго
    2) уже понятно, что это имейл, валидируем как имейл (в случае есть какая-то буква или @)

    Я также рекомендую вам использовать какое-то готовое решение для валидации, например vuelidate, чтобы оставить код декларативным и поддерживаемым. Однако в скором времени я планирую написать туториал о декларативной валидации своими руками.

    Решение которое предложил Дмитрий Беляев будет сложно поддерживать в проекте, хотя оно действительно решает задачу именно так как она была поставлена.
    Ответ написан
    Комментировать
  • Как сделать инпут, который может принимать телефон или email?

    bingo347
    @bingo347
    Crazy on performance...
    Ответ написан
    Комментировать