Задать вопрос
  • Как использовать переменную за пределами async function?

    @dGololobov
    начинающий
    async function getChannel(urlChannel){
          const urlChannelResult = await fetch(urlChannel)
          const jsonChannel = await urlChannelResult.json()
          const authorPhoto = jsonChannel.items[0].snippet.thumbnails.high.url
          console.log(authorPhoto
         return authorPhoto
        }
    [...].map(async el => {
         const authorPhoto = await getChannel(el.url)
         // ....
    })
    Ответ написан
    3 комментария
  • Как лучше реализовать вывод модальных окон в VUE?

    Fragster
    @Fragster
    помогло? отметь решением!
    Наделать самодостаточных компонентов, которые будут открывать нужные окна, содержа в себе состояние окна, по типу такого:
    spoiler
    <template>
    
      <div>
        <q-btn
          v-bind="$attrs"
          @click="show = true"
        ></q-btn>
    
        <q-dialog v-model="show">
              <p>
                Lorem ipsum dolor sit amet consectetur adipisicing elit. Rerum repellendus sit voluptate voluptas eveniet porro. Rerum blanditiis perferendis totam, ea at omnis vel numquam exercitationem aut, natus minima, porro labore.
              </p>
              <q-btn
                label="OK"
                @click="show = false"
              />
        </q-dialog>
      </div>
    </template>
    
    <script>
    
    export default {
      inheritAttrs: false,
      data () {
        return {
          show: false
        }
      }
    }
    
    </script>

    Естественно, вместо q-dialog в данном случае может быть любой готовый компонент. А подход showModal('reg') ведет к лапше в коде
    В случае с v-for - лучше всего встраивать компонент в каждую строку, чем заниматься пробросом текущей строки в "общий" на список компонент.
    Ответ написан
    Комментировать
  • Как лучше написать во Vue?

    yarkov
    @yarkov Куратор тега Vue.js
    Помог ответ? Отметь решением.
    Лучше в разных, а то в логике и темплейте запутаетесь.
    Сделайте иерархию примерно так:
    /articles/index.vue - просмотр списка статей
    /articles/create.vue - создать статью
    /articles/view.vue - смотреть статью
    /articles/edit.vue - редактировать статью


    И роуты:
    {path: '/articles', component: './articles/index.vue'}
    {path: '/articles/create', component: './articles/create.vue'}
    {path: '/articles/:id', component: './articles/view.vue'}
    {path: '/articles/:id/edit', component: './articles/edit.vue'}


    Это сугубо личное мнение и не претендует на звание единственно правильного
    Ответ написан
    Комментировать
  • Как извлечь данные из function (data)?

    @alekssamos
    Программист любитель
    Или отдавать ответ в JSON и уже работать с ним. в PHP смотрим функцию json_encode.
    Ответ написан
    Комментировать
  • Как починить отображаемую кодировку в терминале?

    @res2001
    Developer, ex-admin
    Надо выставить в XShell кодировку UTF8.
    Ответ написан
    1 комментарий
  • Что если к планшету подключать зарядное на 2,1 ампера?

    Jump
    @Jump
    Системный администратор со стажем.
    2,1 ампера - это максимальный ток который способно выдать это зарядное.
    Какой именно ток будет идти на заряд - зависит от контроллера заряда.

    В общем основные критерии при выборе БП для зарядки -
    1. Напряжение должно быть точно таким как указано. Иначе не будет работать либо сгорит.
    2. Мощность и ток должны быть не меньше той что указаны. Если больше - отлично, если меньше - будет медленно заряжать.
    3. Подходящий разъем, и качество питания (пульсации и все такое..)
    Ответ написан
    Комментировать
  • Что если к планшету подключать зарядное на 2,1 ампера?

    syler
    @syler
    Инженер по КИП и АСУ ТП
    Ничего не будет. Подключайте хоть на 100 А.
    Мощность, написанная на зарядном - это его максимальная мощность, по сути пропускная способность.
    Планшет при подключении "возьмет" ровно столько, сколько ему нужно (то есть 2 А).
    Ответ написан
    Комментировать
  • Примеры проектов PHP(прокомментированных). Где найти?

    glaphire
    @glaphire Куратор тега PHP
    PHP developer
    Для популярных фреймворков обычно есть демо приложение, нп. Symfony demo app. У Laravel был курс "как был создан Laracasts", т.е. есть живой проект Laracasts и скринкаст по его созданию в целях обучения. В целом на гитхабе есть море готовых приложений разного качества и сложности, главное погуглить основательно)

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

    HunteR-VRX
    @HunteR-VRX
    Помешанный на развитии
    Добрый день!

    Когда Вы задаётесь вопросом поддержки и совместимости, той или иной технологии, смело идите на х ороший такой ресурс "CanIUse", в поисковой строке которого, пишите интересующее Вас. В результате вам отрендерится таблица поддержки запрашиваемого по всем браузерам.
    Ответ написан
    Комментировать
  • Как себя чувствуют гриды в 2020?

    web_Developer_Victor
    @web_Developer_Victor
    Что такое google?
    Если Вас устраивает поддержка , то можно
    Ответ написан
    Комментировать
  • Как себя чувствуют гриды в 2020?

    inkShio
    @inkShio
    Ответ написан
    Комментировать
  • Как уменьшить все блоки сразу?

    hzzzzl
    @hzzzzl
    если всё задать в rem, то размеры будут относительно font-size родительского контейнера (например html)

    Ответ написан
    Комментировать
  • Как разбить массив на части PHP?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    в цикле
    все операции над массивами производятся в цикле
    для перебора массивов в РНР используется оператор foreach
    Ответ написан
    Комментировать
  • После какого класса уходить?

    Psixodelik
    @Psixodelik
    Преподаватель на Hexlet
    Тут нет особой разницы. Колледж и институт это всего лишь набор базовых знаний, которые не сделают из тебя полноценного специалиста (как выпускник по информационной безопасности могу заявлять об этом), но заложат хорошую базу.

    Можешь после 9 класса пойти в информационный колледж, например на администрирование или АСОИиУ. Там дадут основы программирования, математику, сети. Это всё хорошие вещи. После этого уже ищи профильный институт
    Ответ написан
    Комментировать
  • Как решить проблему с visited?

    E1ON
    @E1ON
    Programming, Gamedev, VR
    У вас href один и тот же, вот оно и выделяет все
    Ответ написан
    Комментировать
  • Почему Service Locator это зло и что использовать вместо?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Все эти страшные слова - они на самом деле всегда про одно и то же - про связность. Когда ты хардкодишь внутри класса вызов какого-то конкретного сервиса - ты намертво к нему привязываешься. И чтобы поменять сервис на другой, ты будешь вынужден поменять код класса. Окей, поменял. И тут же в другом месте, где этот же класс использовался, что-то сломалось! И что теперь? Делать два класса, которые различаются одной строчкой? Нет конечно. А как тогда использовать один и тот же класс для обработки разных входящих данных (или одних и тех же данных, но разными способами)? Сделать его поведение изменяемым. То есть сделать изменяемыми те инструменты, которыми он пользуется - т.е. его зависимости.

    Поэтому все зависимости обычно передаются через конструктор (и поэтому и называются инъекция зависимостей.)

    Таким образом мы можем менять поведение класса, не меняя его код

    Но тут надо понимать, что всё это работает только при правильном применении ООП. А точнее просто при применении ООП. Потому что 98% "ООП" кода, который пишется на РНР - это голимая процедурщина, даже если она обёрнута в классы и методы. Если у тебя метод класса представляет из себя стену кода, которую ты тупо перенёс из файла, инклюдившегося в любимое похапешное спагетти - то это не ООП. Это та же процедурщина, вид сбоку. И смысл использования dependency injection ты с ним не почуствуешь. Будешь конечно применять, но в качестве карго культа - потому что тебе это на тостере написали.
    А вот когда твой код начнет становиться действительно объектным - тогда стразу станет понятнее.


    Похожим на сервис локатор является сервис- или DI-контейнер. Используемый вручную, он является тем же самым сервис локатором. Поэтому вручную его никогда не надо вызывать - что и запрещается в симфоневских конроллерах - а только для автоматического создания классов. В МВЦ у тебя ведь очень многие объекты создаются автоматом - сущности, контроллеры. И вот для того, чтобы при автоматическом создании экземпляра класса у тебя были на руках все требуемые сервисы - и нужен контейнер.

    Соотвтственно, ответ на вопрос "что использовать?" очень простой:
    - при ручном создании экземпляра объекта, все зависимости передавать в него через конструктор, а не получать "из воздуха" в коде.
    - при автоматическом создании экземпляра объекта, использовать dependency injection container

    В этим смысле очень полезно освоить Симфони - строгий фрейворк, в котором нет сервис локатора и в котором запрещено пользоваться контейнером напрямую.
    Ответ написан
    4 комментария