Например есть библиотека Foobar версии 1.4.5
И есть плагин Plug к ней.
По идее, это именно библиотека пользуется плагином, а плагин значит является независимой единицей и не пользуется кодом библиотеки. Значит, Plug является пир-зависимостью для Foobar, т.е. у Foobar в секции peerDeps находится Plug?
Ratenti,
Давно хотелось написать какую-нибудь прогу для себя, с графическим интерфейсом, а gui-технологии для языков, использующихся на беке (C#, Java) очень неудобные по сравнению со связкой html+css. Плюс поднадоела духота конкретно Spring. Занялся фронтом просто чтобы посмотреть что тут и как, в итоге вот думаю докачать необходимый минимум и искать работу именно как фронт.
Алексей Уколов, а раз вы не заморачиваетесь над запоминанием, то как тогда находите нужную инфу? Каждый раз [гугл | лазание по проектам в поисках нужного места] или ведете личные заметки, что-то вроде собственной википедии?
Зубрежка зубрежке рознь. Вот из личного примера: я постоянно забываю всякие мелочи, типа есть ли для ввода текста отдельный тег или это input с каким-то атрибутом. Или например, я помню, что список это select со вложенными option, но совершенно не помню как выставить дефолтное значение или как его получить. Или как подключить стили на страницу. Я конечно пока еще не полноценный фронтендер, только перекатываюсь с бека во фронт, но чувствую, что ситуация не изменится, т.к. подобная канитель у меня всегда была. От того, что не используется пару дней, начинает оставаться только общее воспоминание.
Многие такие базовые вещи не требуют понимания, они именно на "помнишь\не помнишь". Это не промисы например, где и вправду зубрежкой не отделаешься (хотя после наступления понимания почему бы и не зазубрить синтаксис). И лично мне не комфортно от того, что я постоянно что-то такое базированное забываю. Поэтому я делаю карточки и периодически их просматриваю с целью, чтобы эта самая база всегда была, так сказать, "в оперативке". Что в принципе можно назвать подвидом зубрежки. Аналогично со стандартными методами, например, массивов. Удобнее помнить, что метод называется includes, а не contains например, нежели каждый раз гуглить. Про существование некоторых вещей вообще можно забыть даже, если долго их не трогать.
Есть расхожее мнение, мол, "программист должен уметь думать, а не все методы помнить". Но если методов\тегов не помнишь, то получается как "читаю\перевожу со словарем", если через каждые три слова надо в словарь лезть, много не начитаешь. То же самое и тут. Так что имхо зубрежка некоторых вещей может быть полезна. Опять же, если на лайвкодинге постоянно говорить что-то вроде "ой, тут вот так должно быть, но я забыл как там пишется", вряд ли хорошее впечатление оставишь. Имхо, как боксер должен уметь отправлять в нокаут, а не только знать как это делается, так и программист должен по максимум уметь писать без гуглежа. Ну кроме совсем конечно отбитых случаев, вроде того как например в RTK слайс создавать, такое я конечно зубрить никогда не буду.
Alexandroppolus Решение определенно интересное, но выглядит слишком технически привязанным к таким вещам как последовательность параметров, их количество. В общем несколько хрупковато как будто. Перемещение параметра было бы удобно, но в целях обучения хотелось бы оставить его на месте пока что.
P.S. Я конечно понимаю, что если что-то изменится, то на то она и строгая типизация, чтобы все сразу ломалось как можно быстрее, но есть ли еще какие-нибудь варианты решения? Просто для сравнения хотя бы.
Пагинацию в итоге нашел в документации.
Чтобы свой бэк сделать, надо где-то его поднимать, а бесплатно такие сервисы вряд ли есть. К тому же хотелось бы самодостаточное приложение.
Вот за indexedDB спасибо, не знал что такое существует. Погуглю про него и про локалстор.
szQocks, сервер не мой. Правда, оказалось что пагинация есть, в краткой документации не было в примерах, а в полной нашел.
Если делать свою прослойку с редисом, то это надо где-то поднимать сервер, а бесплатных сервисов таких наверное нет. В будущем я думаю перенести на электрон, чтобы было настольное приложение с локальной БД. Но это слишком много технологий, так что пока делаю хотя бы базовую версию в браузере.
А, т.е. имеется ввиду не то html-дерево, которое получается в итоге в браузере, а реактовское дерево?
P.S. В самой документации реакта есть информация про всякие вещи типа жизненного цикла компонента, монтирования\размонтирования и т.д.? Или надо отдельно гуглить?
Alexandroppolus, да мне в общем-то не ради переписывания надо было, а просто чтобы адекватную аналогию придумать для упрощения запоминания. Затем сахар и придумывают, чтобы не изголяться, а писать более наглядным образом. Если аналогия что все после await, грубо говоря, попадает в then, более-менее адекватная, то мне этого вполне достаточно.
Да, действительно. В первом примере у меня нет setTimeout, поэтому работает. Если добавить, то скрипт будет тоже останавливаться.
Но вообще setTimeout применяют для имитации длительной работы. А если предположим в промисе будет какая-то настоящая функция (не моя, а библиотечная), которая выполняется асинхронно и в ней возникнет ошибка? Тогда как?
Алексей Уколов, просто я пока писал комментарий, вы уже дополнили ответ по 4 ситуации. Ковыряться в деталях реализации я не собирался, это правда не особо нужно. В целом я теперь понял, что к чему. Мне не хватало вот именно этой детали - что берется результат колбэка и оборачивается в резолвленный промис (ну или если ошибка, то в отклоненный).
Насчет того, что в статьях и курсах хорошо написано, это спорно. Например, после чтения статьи того же Ильи Кантора по промисам, у меня сформировалось впечатление, что передаваемые в then функции промис использует в качестве resolve и reject. Из-за этого я не мог понять, а как тогда получается, что промис уже может быть сто лет как выполнен к моменту вызова then. Понял только после хабра, что resolve и reject - это внутренние промисовские функции, которые он нам дает чтобы сохранить результат \ ошибку в сам промис. Так что хотя в целом Кантор и хабр хорош и я по его сайту изучаю, но иногда формулировки путают или недостаточные и без форумов не обойтись.
Т.е. в ситуации 2 идет именно просто игнор, а не создание какого-то промиса-заглушки-пустышки, правильно я понял?
В ситуации 3 да, не then возвращает, а моя функция, выразился плохо, поправлю вопрос. А как это примерно выглядит? then выполняет мою функцию, получает результат и потом возвращает что-то вроде
new Promise((resolve, reject) => resolve(значение_из_моей_функции);
Так получается?
А в 4 случае как тогда? then каким-то образом анализирует тип результата и если видит, что это промис, то не создает обертку, а возвращает как есть?
Вот оно что. Проверил в локальных браузерах - там тоже в конец добавляется какой-то скрипт. А это можно как-то избежать? Ведь по сути из-за такой медвежьей услуги не работает как надо.
"Похож на json" и "json" все-таки разные вещи. Этот файл только похож и обработать его json-библиотекой не получится. К тому же я хочу сам написать программу, которая сможет это сделать. Эффективность мне не важна, главное чтобы работало и вообще посмотреть как подобные вещи делаются. +Учить js ради одной задачи я сейчас не собираюсь.
Например есть библиотека Foobar версии 1.4.5
И есть плагин Plug к ней.
По идее, это именно библиотека пользуется плагином, а плагин значит является независимой единицей и не пользуется кодом библиотеки. Значит, Plug является пир-зависимостью для Foobar, т.е. у Foobar в секции peerDeps находится Plug?