Задать вопрос
  • Чем технически отличаются dev-, prod- и peer-зависимости в Node JS?

    johnymkp
    @johnymkp Автор вопроса
    Не очень понял.

    Например есть библиотека Foobar версии 1.4.5
    И есть плагин Plug к ней.

    По идее, это именно библиотека пользуется плагином, а плагин значит является независимой единицей и не пользуется кодом библиотеки. Значит, Plug является пир-зависимостью для Foobar, т.е. у Foobar в секции peerDeps находится Plug?
    Написано
  • Есть ли в IndexedDb возможность сохранить данные в инвертированном порядке?

    johnymkp
    @johnymkp Автор вопроса
    Получается, что курсор с выбором с конца - единственный выход?
    Написано
  • Есть ли смысл учить абсолютно все элементы HTML?

    johnymkp
    @johnymkp
    Ratenti,
    Давно хотелось написать какую-нибудь прогу для себя, с графическим интерфейсом, а gui-технологии для языков, использующихся на беке (C#, Java) очень неудобные по сравнению со связкой html+css. Плюс поднадоела духота конкретно Spring. Занялся фронтом просто чтобы посмотреть что тут и как, в итоге вот думаю докачать необходимый минимум и искать работу именно как фронт.
    Написано
  • Есть ли смысл учить абсолютно все элементы HTML?

    johnymkp
    @johnymkp
    Алексей Уколов, а раз вы не заморачиваетесь над запоминанием, то как тогда находите нужную инфу? Каждый раз [гугл | лазание по проектам в поисках нужного места] или ведете личные заметки, что-то вроде собственной википедии?
    Написано
  • Есть ли смысл учить абсолютно все элементы HTML?

    johnymkp
    @johnymkp
    Зубрежка зубрежке рознь. Вот из личного примера: я постоянно забываю всякие мелочи, типа есть ли для ввода текста отдельный тег или это input с каким-то атрибутом. Или например, я помню, что список это select со вложенными option, но совершенно не помню как выставить дефолтное значение или как его получить. Или как подключить стили на страницу. Я конечно пока еще не полноценный фронтендер, только перекатываюсь с бека во фронт, но чувствую, что ситуация не изменится, т.к. подобная канитель у меня всегда была. От того, что не используется пару дней, начинает оставаться только общее воспоминание.

    Многие такие базовые вещи не требуют понимания, они именно на "помнишь\не помнишь". Это не промисы например, где и вправду зубрежкой не отделаешься (хотя после наступления понимания почему бы и не зазубрить синтаксис). И лично мне не комфортно от того, что я постоянно что-то такое базированное забываю. Поэтому я делаю карточки и периодически их просматриваю с целью, чтобы эта самая база всегда была, так сказать, "в оперативке". Что в принципе можно назвать подвидом зубрежки. Аналогично со стандартными методами, например, массивов. Удобнее помнить, что метод называется includes, а не contains например, нежели каждый раз гуглить. Про существование некоторых вещей вообще можно забыть даже, если долго их не трогать.

    Есть расхожее мнение, мол, "программист должен уметь думать, а не все методы помнить". Но если методов\тегов не помнишь, то получается как "читаю\перевожу со словарем", если через каждые три слова надо в словарь лезть, много не начитаешь. То же самое и тут. Так что имхо зубрежка некоторых вещей может быть полезна. Опять же, если на лайвкодинге постоянно говорить что-то вроде "ой, тут вот так должно быть, но я забыл как там пишется", вряд ли хорошее впечатление оставишь. Имхо, как боксер должен уметь отправлять в нокаут, а не только знать как это делается, так и программист должен по максимум уметь писать без гуглежа. Ну кроме совсем конечно отбитых случаев, вроде того как например в RTK слайс создавать, такое я конечно зубрить никогда не буду.
    Написано
  • Как правильно сформировать объект-результат в перегруженной функции в TypeScript?

    johnymkp
    @johnymkp Автор вопроса
    Alexandroppolus Решение определенно интересное, но выглядит слишком технически привязанным к таким вещам как последовательность параметров, их количество. В общем несколько хрупковато как будто. Перемещение параметра было бы удобно, но в целях обучения хотелось бы оставить его на месте пока что.
    P.S. Я конечно понимаю, что если что-то изменится, то на то она и строгая типизация, чтобы все сразу ломалось как можно быстрее, но есть ли еще какие-нибудь варианты решения? Просто для сравнения хотя бы.
    Написано
  • Как в react работать с большим количеством данных?

    johnymkp
    @johnymkp Автор вопроса
    Пагинацию в итоге нашел в документации.
    Чтобы свой бэк сделать, надо где-то его поднимать, а бесплатно такие сервисы вряд ли есть. К тому же хотелось бы самодостаточное приложение.
    Вот за indexedDB спасибо, не знал что такое существует. Погуглю про него и про локалстор.
    Написано
  • Как в react работать с большим количеством данных?

    johnymkp
    @johnymkp Автор вопроса
    szQocks, сервер не мой. Правда, оказалось что пагинация есть, в краткой документации не было в примерах, а в полной нашел.

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

    johnymkp
    @johnymkp Автор вопроса
    WbICHA, в какую переменную?
    Написано
  • Как react различает компоненты, находящиеся в одной позиции UI-дерева?

    johnymkp
    @johnymkp Автор вопроса
    А, т.е. имеется ввиду не то html-дерево, которое получается в итоге в браузере, а реактовское дерево?
    P.S. В самой документации реакта есть информация про всякие вещи типа жизненного цикла компонента, монтирования\размонтирования и т.д.? Или надо отдельно гуглить?
    Написано
  • Как примерно выглядит async-await код, если его написать на промисах?

    johnymkp
    @johnymkp Автор вопроса
    Alexandroppolus, да мне в общем-то не ради переписывания надо было, а просто чтобы адекватную аналогию придумать для упрощения запоминания. Затем сахар и придумывают, чтобы не изголяться, а писать более наглядным образом. Если аналогия что все после await, грубо говоря, попадает в then, более-менее адекватная, то мне этого вполне достаточно.
    Написано
  • Почему не пойманная в Promise.all ошибка не попадает в catch?

    johnymkp
    @johnymkp Автор вопроса
    Да, действительно. В первом примере у меня нет setTimeout, поэтому работает. Если добавить, то скрипт будет тоже останавливаться.

    Но вообще setTimeout применяют для имитации длительной работы. А если предположим в промисе будет какая-то настоящая функция (не моя, а библиотечная), которая выполняется асинхронно и в ней возникнет ошибка? Тогда как?
    Написано
  • Как работает then в промисах?

    johnymkp
    @johnymkp Автор вопроса
    Алексей Уколов, просто я пока писал комментарий, вы уже дополнили ответ по 4 ситуации. Ковыряться в деталях реализации я не собирался, это правда не особо нужно. В целом я теперь понял, что к чему. Мне не хватало вот именно этой детали - что берется результат колбэка и оборачивается в резолвленный промис (ну или если ошибка, то в отклоненный).

    Насчет того, что в статьях и курсах хорошо написано, это спорно. Например, после чтения статьи того же Ильи Кантора по промисам, у меня сформировалось впечатление, что передаваемые в then функции промис использует в качестве resolve и reject. Из-за этого я не мог понять, а как тогда получается, что промис уже может быть сто лет как выполнен к моменту вызова then. Понял только после хабра, что resolve и reject - это внутренние промисовские функции, которые он нам дает чтобы сохранить результат \ ошибку в сам промис. Так что хотя в целом Кантор и хабр хорош и я по его сайту изучаю, но иногда формулировки путают или недостаточные и без форумов не обойтись.
    Написано
  • Как работает then в промисах?

    johnymkp
    @johnymkp Автор вопроса
    Т.е. в ситуации 2 идет именно просто игнор, а не создание какого-то промиса-заглушки-пустышки, правильно я понял?

    В ситуации 3 да, не then возвращает, а моя функция, выразился плохо, поправлю вопрос. А как это примерно выглядит? then выполняет мою функцию, получает результат и потом возвращает что-то вроде
    new Promise((resolve, reject) => resolve(значение_из_моей_функции);

    Так получается?

    А в 4 случае как тогда? then каким-то образом анализирует тип результата и если видит, что это промис, то не создает обертку, а возвращает как есть?
    Написано
  • Какова механика работы метода bind?

    johnymkp
    @johnymkp Автор вопроса
    Хороший пример на самодельный binder, теперь понятно в чем дело.
    Написано
  • Почему не срабатывает псевдокласс :last-child?

    johnymkp
    @johnymkp Автор вопроса
    Вот оно что. Проверил в локальных браузерах - там тоже в конец добавляется какой-то скрипт. А это можно как-то избежать? Ведь по сути из-за такой медвежьей услуги не работает как надо.
    Написано
  • Как создать объектную модель содержимого файла?

    johnymkp
    @johnymkp Автор вопроса
    "Похож на json" и "json" все-таки разные вещи. Этот файл только похож и обработать его json-библиотекой не получится. К тому же я хочу сам написать программу, которая сможет это сделать. Эффективность мне не важна, главное чтобы работало и вообще посмотреть как подобные вещи делаются. +Учить js ради одной задачи я сейчас не собираюсь.
  • Как работает синхронный вызов в микросервисах?

    johnymkp
    @johnymkp Автор вопроса
    > - отправляешь сообщение в одну очередь и начинаешь читать ответ из другой (это тоже блокирующий)

    А поподробнее? Просто в моем представлении очереди - это инструмент исключительно асинхронный.