All streams
Search
Write a publication
Pull to refresh
3
0
Алексей @LastDragon

Пользователь

Send message

При желании можно сделать API почти как REST и без возможности запросить слишком много, это конечно не совсем graphql way, но большую часть недостатков снимает. В REST руками тоже много чего надо прописывать.

Очень не хватает поддержки interface и union для инпутов

Это да, и в целом слишком медленно оно развивается (@oneOf лет пять добавляли?). Хотя для больших старых приложений это даже хорошо наверное. К минусам я бы еще добавил копипасту при работе с интерфейсами (явно что-то очень тяжелое они курили когда так сделали...), тикет с 18 года висит :( Ну и 32 битный int в 2к25 несколько странно выглядит.

Так эта "виртуальная промежуточная БД" и есть наше API, GraphQL просто делает его явным (= не надо копаться в коде чтобы найти как модель конвертируется в json, не надо изобретать велосипеды для документирования этого, и прочее).

Зачем все это если можно все это не делать ?

Если у вас есть документация для API (есть же?), то это и так все приходится прописывать только в отличии от GraphQL оно часто или никак не синхронизируется с кодом или делается ручками. Я честно как-то пытался подружить laravel c openapi (а до этого была какая-то сторонняя библиотека для генерации документации) - больше этим страдать не буду.

А еще никто не мешает автоматически генерировать типы GraphQL по моделям приложения.

Буквально настолько большой слой работы что как будто нужен отдельный человек .

Зачем? Дробите схему на мелкие части, вроде всё серверное умеет (в том или ином виде) эти части объединять в одну большую схему. Когда-нибудь добавят пространства имен и станет совсем хорошо. Сейчас немного неудобно придумывать названия для мутаций, вложенные мутации отчасти решают проблему, но с ними есть нюансы в очередности выполнения.

то должен ли в фронтер лезть в бэк графа если например бэк на с# ?

А в REST у вас фронтендер как узнает о том какие поля в запросе/форме есть?) В GraphQL это всё совершенно прозрачно , а если чуть доработать то в описания к полям можно добавить, например, требуемый уровень доступа, прописать правила валидации значений (автоматически ессно) - открыл схему и всё, вообще никаких вопросов в бэкэндеру ибо все очевидно из самой схемы. Фронту даже знать не надо на чем оно там внутри работает.

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

Вот только придется доставлять вообще все доступные поля, а там обычно куча данных из связанных таблиц - пустая трата ресурсов. В GraphQL будут выбраны только нужные поля.

Мне не особо нравится GraphQL по трём причинам.

Я как-то так же думал пока не распробовал, а теперь REST остался только для скачивания файлов. Огромный плюс GraphQL в том что он одновременно и документация для вашего API - с REST это огромная проблема и решения которые есть (тот же swagger/openapi) имеют чрезвычайно высокий порог входа (на пару порядков выше чем изучить GraphQL) и огромную кучу проблем и интеграцией в существующие проекты. А тут вся схема сразу перед глазами.

Произвольные запросы это даже хорошо - не нужно менять бэкенд на каждый чих. Ограничение нагрузки возможно, но чуть более сложно (обычно реализуется через подсчет стоимости запроса). С кешированием тоже решаемо (но сложнее да). Еще из преимуществ @deprecated из коробки, что позволяет постепенно мигрировать на новое API (и в целом рекомендуется именно этот подход, а не v1, v2 и прочее). Для фронта/клиентов тоже куча преимуществ - можно например генерировать типы и отслеживать опечатки в запросах еще на этапе компиляции. А еще можно автоматически поднять тестовый сервер который будет эмулировать вашу схему.

В целом, несмотря на некоторые недостатки (чуть медленее, сложнее, 32 битный int, до сих пор нету пространств имен, ...), сейчас не вижу никакого смысла использовать что-то другое (за исключением скачивания файлов).

Только что звонили с 0321 и никакой тебе маркировки (билайн поволжье). Надеюсь оно всё же заработает в ближайшее время.

Например, доступ во внутреннюю сеть организации для работы. Или даже самое банальное - попасть на ресурс который запретил доступ из РФ (но сам не запрещен в РФ). Для юрлиц/ип там уже совсем другие штрафы - от 200к (а за повторное от 800к).

