Pull to refresh

Comments 39

Чем SSG от JAMstack принципиально отличается?

Тоже интересно стало. Может кто-нибудь в двух словах может объяснить? Или это просто очередной баззворд?
Так, пользуясь RESTful-API разработчик вынужден собирать необходимые ему данные, загружая их из нескольких конечных точек, каждая из которых была создана для решения определённой задачи. Например, это такие конечные точки, как /users/_id и /tours/_id/location.

Чем именно это отличается от data-oriented RPC?

Разумеется ничто не ново под луной и подходы «отдавать все сразу» и «давайте уже строго типизируем все это» не в фейсбуке изобрели.
Java бэкендеры когда в видят графкуэль так и говорят «О так это RPC».

Но есть конкретно у GraphQL весомые преимущества
Главное — это стандартизация.
Есть некоторая достаточно конкретная спецификация поддерживаемая крупными игроками. Это огромный плюс, потому что по опыту каждая компания под «RPC» понимает что-то немного свое.

Первый плюс позволил появиться второму и третьему:
Второй — это богатый и неплохо по опенсорс меркам сделанный тулинг (apollo, graphiql как примеры).

Третий — это развившееся вокруг этих инструментов комьюнити, благодаря которому можно быстро решить самые типичные проблемы.
Пара ложек дегтя в бочку меда:
  1. Нет возможности обмена файлами — только JSON (если без всяких костылей)
  2. Сложность обработки ошибок. Спецификация подразумевает то, что все запросы, которые могут быть обработаны сервером — возвращаются с статус-кодом 200. Как типичный пример — когда мы не совершив авторизацию обращаемся за данными. Вместо привычного ответа 401, мы получаем 200 с длинным описанием в json. Да, в тело ответа можно прокинуть статускод, но все-равно это добавляет лишних проблем. В примере с авторизацией, когда у нас JWT AccessToken+RefreshToken в интерсепторах не получиться использовать error handling, тк все ошибки у нас будут со статусом 200, а придется в каждом запросе лезть в его тело и искать статускод.
UFO just landed and posted this here

О react в чистом виде уже говорить не приходится, спрашивают react/redux/saga. Без этих 3-х китов сейчас даже на джунов не смотрят. Мир меняется.

От redux наоборот все отказываются постепенно

А в пользу чего? Большинство проектов, куда звали на собесы написаны на стеке react/redux/saga.

Это все старое, то есть звали на уже существующий проект. А новые проекты на этом стараются не делать. Хуки, контексты и т.п.
Вы заблуждаетесь. Просто поверьте на слово. Redux давно уже не очень популярен.

Вместо PWA рекомендую ознакомиться с гибридным подходом (Cordova, Ionic). Вход проще, чем в PWA, больше возможностей, приложение выглядит на 100% как нативное, что добавляет солидности.

В статье речь про разработку сайтов больше, а не про разработку приложений.
Для приложений тот же React Native есть. Вход тут ещё проще для тех, кто уже пишет на React.

В статье целый раздел про PWA, мой комментарий про него. Не все пишут на React.

Вся статья для front-end разработчиков, поэтому у меня это не особо связалось с разработкой приложений. У них сегодня есть много пересечений (да и то только в нишевой сфере), но всё же это разное.
По поводу React больше из-за того, что в статье про React и Vue. Если есть погружение на Vue, то Ionic подойдёт, конечно.
Просто удивило предложение с Cordova и тем, что вход проще. У меня вообще сложилось впечатление, что Cordova сильно сдаёт позиции в последнее время.
Это немного разные вещи. PWA — это веб-приложение, которое хорошо работает из кеша, иногда даже в оффлайне и может по необходимости быть установлено, причем даже на десктоп. А мобильная аппка — это всего-лишь мобильная аппка.
UFO just landed and posted this here
не факт, WebAssembly раскачивают не первый год, все никак не раскачают. Вопрос на столько он нужен широким слоям программистов.

В этом году появился новый крупный игрок — Blazor.
Так что доля js будет постепенно падать, когда те, кто использовал .net + js избавятся от последнего.

