Ответы пользователя по тегу Веб-разработка
  • Есть ли реальный профит от использования актуальных фронтенд-технологий?

    bingo347
    @bingo347
    Crazy on performance...
    Да используйте что хотите, кто Вам запретит то?
    Только не удивляйтесь, если однажды наступит бас-фактор и Ваш разработчик за 50 тыс уволится, уйдёт на пенсию или ещё чего хуже... А нового найти на это легаси будет проблема, мало кто будет готов, а те кто готов запросто могут запросить з/п 500к+.
    Я бы может согласился, но просил бы лям... Хотя скорее всего нет, нервы дороже бабла...
    Ответ написан
  • Что такое WEB api?

    bingo347
    @bingo347
    Crazy on performance...
    API - Application Programming Interface
    То есть это не обязательно что-то сетевое, интерфейс некой библиотеки - это тоже ее API

    Web API - это api браузера
    https://developer.mozilla.org/en-US/docs/Web/API

    Web Forms Api - часть api браузера для работы с формами
    https://developer.mozilla.org/en-US/docs/Web/API/H...
    https://developer.mozilla.org/en-US/docs/Web/API/F...
    Ответ написан
    Комментировать
  • Шаблонизатор/препроцессор для верстки в 2021?

    bingo347
    @bingo347
    Crazy on performance...
    Ответ написан
    Комментировать
  • Существуют ли фреймворки, позволяющие писать бекенд на rust+javascript?

    bingo347
    @bingo347
    Crazy on performance...
    Смотря что Вы понимаете под rust+javascript
    Если это проект на rust со вставками на js (например для ssr), то есть несколько вариантов:
    1. Рядом работают приложение на rust и приложение на node.js, общаются по tcp/udp/unixsock/etc.
    2. Интегрировать rust приложение как нативный аддон к node.js, общение через ffi, для этого есть neon.
    3. Внедрить js движок в приложение на rust, например есть байндинг к v8 из deno или гораздо более легковесный quick-js, правда байндинг пока сильно урезанный и не факт, что станет лучше, занимается им явно человек далекий от js. Я в свободное время пилю свою safe обертку для данного движка, моя цель как раз таки запуск ssr js фреймворков в rust приложениях, но что-то рабочее будет думаю не раньше октября.
    Ответ написан
    Комментировать
  • Как запретить использовать веб приложение с больше одной вкладки в браузере?

    bingo347
    @bingo347 Куратор тега JavaScript
    Crazy on performance...
    https://developer.mozilla.org/en-US/docs/Web/API/B...

    Но я бы не стал пользоваться "приложением" которое за меня решает сколько вкладок мне открывать
    Ответ написан
    1 комментарий
  • Что использовали для разработки данных сайтов?

    bingo347
    @bingo347
    Crazy on performance...
    Single-page application

    Делается на любом современном фреймворке (Svelte, Angular, Vue), или без них вовсе, с любой библиотекой для клиентского роутинга
    Ответ написан
    1 комментарий
  • Как реализуется вывод сообщения об отсутствии соединения?

    bingo347
    @bingo347
    Crazy on performance...
    Помимо событий указанных Алексей Ярков есть еще navigator.onLine
    Ответ написан
    Комментировать
  • Как использовать WSS вместо WS в Node.js?

    bingo347
    @bingo347 Куратор тега Node.js
    Crazy on performance...
    Вариант 1 (правильный):
    1. поставить nginx или haproxy и настроить tls там
    2. настроить в nginx/haproxy реверс прокси на ноду
    3. порты ноды закрыть от внешнего мира, слушать только localhost или vlan

    Вариант 2:
    В настройках WebSocket передавать не порт, а инстанс https сервера
    https://www.npmjs.com/package/ws#external-https-server

    Ну и наконец, зачем самоподписанный сертификат, когда есть Let's Encrypt?
    Ну и записать в сертификат IP адрес не получится, нужен домен
    Ответ написан
  • Удаление обработчика (removeEventListener)?

    bingo347
    @bingo347 Куратор тега JavaScript
    Crazy on performance...
    Вы должны передавать в removeEventListener в точности тот объект/функцию, которые и передали в addEventListener
    В случае использования объекта с интерфейсом handleEvent - этот объект будет и передан в handleEvent функцию в качестве this (судя по коду Вы это поняли), так как removeEventListener вызывается из обработчика, то можно туда отдать this:drWr[this.d].removeEventListener('click', this);
    P.S. arguments.callee является устаревшим, не стоит его использовать
    Ответ написан
    Комментировать
  • Почему разработчики пишут к примеру на html + css, а не юзают конструкторы?

    bingo347
    @bingo347
    Crazy on performance...
    Поставьте и включите ему NVDA (если винда) или включите VoiceOver (если макось) и предложите поуправлять так любым сайтом сделанным на wix с выключенным монитором, опираясь только на звук из этих программ.
    И да, много сделанных вручную сайтов тоже страдают неудобным управлением, но у разработчика такого сайта есть хотя бы возможность сделать это удобно, а на wix такой возможности нет.
    Ну и как уже сказали, сделать что-то серьезное тоже не выйдет.
    Ответ написан
    Комментировать
  • Как организовать работу над проектами из любого места?

    bingo347
    @bingo347
    Crazy on performance...
    1. Сервак торчащий через ssh в интернет, желательно с хорошим каналом и близко к большинству Ваших мест работы.
    2. VSCode с плагином для удаленной разработки
    Ответ написан
  • Как получить колбек загрузки внешнего скрипта?

    bingo347
    @bingo347 Куратор тега JavaScript
    Crazy on performance...
    Если сторонняя библиотека посылает xhr/fetch запрос, то перехватить его со страницы невозможно никак, разве что обернуть соответствующее апи до загрузки этой библиотеки.
    Если это именно вставка скрипта, то у скрипт элемента есть события load и error связанные с загрузкой, можете подписаться на них. Тут задача уже, как поймать добавление конкретного тега скрипт, думаю MutationObserver прекрасно справится с этой задачей.
    Более подробных советов без кода и понимания, что происходит на странице, тут не дашь
    Ответ написан
    Комментировать
  • Какие области computer science нужно знать full stack веб разработчику?

    bingo347
    @bingo347
    Crazy on performance...
    Веб-разработчику знание computer science не обязательно, но полезно. Помимо общего развития оно позволит писать более производительный и менее ресурсоемкий код.

    Что стоит изучить:
    1. базовое устройство и принцип работы ЦП и ОЗУ, как выполняются команды, как происходит чтение и запись памяти, как работают процессорные кэши, как работают прерывания и для чего они нужны.
    2. базовое понимание ассемблера хотя бы для одной архитектуры (наиболее актуально x86_64)
    3. базовое понимание как работает ОС - системные вызовы, отличие user space от kernel space, отличие микроядерной и монолитной архитектур. Что такое виртуальная память

    Помимо общих тем полезно будет знать более прикладные вещи:
    1. Структуры данных, какие есть, какая для чего нужна и где ее более оптимально использовать
    2. Алгоритмы, алгоритмическая сложность (о-нотация и омега-нотация), знание о наличии распространенных решений и понимание, какое решение будет наиболее оптимально в конкретном случае
    3. Архитектура программного обеспечения
    4. Паттерны проектирования
    5. ООП (наследование, инкапсуляция, полиморфизм подтипов (на наследовании и на интерфейсах), композиция, абстракция)
    6. ФП (функции высшего порядка, замыкания, параметрический полиморфизм, композиция, ассоциативность, контроль побочных эффектов, монады и функторы)

    А еще есть закон протекающих абстракций, согласно которому не лишним будет знать, что и как у нас работает под капотом:
    1. как работает интерпретатор python
    2. как работают интерпретаторы js (на примере v8 хотя бы)
    3. как работают JIT компиляторы, и как это вообще возможно если executable память read-only, а writable память не executable в большинстве популярных ОС
    4. как работает сборка мусора, какие есть алгоритмы, почему большинство сборщиков мусора используют поколения. А конкретно к v8 еще можно задать актуальный для react вопрос: почему иммутабельность и постоянное создание коротко-живущих объектов в js относительно дешево, если аллокация памяти - это дорого?
    5. как работает браузер, как он рисует страницу, как обрабатывает event-loop js

    P.S. большинству работодателей предлагающих работу связанную с разработкой в вебе это все нафик не сдалось от нанимаемого разработчика... большинству работодателей нужно тупое формошлепство на фронте и создание тупых проксей от БД до фронта на бэке... но те немногие работодатели, кому эти знания стоят острой необходимостью, готовы платить практически любые деньги разработчику, который все это знает и умеет применять на практике.
    Ответ написан
    4 комментария
  • Реально ли заниматься веб разработкой на планшете?

    bingo347
    @bingo347
    Crazy on performance...
    Самой большой проблемой станет отсутствие dev-tools во всех (известных мне) браузерах под android и iOS - iPad сразу в пролете, андроид планшеты можно попробовать прошить каким нить armbian, но скорее всего будут проблемы с драйверами. Но тут есть планшеты на win10, полноценных линуксах и т.д., да и собрать самодельный планшет из малинки - вопрос прямых рук.
    Так же немаловажный момент - это удобство. Маленький экран и тормоза ide из-за ограниченных ресурсов создадут не мало дискомфорта не только на планшете, но и на большинстве бюджетных ноутов.
    Ну и если рассматривать вариант планшет + клавиатура против ноута - ноут опять же будет удобнее.
    Ответ написан
    Комментировать
  • Нужна ли олимпиадная подготовка, чтобы стать программистом?

    bingo347
    @bingo347
    Crazy on performance...
    Разработчик должен более-менее разбираться в сфере, с которой он работает.
    Если в сфере задействовано много математики (научные расчеты например или машинное обучение) - то тут без математики не как.
    А вот в разработке, например, сайтиков для e-commerce гораздо нужнее будет знание продаж.

    Я понимаю, что хорошо, когда программист знает мат
    мат программисту жизненного не обходим, без него никак...
    Ответ написан
    2 комментария
  • Какую версию IE поддерживать в коммерческих проектах?

    bingo347
    @bingo347
    Crazy on performance...
    Зависит от целевой аудитории.
    Где-то вопрос о поддержке IE уже просто не стоит, а скорее стоит какую версию safari поддерживать
    Где-то нужен хотя бы 11
    А где-то нужна даже 6
    Ответ написан
  • Вопрос о новых веяниях и требованиях во фронтенде?

    bingo347
    @bingo347
    Crazy on performance...
    Для начала скажу об Html academy, что знаю.
    В начале года звали преподавать у них js + разрабатывать по нему курсы. Сразу скажу, что у меня впервые сложилось положительное впечатление от такого предложения, а не пошел я к ним по причинам не зависящим от них. Во-первых они дают базис, основы без которых Вы просто не сможете нормально разрабатывать, а освоить с этим базисом фреймворк большого труда не составит (про фреймворки ниже напишу).
    Во-вторых, хорошее впечатление у них составили люди, с кем удалось пообщаться, которые занимаются там составлением курсов и преподаванием - все как один не академики-теоретики, а практикующие разработчики с хорошим уровнем (а набирала в преподаватели Html academy в тот момент не ниже сеньера, предлагая соответствующую рынку зп).
    Ну и в-третьих, один раз собеседовал кандидата, имеющего за плечами только Html academy, обычно я негативно отношусь к кандидатом имеющим только курсы за плечами, но тут собеседуемый показал хороший уровень владения js.

    Теперь по фреймворкам.
    Не одному адекватному работодателю не нужен тупой фреймворкописатель без знания языка и нативного api, на которых этот фреймворк основан. В то же время, при знании js и DOM Api - Vue и React осваиваются за неделю, Angular за месяц. А без знания основ, может формочки ваять и сможете, но не больше. Так что учите сначала основы - js и нативное api браузера (DOM, CSSOM, ajax и т.д.), а уже потом беритесь за фреймворк.
    Ответ написан
    Комментировать
  • Веб студии просто не выставляют многие работы в портфолио или в свободное время на стройке работают?

    bingo347
    @bingo347
    Crazy on performance...
    Когда я на старте своей карьеры работал в веб-студии (давно было, но не думаю, что что-то кардинально поменялось), сайты клепались пачками, по несколько штук в день. Естественно 90% из них были как под копирку, отличаясь лишь контентом. Смысла выставлять 100500 однотипных сайтов в портфолио просто нет
    Ответ написан
    Комментировать
  • Как с технической точки зрения сделаны сервисы генерирующие виджеты?

    bingo347
    @bingo347 Куратор тега JavaScript
    Crazy on performance...
    Поделюсь как это сделано у нас, надеюсь поможет
    во-первых, сайт заводится в нашей БД и ему присваивается id
    во-вторых, сайт вставляет к себе наш код, он небольшой, но делает две вещи:
    1. создает временную функцию в window - которая совпадает по имени с нашей функцией запуска, но просто сохраняет себе в массив все вызовы и их аргументы
    2. начинает загрузку js-кода нашего виджета
    в-третьих, сайт вызывает нашу функцию запуска, куда передает свой id из нашей БД и некоторые параметры

    когда наш основной js загрузился, он делает следующее:
    1. переписывает в window временную функцию собирающую аргументы на настоящую, которая запускает вставку виджета
    2. если собранны запуски до этого момента - запускает их в настоящей функции запуска
    3. функция запуска дергает сервер и запрашивает данные по id сайта
    4. вставляем на страницу iframe и в нем рисуем виджет

    на деле все чуть сложнее, но общий принцип такой
    Ответ написан
    2 комментария