Тёмный

¿Por qué después de 6 años dejé GraphQL? 

midulive
Подписаться 278 тыс.
Просмотров 59 тыс.
50% 1

En este video, hablaremos sobre un artículo "Por qué, después de 6 años, he superado GraphQL". Analizaremos las limitaciones y problemas de seguridad, rendimiento y complejidad de gestión de permisos que han llevado a muchos desarrolladores a abandonar GraphQL, pero también sus ventajas
Artículo analizado: bessey.dev/blog/2024/05/24/wh...
▶ No te pierdas más directos en: / midudev

Наука

Опубликовано:

 

4 июн 2024

Поделиться:

Ссылка:

Скачать:

Готовим ссылку...

Добавить в:

Мой плейлист
Посмотреть позже
Комментарии : 109   
@iamsteeveme
@iamsteeveme 17 дней назад
GraphQL nos ayudó mucho en nuestra API en nuestro caso en elixir y absinthe nos facilita resolver esos problemitas. Aunque claramente GraphQL es preferible usarlo internamente (Backend -> FrontEnd) y no para APIs publicas, porque es muy propenso a ataques por la cantidad de posibilidades y cosas que te permite hacer.
@g43s
@g43s 17 дней назад
GraphQL necesita un revamp como Zustand le hizo a Redux.
@cresenciofl4280
@cresenciofl4280 17 дней назад
En el trabajo tuvimos estos detalles y Query complexity and depth ayuda con el tema de la seguridad, para el N+1 existen los Dataloaders. Lo que sigue sin tener una forma sencilla de hacerse es prevenir Query Batching Attacks.
@cresenciofl4280
@cresenciofl4280 17 дней назад
@@63ivaan El interesante? jajaja vale "Chulo"
@javiergarciafillol4454
@javiergarciafillol4454 17 дней назад
Justo cómo comentan, usamos graphql para uso interno, para evitar tener que crear 50 endpoints, ya que muchas veces quieres obtener una lista de algo sencillo, para mi si la petición tiene lógica o cálculos ahi si qué metería un endpoint, vamos un uso híbrido según que se requiere
@AndresGambaSalamanca
@AndresGambaSalamanca 17 дней назад
Ya estamos bajando el uso de GraphQL en nuestro aplicativo, básicamente es mucho mas trabajo asegurarlo por todo lado adicional a optimizar las queries que construye el Graph que simplemente hacer endpoints y hacer nuestras queries mucho mas optimizadas, resultado: se aumentó la velocidad x3 en el performance del aplicativo
@Juan-pu2rv
@Juan-pu2rv 16 дней назад
Dudo que halla sido por usar endpoint en lugar de queries de graphql ya que la idea central de graphql es en una sola query traer información de varios endpoints a la vez
@AndresGambaSalamanca
@AndresGambaSalamanca 16 дней назад
@@Juan-pu2rv Total esa es la idea de GraphQL y por eso decidimos usarlo, pero en esta etapa de nuestro producto tenemos casos donde la misma query en Graph crea una consulta muy mal optimizada aparte de otras que simplemente no se pueden hacer por cierta logica que necesitamos, si bien se puede corregir haciendo muuuchas adaptaciones a nuestro caso de uso no valela pena cuando tenemos procedimiento almacenados que responden mucho mas rapido, para nosotros es primordial el UX antes que nuestro DX, por mas que nos haya gustado Graph, hay que ser practicos, repito, en nuestro caso.
@AndresGambaSalamanca
@AndresGambaSalamanca 16 дней назад
Básicamente hemos vivido en carne propia lo que dice ese articulo
@gposoft
@gposoft 17 дней назад
comentario con respecto a la proteccion de un campo eso no es problema ya que la capa de servicio puede omitir y regresar null las propiedades que el usuario no tenga acceso a un que el client lo vea u observe vera null y listo
@JuanCaicedoo_o
@JuanCaicedoo_o 17 дней назад
En mi caso demasiada parafernalia para llamar integrar algunos datos, por eso deje de usarlo.
@titobundy
@titobundy 17 дней назад
Acudo a un consejo de arquitectura, Cual es la mejor opción y por qué? Poner el bff delante o detrás del api gateway
@czabala
@czabala 12 дней назад
Desde mi punto de vista, la mejor opción es poner el BFF detrás del API Gateway, especialmente si el API Gateway está diseñado para manejar exclusivamente solicitudes desde el internet. Esto ofrece seguridad unificada, gestion del trafico, etc.
@ianmanuelpaniagua8823
@ianmanuelpaniagua8823 17 дней назад
Hola Minudev, aprendo mucho de ti. Estoy haciendo un FP de informática en Alemania. En mis prácticas me han pedido reemplazar las request Graphql del Frontend al Backend por REST APIs. Y configurar en el backend lo necesario(rutas, controladores…) Puedes recomendarme alguno de tus vídeos para aprender hacer esto correctamente? Utilizamos React, JS, Nodejs, axio… O quizás tienes pensado hacer un vídeo de transición de Grapqhl a Rest ? Gracias Máquina ! Saludos
@diegobejardelaguila8614
@diegobejardelaguila8614 17 дней назад
que arquitectura utilizan o te estan pidiendo hacerlo desde cero?
@ianmanuelpaniagua8823
@ianmanuelpaniagua8823 15 дней назад
Buena pregunta, no se como responderte a eso. No es desde cero. El proyecto ya funciona. Solo que quieren dejar de usar graphql para usar REST. Tenemos un front end y und backend que se conecta con la Base de datos. La verdad de arquitecturas aún no se nada.
@diegobejardelaguila8614
@diegobejardelaguila8614 14 дней назад
@@ianmanuelpaniagua8823 oh entiendo, guiate de como esta la estructura, seria bueno preguntarles cual es su arquitectura, para que puedas buscar y saber masomenos como esta estructurado y te sea mucho mas facil agregar o cambiar cosas. Me paso lo mismo en mi empresa, pero ahi me guiaron en las partes, y tenia codigo de donde sacar, casos de usos, controlares, inyeccion de dependencias, etc. Hace un año casi empece como dev trainee tambien.
@ianmanuelpaniagua8823
@ianmanuelpaniagua8823 11 дней назад
@@diegobejardelaguila8614 gracias
@cesswhite
@cesswhite 17 дней назад
En alguna Startup donde estuve, utilizaban GraphQL y fue un total caos, tanto que corrieron muchos devs (incluido yo, como front) y en meses la startup de destruyó. G
@darkfoxwillie
@darkfoxwillie 16 дней назад
gracias por el articulo :)
@andresbustamante972
@andresbustamante972 17 дней назад
A mi me gustaba mucho, yo creia que seria lo estandar con el tiempo. Pero bueno, al menos ahora uso trpc para el trabajo que es super parecido :)
@jl0rellana
@jl0rellana 17 дней назад
BFF es el patrón Facade de toda la vida
@santosmarte
@santosmarte 16 дней назад
En mi caso, me gusta usar la implementación OpenApi y un autogenador del cliente para Typescript.
@ronindevninja
@ronindevninja 17 дней назад
Ash Framework con graphql es de las cosas mas hermosas que hay, además que hay solución para todo lo que se escribió en el artículo
@stevendiazgomez6937
@stevendiazgomez6937 7 дней назад
Que opinas de OData?
@ricardotrejoruiz5776
@ricardotrejoruiz5776 17 дней назад
backend for front end es lo que decimos en backend CQRS
@KevinRivas-sz3us
@KevinRivas-sz3us 17 дней назад
La mayoría de esos problemas se resolvieron hace mucho tiempo
@angeloliver2825
@angeloliver2825 17 дней назад
Lo mas interesante. Se podria pasar de graphQL a Eloquent de forma sencilla para que aplique las optimizaciones de query del Eloquent?
@f3rran
@f3rran 17 дней назад
Si, había una librería de Laravel que facilitaba esto bastante
@angeloliver2825
@angeloliver2825 17 дней назад
@@f3rran lo más simpático es que todos estos problemas son super frecuentes en cualquier implementaciones, y creo que deberian ser en su mayoría restricciones a nivel de base de datos. Y no estoy hablando de que se use un usuario de db por cada usuario. Pero si que se restrinja el acceso según una condición de pertenece el dato a esta persona.
@f3rran
@f3rran 17 дней назад
@@angeloliver2825 bueno, no sé si con GraphQL solamente sé puede, pero con Eloquent puedes darle esa lógica en el modelo y listo
@JesusEnriqueFrancoMartinez
@JesusEnriqueFrancoMartinez 17 дней назад
@@f3rran lighthouse @angeloliver2825
@fungicaeza
@fungicaeza 17 дней назад
Sabías que el QA en graphql no significa query language?
@magol2352
@magol2352 17 дней назад
Es que el GraphQL no es para todos lo proyectos, y en mi caso lo querían poner en todo, les comenté que aumentaba el tiempo de desarrollo para ciertos proyectos que con un api rest json funcionaba igual pero al final los gerentes lo querían así.
@Juan-pu2rv
@Juan-pu2rv 16 дней назад
No sé trata solo de tiempos de desarrollo, con un apollo router que es un graphql Gateway puedes coordinar equipos remotos de backend más eficientemente
@enriqueruiz320
@enriqueruiz320 17 дней назад
Considero que la tecnología no necesariamente se ajusta a un estándar, la mayoría preferimos estándares.
@larryrzv6173
@larryrzv6173 17 дней назад
Si lo hace, por ejemplo no vas y nadie te alentara a usar una arquitectura antigua y abandonada con Miles de agujeros, fallas y compleja como pocas. Cuando tienes a disposición una mejor adaptada, fácil de entender, rápida y segura. Hay estándares claros entre lo que debes usar si quieres ser competente o sufrir.
@asaelel
@asaelel 17 дней назад
Hola, alguien sabe como hacer ese zoom en un area (cuadrada) especifica?
@Alexitoo_UY
@Alexitoo_UY 17 дней назад
Midu tiene en su blog un apartado sobre eso, aunque creo solo funciona en MacOS
@jhomalex07
@jhomalex07 17 дней назад
A mi me encanta Graphql ❤️
@AlejandroTorres-qp7dd
@AlejandroTorres-qp7dd 17 дней назад
En REST con Odata se puede hacer muchas cosas
@albertoarmando6711
@albertoarmando6711 17 дней назад
hacia años que no escuchaba mencion a Odata. Lo use en un sistema .net y andaba de maravilla.
@fdorantesm
@fdorantesm 17 дней назад
Yo jamás lo implementé seriamente en un proyecto por eso mismo, aunque nest lo hace más fácil es más tedioso manejar los permisos por campos. Prefiero rest sobre cualquier otra tecnología. 🫤 Decimos en México que más vale malo por conocido que bueno por conocer.
@Yoko-0x0
@Yoko-0x0 17 дней назад
mi equipo y yo lo dejamos a los 6 meses.
@tomasidalgo1285
@tomasidalgo1285 17 дней назад
GraphQL personalmente me encanta y muchos de los problemas que se comentan (También los ataques) se puede llegar a solucionar sin mucho problema, pero es verdad que no recomendaría usarlo en todos los proyectos. En mi caso, solamente lo uso en mi empresa y para proyectos con sistemas distribuidos.
@sapito169
@sapito169 17 дней назад
grapql parece una buena idea pero una ves que aprendes bien como se hacen consultas sql genericas al final terminas prefireindolas
@Juan-pu2rv
@Juan-pu2rv 16 дней назад
Se pueden hacer a través de un ORM
@sapito169
@sapito169 16 дней назад
@@Juan-pu2rv orm es para noobs y no chads como yo las orm generan sql de muy mala calidad y si piensas que relamente entiendes una orm signigica que no la entiendes lee a este causita vladmihalcea cuando entiendas lo que dice te enteraras que hay pocos devs que puedan usar bien un orm
@sapito169
@sapito169 17 дней назад
y yo todo chad estoy feliz de saber que mi query no expone nada inseguro y esta correctamente capado haciendo varios querys con 15 filtros para todos los casos XD los querys apuntan a sql nativo XD sql nativo es lo mejor de lo mejor nada de todas esas aberraciones que al final todos usan mal y tienes que ser un genio para imaginarse que sql genera
@luiscarlospallaresascanio2374
@luiscarlospallaresascanio2374 17 дней назад
Explicame, no entendí lo que dijiste, apenas estoy empezando xd
@sapito169
@sapito169 16 дней назад
​@@luiscarlospallaresascanio2374 hay un lenguaje para comunicarse con la base de datos llamado sql un ejemplo de los problemas que sql resuelve muy bien son del estilo "dame el precio de venta y costo de todos los productos categorisados por almacen y luego categoria" los que son noobs usan otros lenguajes luego otra erramiento lo traduce a sql lo cual hace muy dificil adivinar que sql realmente se ejecuto y es muy dificil que la herramienta genere exactamente el sql que cumple los requerimientos de seguridad y rendimiento
@ofjdaz
@ofjdaz 17 дней назад
y tu lo dejaste por las mismas razones midu? no lo dices en el video
@midulive
@midulive 15 дней назад
Yo he usado en proyectos grandes 2 veces GraphQL. La primera vez nos funcionó perfecto. Teníamos que unificar la API para dar servicio a muchos dispositivos diferentes (móvil, web, televisión, APIs de terceros). La verdad, en ese momento no tuve nada negativo y algunos de los problemas que comenta en el artículo los pudimos solucionar con código. Aunque teníamos cientos de miles de usuarios, era bastante "plano" la forma de resolver la información. La segunda vez fue un fail. Una empresa con múltiples productos, con información de usuarios a muchos niveles (favoritos, dentro de favoritos, la info de cada cosa...). Podías sacar la info fácil pero el rendimiento era horrible. No es culpa de GraphQL pero usar GraphQL escondía demasiado fácil el problema. Cuando trabajas en organizaciones grandes, no es tan fácil como decir "ah pero es culpa tuya". Tienes que convencer a mucha gente a muchos niveles para que los cambios pasen y hacer mucha pedagogía. Digamos que es algo MUY potente que se te puede desbocar fácilmente. Tampoco nos ayudó mucho el tema de versionado, que en su momento era demasiado confuso. Ahora... Creo que vaya bien o mal, no creo que sea un problema específico de GraphQL. Muchas cosas del artículo se pueden solucionar. Simplemente hay que tenerlas en cuenta y eso sí es importante. Todo tiene sus ventajas y desventajas.
@nicocarne
@nicocarne 17 дней назад
Ni malo ni bueno, depende el caso de uso
@brayanalarconzamora926
@brayanalarconzamora926 17 дней назад
Para eso existe Hasura para esos permisos Midu controlar todo
@daustinnmusic
@daustinnmusic 17 дней назад
Y que yo empeze a aprender GraphQL
@HeavyPabloRock
@HeavyPabloRock 17 дней назад
aguante API Rest con notación JsonAPI y aguante Laravel!
@rmrz2225
@rmrz2225 17 дней назад
La gran mayoría de cosas que salen al poco tiempo ya lo vuelven obselto, las cosas que sacan dia a dia es abrumador.
@otto-ajanel-dev2449
@otto-ajanel-dev2449 17 дней назад
Si tiene 11...m de descarga semanal la librería 😂😂😂😂
@luka4695
@luka4695 17 дней назад
gql + apollo (cache) zarpetaaa
@snithfferx
@snithfferx 17 дней назад
Yo no he leido mucho de graf, me da flojera. pero lo que le conocí y por el trabajo debo usar,, me parece interesante, pero siempre se pareció en cierta forma lo que yo llamo API, porque veo que no es el mismo concepto. Para mi, tener una lista de endpoints es un dolor de cabeza, prefiero la url especifica de la "api" y conocer los recursos, dichos recursos están siendo atendidos por los controllers y si algo no existe o no tiene la forma correcta, error. algo pesado pero, hasta cierto punto más ligero de entender, pero creo que es porque nunca he usado un gramework para hacer mis "aplicaciones" jejejeje
@Juan-pu2rv
@Juan-pu2rv 16 дней назад
En graphql tus comentarios en la app se convierten en documentación de los "endpoints". Mientras vas programando vas documentando
@snithfferx
@snithfferx 14 дней назад
@@Juan-pu2rv que genial, no haces una documentación por a parte. yo solo lo toqué para probarlo, pero la curva era demasiado amplia y no les gustó en el trabajo el tiempo que tardaría en aprender. jejejeje
@Juan-pu2rv
@Juan-pu2rv 14 дней назад
@@snithfferx cuánto tiempo les manejaste para la curva?
@snithfferx
@snithfferx 12 дней назад
@@Juan-pu2rv Pues, con mi poco conocimiento en javascript calculé un mes para aprender a usarlo junto con prisma. En el futuro espero aprenderlo, a pesar que ya le hallan dado de baja.
@denisgimenez3850
@denisgimenez3850 16 дней назад
GraphQL raramente presenta errores porque es un lenguaje de consulta que se basa en un conjunto de reglas y estructuras bien definidas. Sin embargo, es importante tener en cuenta que las implementaciones en JavaScript pueden diferir técnicamente de las de Python o Rust en su funcionamiento. Por lo tanto, aunque GraphQL en sí mismo es robusto, es posible que surjan inconsistencias dependiendo de la plataforma o lenguaje de programación utilizado para su implementación.
@midulive
@midulive 15 дней назад
Exactamente 👍
@Juan-pu2rv
@Juan-pu2rv 15 дней назад
Qué inconsistencias puedes mencionar de ejemplo?
@djthdinsessions
@djthdinsessions 17 дней назад
Los que usamos API REST de toda la vida: Reimos en OpenAPI 3.0
@johan44co
@johan44co 15 дней назад
tRPC for the win.
@LuisM_Santana
@LuisM_Santana 17 дней назад
Para el que no entienda, GraphQL es una moda más que no resuelve ninguna necesidad masiva y que solo sirve para el 1% de casos. Lo cual es la razon por la que muchas tecnologias que en algún momento se ven que las comentan por todos lados, desaparecen de un día a otro. Porque la realidad de los negocios se imponen y ya
@Juan-pu2rv
@Juan-pu2rv 16 дней назад
Según midu lo implementó META, eso está lejos de ser el 1%
@LuisM_Santana
@LuisM_Santana 16 дней назад
@@Juan-pu2rv cuantas empresas tienen el tamaño y/o necesidades de Meta/Facebook? A eso me refiero con 1%, cuantos trabajos hay donde te encuentres con una verdadera necesidad de esto?
@EzioEG
@EzioEG 15 дней назад
@@Juan-pu2rv si fue asi, meta lo invento para resolver un problema de ellos mismos, donde el REST clasico no les resolvia un caso en particular que les estaba dando mucho problemas, alli inventaron GraphQL. Luego lo pusieron al publico.
@Andres-cc7vv
@Andres-cc7vv 9 дней назад
Nunca me gustó GraphQL y afortunadamente cuando doy las razones de no usarlo en un proyecto me apoyan y no lo usamos. No sé para mí con un API REST BFF es suficiente.
@ElPolemista
@ElPolemista 17 дней назад
Nunca vi la necesidad, es una capa de abstracción innecesaria. Sobre todo teniendo websockets y tal
@hck1bloodday
@hck1bloodday 17 дней назад
totalmente de acuerdo, desde que salio yo lo dije, estamos poniendo un serividor mas en frente de la base de datos, que necesita mas configuracion, mas proteccion, mas optimizacion, cuando podrias hacer las peticiones que necesitas directamente a la base de datos y responder en un api rest. y GraphQL funciona relativamente facil con mongodb, pero pobre de ti si lo quieres usar con una base de datos relacional. la configuracion que hay que hacer , el rendimiento que se pierde hace que sea mucho peor tenerlo que no tenerlo.
@Juan-pu2rv
@Juan-pu2rv 16 дней назад
Para BDs relacionales existen ORM, para websockets tienes suscriptions en graphql
@RoylerMarichal
@RoylerMarichal 17 дней назад
Mucho pesar, estaba enamorado con Graphql Y Apollo.. Me mude a Next 14 Full Stack con las server actions
@kzelmer
@kzelmer 15 дней назад
CQRS
@josainsite5141
@josainsite5141 17 дней назад
Y yo aprendiendo GraphQl xD
@rennypetit4891
@rennypetit4891 17 дней назад
x2
@marcosjavier3715
@marcosjavier3715 17 дней назад
X3, seguiré aprendiendo solo por qué me gusta
@ivangalicia4618
@ivangalicia4618 17 дней назад
Yo nunca me he topado con un proyecto en la vida real que use graphql....
@cresenciofl4280
@cresenciofl4280 17 дней назад
Si hay está Facebook, Shopify, Zendesk, Space X, Tripadvisor, Jira. O te refieres a proyectos donde haz trabajado tú?
@cpaez2000
@cpaez2000 17 дней назад
Parra empezar GraphQL es un lenguaje de consultas basado en un patrón de diseño no es una tecnología, como patrón de diseño tu lo puedes adaptar achicandolo o acortandolo sin necesidad de que este abierto para N mil consultas por lo tanto cualquier patron de diseño mal implementado tendrás los problemas de seguridad que comenta el articulo. Es decir no puedes echarle la culpa a algo porque simplemente lo implementaste mal.
@LegionDelFutbol
@LegionDelFutbol 17 дней назад
Jajaja le vas a enseñar al midu
@neociber24
@neociber24 17 дней назад
"No lo sabes usar" no es el mejor argumento acá, me parece que se refiere a que tan fácil es cometer esos errores. Hay ciertas tecnologías o patrones que hacen más fácil cometer esos errores que otras.
@tobiasleclercq1076
@tobiasleclercq1076 17 дней назад
Es una opinión subjetiva. El rendimiento de una tecnología depende de tantos factores que hace imposible evaluarla tan fácilmente
@cpaez2000
@cpaez2000 17 дней назад
Por los comentarios de todos ustedes me doy cuenta que nunca han hecho una api bajo este patron. En fin.
@senoremc4628
@senoremc4628 17 дней назад
efectivamente
@gelordtube
@gelordtube 8 дней назад
Uff o sea que el tiempo que vi tu video ru-vid.com/video/%D0%B2%D0%B8%D0%B4%D0%B5%D0%BE-QG-qbmW-wes.html para aprender GraphQl fue perdido???
@mateosantiagozapatamaldona226
@mateosantiagozapatamaldona226 10 дней назад
Patrones > Tecnologias
@TheRaccoonBytes
@TheRaccoonBytes 13 дней назад
6 años, no mames te tardaste.
@nathlvz
@nathlvz 17 дней назад
midu no te enojes u_u
@midulive
@midulive 15 дней назад
xD Pues no hagas que me enfade 🥲
@izergio8457
@izergio8457 17 дней назад
primero
Далее
React acabará Muerto como jQuery (mi opinión)
18:20
Просмотров 107 тыс.
“Págame $120k o destruiré tu negocio” Cloudflare
29:01
El PELIGRO de los PROGRAMADORES
15:13
Просмотров 10 тыс.
¿Por qué Microsoft Edge dejó React?
7:33
Просмотров 52 тыс.
¿Cual es el SO de Movil más seguro? Android vs iOS
23:47
7 meses usando Godot ¿Me arrepiento?
10:05
Просмотров 218 тыс.
Gizli Apple Watch Özelliği😱
0:14
Просмотров 2,8 млн
How To Unlock Your iphone With Your Voice
0:34
Просмотров 25 млн