Эта статья написана в прошлом году за долго до первого релиза, о чём и сказано в начале. И автор постоянно напоминает, что это "early-stage beta product".
В пострелизных обзорах наоборот указывают на лучшую производительность по сравнению с js.
А загрузка доп файлов в виде net runtime нужна всего один раз при первом обращении к ней.

Там есть масса тонкостей, от того, что сейчас нет AOT — т.е. интерпретируется байткод, а не копилируется в webassembly до того, что нельзя напрямую завимодействовать с DOM,


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

Да, вроде-бы, не в этом году он появился. Я года два назад на Хабре же про него читал.

Релиз был в мае этого года.

Вы попробуйте загрузить сайт на нем, нормально так скачать придется… На мобилках такой себе вариант, а как технология, все классно конечно, тяжелые приложения на wasm работают раза в 2 быстрее, чем на js. Майки так вообще предлагают к этому добавить SSR, не очень понятно зачем правда тогда нужен wasm тут...

"Посадочные" странички можно на чём угодно написать, был бы контент, а статья найдётся ;D

У репозитория React на GitHub сейчас имеется примерно 159000 звёзд, а у репозитория Vue и того больше — около 175000. А вот у Angular, например, всего около 67500 звёзд. Если говорить о статистике по поисковым запросам за 2019 год, график которой представлен ниже, можно найти соответствие с вышеозвученными данными.

Если отбросить сомнительность и неточность измерения популярности и перспективности библиотек в попугаях и звездочках, то для Vue не учтен китайский фактор. А именно — сейчас библиотеки, используемые китайцами могут иметь тысячи звезд, а вы про нее и слыхом не слыхивали, и вообще непонятно, кому она могла приглянуться (отсутствие английкой документации не в счет). Это, конечно, частный случай локальности ПО, но очень явный.
Так что здесь совет учить Vue — это из той же оперы, что и «учите китайский».

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

Здесь ошибка перевода, к PWA имеют отношение сервис-воркеры.

Среди сильных сторон PWA можно отметить следующие:

Надёжность — быстрая загрузка, возможность работать без подключения к интернету

Это доступность в оффлайне. С надежностью строго наоборот — в не самых свежих браузерах может не поддерживаться или поддерживаться криво, и это может сломать весь сайт еще сильней, чем другая неподдерживаемая фича. Но на этот риск идет любой любитель древностей. А проблема с воркерами в том, что цикл жизни не ограничивается текущей вкладкой, и если воркер глючит, то пользователь после выполнения стандартного ритуала — почистить кэш, куки, F5 и новое окно — остается в недоумении, почему нужно прибивать браузер, чтобы сайт ожил.
Мне кажется, сегодня от любого фронтедера требуют этот список, плюс еще вагон умений в прицепе)
А вдруг кто подскажет — как работать с GraphQL на сервере?
Ну т.е. с рестом всё легко — контроллеры, роутинг запросов (я про asp.net, если это важно. Роутинг вроде все нынче делают, вот насчет контроллеров — хз =).
А в GraphQL тебе могут прислать запрос любой сложности, как его разбирать и выполнять потом?
Обычно для этого используют какие-нибудь вспомогательные средства, типа apollo-server или www.prisma.io
Там практически все необходимое имеется.
А для разбора запросов, если вы уж очень глубоко хотите копнуть, то изучайте интроспективу graphql.org/learn/introspection
В архитектуре GraphQL для каждой сущности определяется резолвер, который по сути выступает чем-то вроде контроллера
А я считаю, что очень внимательно надо смотреть в сторону DevOps. Какой фреймворк вы выберете, библиотеку и т.п. — это совершенно другой вопрос. А главный вопрос: как вы это все будете сопровождать, как готовить и доставлять на конечный сервер, разворачивая прод. Говорю это не просто так, ибо имею опыт работы и в большом зеленом. Работал в проекте с более 300+ сотрудников. Многие сотни коммитов в неделю. И главная задача во всем этом — CI/CD.

Сам же только сегодня написал свежую статью по результатам полуторамесячной работы своей. Переписал 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
Sign up to leave a comment.