Даже интересно стало - а можно ли настроить впн так чтобы он соблюдал запреты? Списки то ведь не публичные, максимум можно проверить конкретные URL. Или вот как быть с ютюбом? Официально никакого запрета на доступ к нему нет.

Странно что все игнорируют новую статью 13.52 которая устанавливается в т.ч. ответственность для владельцев впн за преодоление запрета на доступ к запрещенному контенту. Под неё ведь похоже попадают все кто настроил свой собственный впн? (штраф от 50к)

Или как более универсальный вариант прогнать скриптом из https://habr.com/ru/articles/847886/comments/#comment_27381100 (ссылка в самом конце) (нашел рабочий конфиг через этот скрипт)

С позавчерашнего вечера они (билайн, поволжье) похоже что-то подкрутили и GoodbyeDPI более не помогает от "замедления" ютюба (всё остальное работает).

Wireguard был полностью забанен еще до бана ютюба (поволжье, билайн).

.mutate(mutatorFn: (value: T) => void) – выполняет внутреннее изменение текущего значения сигнала (Иммутабельность не нужна!).

К сожалению была удалена в v17 и сигналы должны быть иммутабельны (https://github.com/angular/angular/issues/52735).

Статья старая, но всё еще актуальная. Так вот, заголовок не соответствует действительности - совсем не без боли. Как патч то создать? В том же js (patch-package) просто берешь и редактируешь код зависимости, запускаешь команду и у тебя готовый патч (еще и под разные версии той библиотеки что патчим). При этом этап создания патча самый трудоемкий, к сожалению, в PHP до сих пор предлагается всё это делать ручками. Т.е. форкаем библиотеку, добавляем её как-то в проект, редактируем, генерим патч, а потом это всё поддерживать как-то надо. Красотища :(

ЗЫ: Очередной раз за несколько лет понадобилось добавить патч в проект, но снова мне лень ибо генерировать патчи руками это мертворожденный подход, как мне кажется.

Ну и вон тиккеты есть https://github.com/actions/runner/issues/1489 можно проголосовать)

Можно ссылаться локально если они лежат в одном репо ./.github/workflows/{filename}

GitHub Actions на данный момент не позволяет этого сделать, удерживая уровень вложенности как 2 - то есть только связка вызывающего и вызываемого workflow.

Уже 4 + можно вкладывать их друг в друга, и в матрицы тоже можно, а сами матрицы могут содержать другие матрицы, и т.д.

В РФ обучение на категорию B это ~186 часов из которых 56 часов это практика. При этом минимальный срок обучения в автошколе 2.5 месяца (быстрее маловероятно ибо автошколе прилетит "привет" сверху...). С 56 часами практики всё мухлюют, например считают академическими часами вместо астрономических, за счет чего можно рисовать красивую стоимость. Реальная же цена со всеми затратами (медсправка, пересдачи, допвождения и т.п.) при условии что прав ранее не было и ты не гений будет в районе 60к и от 3х месяцев по времени. Сам экзамен сейчас тоже весьма не прост ибо нарушать ты ничего не можешь и ты на дороге один такой ? + зависит от положения звезд (= проходит в городе, поэтому как повезет, например, пешеход внезапно метнется через пп и пойдешь на пересдачу) и настроения инспектора (у нас например есть несколько перекрестков проехать которые совсем ничего не нарушив сложно, в жизни всем всё равно, а на экзамене это почти сразу пересдача).

См 4 пункт. ЦБ только ещё ничего не определил вроде, а вот в древнем документе оно как раз таки происходило при переводе с транзитного счета. Посмотрим конечно что сейчас будет

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

Уже есть информация как оно происходить будет? Напишу ка я наверное в банк...

Так оно теперь как-то так скорее всего будет:

получив платеж от контрагента

ваш банк автоматически конвертирует 80% в рубли например при переводе с транзитного счета и только после этого вы сможете совершить

закуп комплектующих (электронных компонентов) для следующей партии. С зарубежными поставщиками - в валюте

которую уже придется докупать за полученные рубли.

1
23 ...

Information

Rating
Does not participate
Location
Россия
Registered
Activity