Комментарии 39
Чем SSG от JAMstack принципиально отличается?
Как бе не nuxt а https://gridsome.org/
Так, пользуясь RESTful-API разработчик вынужден собирать необходимые ему данные, загружая их из нескольких конечных точек, каждая из которых была создана для решения определённой задачи. Например, это такие конечные точки, как /users/_id и /tours/_id/location.
Чем именно это отличается от data-oriented RPC?
Java бэкендеры когда в видят графкуэль так и говорят «О так это RPC».
Но есть конкретно у GraphQL весомые преимущества
Главное — это стандартизация.
Есть некоторая достаточно конкретная спецификация поддерживаемая крупными игроками. Это огромный плюс, потому что по опыту каждая компания под «RPC» понимает что-то немного свое.
Первый плюс позволил появиться второму и третьему:
Второй — это богатый и неплохо по опенсорс меркам сделанный тулинг (apollo, graphiql как примеры).
Третий — это развившееся вокруг этих инструментов комьюнити, благодаря которому можно быстро решить самые типичные проблемы.
Мой вопрос с GraphQL никак не связан ;-)
- Нет возможности обмена файлами — только JSON (если без всяких костылей)
- Сложность обработки ошибок. Спецификация подразумевает то, что все запросы, которые могут быть обработаны сервером — возвращаются с статус-кодом 200. Как типичный пример — когда мы не совершив авторизацию обращаемся за данными. Вместо привычного ответа 401, мы получаем 200 с длинным описанием в json. Да, в тело ответа можно прокинуть статускод, но все-равно это добавляет лишних проблем. В примере с авторизацией, когда у нас JWT AccessToken+RefreshToken в интерсепторах не получиться использовать error handling, тк все ошибки у нас будут со статусом 200, а придется в каждом запросе лезть в его тело и искать статускод.
О react в чистом виде уже говорить не приходится, спрашивают react/redux/saga. Без этих 3-х китов сейчас даже на джунов не смотрят. Мир меняется.
Вместо PWA рекомендую ознакомиться с гибридным подходом (Cordova, Ionic). Вход проще, чем в PWA, больше возможностей, приложение выглядит на 100% как нативное, что добавляет солидности.
Для приложений тот же React Native есть. Вход тут ещё проще для тех, кто уже пишет на React.
В статье целый раздел про PWA, мой комментарий про него. Не все пишут на React.
По поводу React больше из-за того, что в статье про React и Vue. Если есть погружение на Vue, то Ionic подойдёт, конечно.
Просто удивило предложение с Cordova и тем, что вход проще. У меня вообще сложилось впечатление, что Cordova сильно сдаёт позиции в последнее время.
В этом году появился новый крупный игрок — Blazor.
Так что доля js будет постепенно падать, когда те, кто использовал .net + js избавятся от последнего.
А вы в курсе как работает эта технология и какие ограничения?
https://medium.com/young-coder/a-weekend-with-blazor-running-c-in-the-web-browser-6b9439704418
Хотя АОТ обещают
Эта статья написана в прошлом году за долго до первого релиза, о чём и сказано в начале. И автор постоянно напоминает, что это "early-stage beta product".
В пострелизных обзорах наоборот указывают на лучшую производительность по сравнению с js.
А загрузка доп файлов в виде net runtime нужна всего один раз при первом обращении к ней.
Да, вроде-бы, не в этом году он появился. Я года два назад на Хабре же про него читал.
Вы попробуйте загрузить сайт на нем, нормально так скачать придется… На мобилках такой себе вариант, а как технология, все классно конечно, тяжелые приложения на wasm работают раза в 2 быстрее, чем на js. Майки так вообще предлагают к этому добавить SSR, не очень понятно зачем правда тогда нужен wasm тут...
У репозитория React на GitHub сейчас имеется примерно 159000 звёзд, а у репозитория Vue и того больше — около 175000. А вот у Angular, например, всего около 67500 звёзд. Если говорить о статистике по поисковым запросам за 2019 год, график которой представлен ниже, можно найти соответствие с вышеозвученными данными.
Если отбросить сомнительность и неточность измерения популярности и перспективности библиотек в попугаях и звездочках, то для Vue не учтен китайский фактор. А именно — сейчас библиотеки, используемые китайцами могут иметь тысячи звезд, а вы про нее и слыхом не слыхивали, и вообще непонятно, кому она могла приглянуться (отсутствие английкой документации не в счет). Это, конечно, частный случай локальности ПО, но очень явный.
Так что здесь совет учить Vue — это из той же оперы, что и «учите китайский».
Для обеспечения возможности работы без подключения к интернету в PWA используются веб-воркеры.
Здесь ошибка перевода, к PWA имеют отношение сервис-воркеры.
Среди сильных сторон PWA можно отметить следующие:
Надёжность — быстрая загрузка, возможность работать без подключения к интернету
Это доступность в оффлайне. С надежностью строго наоборот — в не самых свежих браузерах может не поддерживаться или поддерживаться криво, и это может сломать весь сайт еще сильней, чем другая неподдерживаемая фича. Но на этот риск идет любой любитель древностей. А проблема с воркерами в том, что цикл жизни не ограничивается текущей вкладкой, и если воркер глючит, то пользователь после выполнения стандартного ритуала — почистить кэш, куки, F5 и новое окно — остается в недоумении, почему нужно прибивать браузер, чтобы сайт ожил.
Ну т.е. с рестом всё легко — контроллеры, роутинг запросов (я про asp.net, если это важно. Роутинг вроде все нынче делают, вот насчет контроллеров — хз =).
А в GraphQL тебе могут прислать запрос любой сложности, как его разбирать и выполнять потом?
Там практически все необходимое имеется.
А для разбора запросов, если вы уж очень глубоко хотите копнуть, то изучайте интроспективу graphql.org/learn/introspection
Сам же только сегодня написал свежую статью по результатам полуторамесячной работы своей. Переписал 400 000 строк кода. Удалось это сделать только благодаря внедрению TypeScript, next-js, yarn workspaces, автоматизации сборки/тестов + github actions. И да, GraphQL + React у меня там давно, не один год уже.
Если кому интересно, ссылка на статью: new.prisma-cms.com/topics/kak-perepisat-400-000-strok-koda-i-pochti-nichego-ne-slomat
А как же svelte, забыли?
Фронтенд-разработчику: 10 направлений, в которых стоит развиваться в 2021 году