Pull to refresh
8
0
Павел Щеголев @Carduelis

Principle Front-end Engineer

Send message
Не рассчитывайте на useSelector в плане оптимизаций. Он лишь предотвращает ререндер, если сравнение результата через === вернуло true.

Вот пример, где селектор возвращает простую, но структурированную информацию о пользователе:


{
   name: 'John',
   email: 'john@company.com',
   address: {
      state: '',
      city: '',
      zipCode: '',
   }
}

И здесь shallowCompare вторым аргументом уже не работает.


Это в редаксе+реакте, на самом деле жутко раздражает. Нужна мемоизация либо внутри селектора, либо мемоизировать циклы рендера. Тогда как mobx этой проблемы не имеет вовсе.

Вот действительно, читал-читал статью, а потом такое.


Декораторы — это вообще синтаксический сахар, а не функционал.
А Proxy..., ну еще один инструмент языка.


Видимо, это из той же серии, что с "Мы, в Реакт, переходим на фунциональные компоненты, потому что классы — это слишком сложно".


In addition to making code reuse and code organization more difficult, we’ve found that classes can be a large barrier to learning React. You have to understand how this works in JavaScript, which is very different from how it works in most languages.

А кто знает как отключить всплывающие уведомления (как Хамелеон) на Билайне?
Причем они появляются только на Андроиде (Samsung S7), тогда как айфон их игнорирует.
Я уже случайно (машинально, нативное окно появилось сразу после сигнала от мозга к пальцу) нажал "ок" на всплывающем баннере, который мне тут же подписал на какую-то левую подписку. Благо, отключить ее я смог тут же.

Здесь хуки как раз хорошо работают. Когда идет речь про переиспользуемость логики, а не представления. render-props здесь делает ровно то же самое.


Разный "синтаксис" для решения той же самой проблемы.

Имеется ввиду, что новичку будут копипастить. И поэтому лучше в образовательных статьях писать либо дисклеймер (код без useCallback, того, сего, для читаемости), либо писать более-менее продакшн код.


Про useCallback, например, ситуация не всегда однозначная. Но если речь про переиспользуемые компоненты, то, наверное, всегда его надо пихать.

Осторожнее с такими заголовками, как бы плашку НЛО не пришлось бы добавлять. (упс, уже поздно).


На самом деле, мощь CSS Grid в текущем состоянии не раскрыта и не распробована многими разработчиками. Побольше бы таких статей.

Ну, скажем так, со стороны наблюдателя ваши тезисы ничем не подкреплены, в отличие от статьи.
Пишете опровержение, подкрепляйте источниками.

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

Неужели вам нравятся надоедливые попапы "установите наше приложение" вместо обычного просмотра сайта? Или обрезанная мобильная версия, и обязательная процедура открыть гуглплей/аппстор, установить, заново залогиниться, и так делее?


А все почему никто не делает только PWA, потому бизнесу важны функционал и интеграция, а эпплу важен аппстор, где можно % брать, а с PWA не возьмешь.

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

Можно ли считать Hot Module Replacement во фронтенде "прибамбасиной"? Я думаю да.
Однако с ней код пишется гораздо быстрее, ввиду мгновенной проверки небольших гипотез (в том числе и тех, которые увидишь только глазами: например, анимация).


Конечно, можно "сначала думать", но тогда есть риск, что на решение пары задач уйдет довольно много времени, как на очередном беспощадном интервью в Яндекс

Хм… а вы чертовски правы!

Статья хорошая в ресерче, однако вредная в выводах.
Еще хуже то, что автор оперируя пикселями на самом деле оперирует такими же фиктивными единицами измерения, как и остальные пункты.


Современные системы умеют и в метрическую систему тоже.


А еще, размер шрифта в браузере по умолчанию привязан к размеру шрифта ОС. Который в свою очередь также настраивается (например, режим 125% в виндоус).


В общем, тема запутанная, а статья запутывает еще больше.

Спасибо большое за комментарий)


Я перепробовал разные системы, в том числе self-hosted как Strapi.
Например, сервис Contentful не вызывает вопросов с точки зрения выдачи прав доступа для менеджеров по контенту.


Представим интернет-магазин, не будут же менеджеры по контенту устанавливать Nodejs и писать команды в терминале)


Сотрудникам необходимо выдать URL и логин/пароль на худой конец.
Вот и хочется понять, как вы решили (решали ли) эти проблемы)

Смысла закрывать как то бакет нет ни какого :)

Например, если подразумевается, что в бакете могут храниться некоторые приватные данные, показывать или нет которые решает уже сервер. У самого сервера полные права на бакет. Или же, делаем приватный бакет и публичный бакет (или пермишшены раздаем определенным директориям, если возможно).


А как выглядит процесс добавления новой записи и/или изображения в Strapi? И применение (деплой) изменений?


Нужно поднять локально Strapi и подключить к бакету, или же Strapi поднимается на том же бакете, но как тогда обстоят дела с авторизацией?


Спасибо!

А, точно. Я вначале подумал, что это название шаблона для npx команды. Проглядел)

Конечно же в Strapi есть готовый Rest API для записи файлов в Media Library.

А как используется это на практике из бакета Яндекс-Облака? Как выглядит URL?
Можно ли сделать так, чтобы бакет не был доступен публично, только определенному серверу?


Правильно ли я понимаю, что админка Strapi может быть открыта публично или же бакет используется исключительно как бекап, а вся работа подразумевает запуск локально?

Спасибо большое за статью!
А вы являетесь maintainer'ом strapi-yandex-cloud?


Кстати, раз вы пользуетесь Headless CMS, возможно, у вас JamStack? Как вы сервируете его на Yandex Cloud?

Оказалось, что сверху указано, что это — перевод с английского.

Очень правильная, важная и отрезвляющая статья.
А у вас нет перевода на английский?

В современном мире, даже минифицированные js-файлы для крупных проектов будут отличаться по своему содержанию. Наличием полифиллов или альтернативных решений.
А еще можно поддерживать React Native, скажем. Там свои нюансы и возможности.


Так что, своим комментарием сами же себя и опровергли

Information

Rating
Does not participate
Location
Amsterdam, Noord-Holland, Нидерланды
Date of birth
Registered
Activity