Pull to refresh
2
0

User

Send message

статья выглядит как заглушка с неважно каким контентом для рекламы компании в конце

достаточно тапнуть и держать палец на экране, чтобы текущая сторис "застыла" и не сменялась на следующую :)

Пример, где используется React.memo, довольно обманчивый

Мемоизация работает:

const MemoComponent = React.memo(Component);

return (
  <ui>
    {items.map((item) => (
      <MemoComponent>{item}</MemoComponent>
    ))}
  </ui>
);


Мемоизация НЕ работает:

const MemoComponent = React.memo(Component);

return (
  <ui>
    {items.map((item) => (
      <MemoComponent><span>{item}<span></MemoComponent>
    ))}
  </ui>
);


Кейс, когда в качестве children в компонент прокидывается примитивный тип, как мне кажется, довольно редкий, чаще всё-таки рендерится какой-то кастомный компонент, куда item передаётся через props в том или ином виде – поэтому стоит помнить, что тогда мемоизация не будет работать.

Павел Малышев, главный евангелист Svelte в России, использует Svelte на своей работе уже примерно 3 года

в одной из статей он рассказывает, почему именно Svelte, а не условный React (ответ: на телевизорах и кассах React тормозит, Svelte – нет)
если все будут пользоваться такой мыслью, то откуда появятся «самые распространённые библиотеки»?

я имею в виду, что библиотеки и становятся популярными, когда кто-то первый их использует и рассказывает другим
Rich Harris в issue на гитхабе упоминал, почему был выбран именно такой слоган: github.com/sveltejs/svelte/issues/3269#issuecomment-516397747

Someone: «Cybernatically» sounds 100% like 80s RoboCop corn
Rich Harris: Exactly our goal! JavaScript tools are boooooring. We shouldn't take ourselves so seriously.

Насчёт разницы между фреймворками — смотря с какой стороны посмотреть, например, Svelte — компилятор, а React/Vue — предоставляют рантайм, который занимается перерисовкой, в этом плане, отличие довольно принципиальное
опять же, вы сравниваете введение в проект на новой технологии, которую вы ещё и сами не знаете, нового разработчика, который тоже её не знает — чего вы ожидаете? библиотека относительно новая, оформленных в виде статей и документации практик и подходов ещё нет достаточно.

плюсами я считаю значительное сокращение размера бандла и лаконичность кода, простейший компонент на Svelte — 1 строка кода.

мы реализовали в данный момент небольшой виджет, и размер кодовой базы по сравнению с React там значительно меньше.
а можете рассказать поподробнее о том, что не так со Svelte?
Автор говорил про кастомные события, отправляемые через dispatch
Реализации данных интерфейсов по сути и представляют application services. Единообразный интерфейс необходим, чтобы единообразно применять cross-cutting concerns.
но я не нашел ничего такого, что нельзя было сделать не выходя за рамки архитектуры EF и LINQ.


Интерфейсы, описанные в статье, не имеют отношения к слою доступа данных. Это более высокий слой приложения
присоединяюсь к тем, кто ожидает статью про роли/права
Меня в GraphQL пугают две вещи: производительность и безопасность.
Мне кажется, такие опасения возникают из-за восприятия GraphQL API как интерфейса к БД, хотя по факту GraphQL не привязан к источнику хранения данных.

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

Например, данные вы можете получить с помощью локального HTTP-запроса к микросервису. Несколько запросов к микросервисам внутри локальной сети вашей компании для формирования GraphQL-ответа отработают намного быстрее, чем несколько запросов от пользователя к REST API.

Например, есть какое-то поле, которое очень затратно выбирать и по хорошему нужно использовать разные запросы на БД
Создайте отдельный resolver для этого поля и укажите, каким образом это поле должно извлекаться из хранилища.

Или нужно разграничить набор возвращаемых данных в зависимости от роли пользователя
А каким образом вы бы реализовали это в REST API? В GraphQL, например, разграничить доступ к полям можно с помощью директив, указанных на каждом поле, где необходима проверка доступа. Вот статья, описывающая такой подход: codeburst.io/use-custom-directives-to-protect-your-graphql-apis-a78cbbe17355, но это не единственный возможный вариант решения.
А вы используете директивы в своем проекте? Что-то в graphql-dotnet намудрили с ними, и свои директивы непонятно как реализовывать. В apolloserver директивы очень просто добавляются
Но ведь веб-проект является composition root, и подключить слой доступа для регистрации всего в DI контейнере всё равно придётся?
С тестом по C# точно так же обстоят дела.
Извините, но я не вижу ссылку на ваш блог в профиле. Поделитесь, пожалуйста.
Приятного дебага!
Поделитесь опытом о расположении в проекте объектов, связанных с DI-контейнером (например, профили Autofac), объектов, связанных с Automapper (профили), различных инфраструктурных вещей (ActionFilters, ModelBinders, Helpers, etc). Интересует структура и иерархия директорий.
Рекомендую обновить readme на гитхабе. Сейчас там нет никакой информации об использовании. Я понимаю, что есть тесты, но первое впечатление о проекте складывается именно по readme-файлу, как мне кажется
1

Information

Rating
Does not participate
Registered
Activity