Задать вопрос
  • Почему мобильные приложения так велики?

    @rPman
    К сожалению большие объемы кода и оверинженеринг, как минимум у крупного бизнеса, это больше саботаж разработчиков чем их бездарность.

    Крупный бизнес вводит метрики оценки качества работоспособности работников KPI, работники взламывают эти метрики, например попытка оценить качество работы через количество кода, количество закрытых задач в трекере, количество коммитов в репозитарий и т.п.

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

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

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

    VoidVolker
    @VoidVolker
    Dark side eye. А у нас печеньки! А у вас?
    Абсолютное большинство таких приложений — это браузерные приложения, причём вместе с браузерным движком внутри, который тянет за собой ещё кучу всего. Ну и никто особо не занимается оптимизацией размеров из-за использования больших фреймворков с кучей функций, библиотек, а так же множеством других зависимостей, большая часть из которых даже не используется. Десяток или сотня мегабайт ради одной простой функции? Запросто. Плюс зоопарк разных версий ОС, где нужные разные версии каких-то библиотек. Изображения, анимации, видео и прочее — тоже занимают кучу места. В процессе жизненного цикла приложения меняются разработчики и руководители, которые не особо понимают изначально запланированный путь развития приложения или ситуация меняется и надо делать по-другому, а ещё прилепляются дикие фантазии руководителей и маркетологов. А чаще вообще нет никакого плана и просто делают как получится. И в итоге получается дикая каша из кучи разнородных экранов, фреймов, элементов интерфейса, запутанной логики переходов, сотен и тысяч библиотек, а бывает что даже и нескольких разных версий одной и той же библиотеки. К сожалению, идея впихивать в одно приложение огромную кучу разных функций появилась не сегодня и все эти комбайны существуют уже давно.
    Ответ написан
    2 комментария
  • В чем можно создать мобильное приложение используя Vue3?

    Fragster
    @Fragster
    помогло? отметь решением!
    Capacitor. Оно уже неплохо интегрировано в quasar, но и просто с vite работает.
    Ответ написан
    Комментировать
  • С чего начать проектирование переносного устройства?

    @OlejanJa
    Посмотрите в сторону ESP32 - чип с 4МБ flash на борту, есть wifi, bluetooth. Стоит на Aliexpress копейки. Большое комьюнити, много примеров, библиотек. Под него можно писать в Arduino IDE, VSCode, VisualStudio. Вот интересный сайт с примерами. Найдёте там много для себя полезного. Гуглите - esp32 'проблема, которую нужно решить' , и обязательно найдёте ответ
    Ответ написан
    Комментировать
  • С чего начать проектирование переносного устройства?

    @dima20155
    you don't choose c++. It chooses you
    Если у вас что-то низкоуровневое будет по типу датчиков (например, гироскоп, акселерометр) или может простые дисплеи, то необходимо будет самостоятельно их подключать (UART, SPI, I2C) и писать обертки над драйверами/драйвера, чтобы с ними общаться. В остальном, все также как и с обычном компьютером. У Raspberry pi очень большое комьюнити, широкий спектр переферии уже кто-то да подключал.
    https://all3dp.com/2/best-raspberry-pi-laptop-kits...
    https://www.tomshardware.com/news/raspberry-pi-hp9...
    https://tuxphones.com/risc-v-clockworkpi-devterm-p...
    https://hackaday.com/2021/03/24/a-raspberry-pi-tab...
    Ответ написан
    Комментировать
  • Как сделать линию прогресса для музыкального плеера?

    @goshaLoonny
    Изучите Web Audio API и идеи появятся : )
    Есть событие timeupdate , оно вызывается каждый раз когда время в атрибуте currentTime обновляется. Значение атрибута currentTime это количество секунд прошедших с начала воспроизведения (число с плавающей точкой).
    const sound = document.getElementById('audio-node')
    
    sound.addEventListener('timeupdate', () => {
      console.log(sound.currentTime.toFixed(0))
    })
    Ответ написан
    1 комментарий
  • Vue.js, React или Angular? Express на Electron JS будет работать?

    @PavelPikat
    На Electron будут работать все фрейморки.
    Но мне кажется вам сначала нужно разобраться с чем, что и куда. Express - это веб сервер который крутится на удаленной машине и обрабатывает запросы пользователей по протоколу (например HTTP).
    Vue/React/Angular - в общем случае, это клиентские приложение которые работают локально в браузере пользователя.
    Electron - это обертка Хромиума, т.е. это десктопное приложение в основе которого лежит браузер.
    Соответвенно запускать веб-сервер внутри Electron это полнейшая глупость и не имеет никакого смысла.

    Имеет смысл резделить приложение на UI с Vue/React/Angular, которые могут работать на десктопе в Electron-приложении, и веб-сервер на Express, который должен работать на удаленной машине. Соответвенно клиентское Electron приложение может делать запросы к серверу и получать/отсылать данные и отображать их в своем UI.
    Ответ написан
    Комментировать
  • Как организовать работу с несколькими проектами с общим кодом?

    Необходимо вынести общие компоненты (шаблоны кнопок, частей страниц и страниц целиком) в отдельный репозиторий, чтобы переиспользовать их во всех проектах.

    Как использовать эти файлы во всех проектах? Создать поддиректорию и связать её с этим общим репозиторием? Создать npm-пакет? Как это сделать?

    NPM-пакеты. Хранить пакеты в собственном репозитории, например, Sonatype Nexus, версионировать их.

    Разработчики могут вносить изменения в общие компоненты, создавать новые. Чтобы изменения не ломали другие проекты, необходимо организовать проверку изменений, быть может пулл-реквесы и их проверку. Как это сделать?

    Используйте, например, Gitlab CE и MergeRequest. Запретите пушить напрямую в master. Попробуйте в работе придерживаться какой-либо модели ветвления, напр. Gitflow, если требуется обязательный review.

    Так же, используя, напр. GitlabCI можно упростить себе жизнь, настроив автосборку слитых MR для ваших компонентов
    Ответ написан
    Комментировать
  • Есть ли способ заменить один класс css на другой на мобильном устройстве?

    rockon404
    @rockon404
    Frontend Developer
    Варианты:
    1. Определять user agent и в зависимости от него рендерить нужный html.
    2. Использовать общий класс и медиазапрос:
    .some-icon {}
    
    @media screen and (min-width: 600px) {
      .some-icon {}
    }


    3. Использовать js костыль. Самый плохой вариант.
    Ответ написан
    Комментировать
  • Безопасность данных в Vue.js?

    DMGarikk
    @DMGarikk
    Lead Software Developer
    поменять её isAuth = true, и получить доступ к закрытой части интерфейса

    бекенд не должен позволять производить операции из закрытой части интерфейса неавторизованным пользователям, а что толку от закрытой части если там данных не будет и она будет нефунциональна?
    Ответ написан
    Комментировать
  • Как применить vue router для стартовой страницы?

    Fragster
    @Fragster
    помогло? отметь решением!
    Это наталкивает на мысль обернуть router-link в router-view, но уверен, это вызовет рекурсию, так что не подходит

    Ну ничего ведь не мешает попробовать.
    Как-то так, но на полноценных компонентах: https://codepen.io/anon/pen/YjyZam
    Ответ написан
    1 комментарий
  • Как правильно обращаться к родительским данным во vue.js?

    FLUNKEY
    @FLUNKEY
    самовар
    Использовать Vuex или props
    Ответ написан
    Комментировать
  • Как сделать фильтр в template?

    Fragster
    @Fragster
    помогло? отметь решением!
    С помощью moment.js: https://codepen.io/anon/pen/aKgLXP
    Единственное, если собираете с помощью webpack, то нужно удалить ненужные локали из сборки, иначе очень жирно все будет. Примерно так:
    const webpack = require('webpack');
    ....
    module.exports = {
      ...,
      plugins: [
        new webpack.ContextReplacementPlugin(/moment[/\\]locale$/, /ru/),
      ],
    ...
    }
    Ответ написан
    Комментировать
  • Как в vue.js работать с компонентами?

    askhat
    @askhat
    1. В компоненте StoreModalComponent showModal удалить из data и перенести в props:
      export default {
        props: {
          showModal:{ type: Boolean, default: false }
        }
      }


    2. В родительском компоненте создать data свойство showModal и подписать на него только что созданные prop компонента StoreModalComponent:
      <template>
        <store-modal-component :show-modal="showModal" />
      </template>


    Ответ написан
    Комментировать
  • Как получить доступ к DOM элементу посредством Vue?

    Fragster
    @Fragster
    помогло? отметь решением!
    какие лучшие практики?

    Менять элементы только через связанные данные, избегать прямых манипуляций с DOM
    Ответ написан
    7 комментариев
  • Как реализовать страницу подтверждения перехода по внешней ссылке в одностраничном приложении на Vue.js?

    Xuxicheta
    @Xuxicheta
    инженер
    А нельзя делать /go?link=http://elsewhere.com/blalba
    а в компоненте AppGoAway проверять $route.query ну и вообще вотчить $route?
    Ответ написан
    Комментировать
  • Можно ли выгрузить всю историю переписки с собеседником в Telegram?

    @vik_kap
    Есть расширение, сохраняется весь текст, без файлов
    Ответ написан
    Комментировать
  • Что не так с vue файлом?

    0xD34F
    @0xD34F Куратор тега Vue.js
    :loading-options="{ options }"

    Что такое options? Вам же прямым текстом (учите английский) сказано, что никаких options у вас нет:

    Property or method "options" is not defined


    Вторая ошибка (опять же, учите английский, всё сказано прямым текстом) - в хуке bind директивы loading пытаетесь установить свойство объекта, но вместо объекта у вас там undefined. Что-то более конкретное сказать затруднительно, поскольку код директивы вы решили не показывать.
    Ответ написан
    2 комментария
  • Распространение цикла на соседние блоки Vue.js?

    И поэтому в стайл-гайде рекомендуют избегать использования v-if с v-for.
    Ответ написан
    Комментировать
  • Передать переменную от дочернего компонента к родительскому?

    rshaibakov
    @rshaibakov
    Web-разработчик
    У вас верное направление. Именно такой подход одностороннего байндинга и требует Vue.js. В таком случае вы всегда контролируете входные и выходные параметры.
    Ответ написан
    2 комментария