Arquisoft / faq

Frequently asked questions - Software architecture course
MIT License
4 stars 0 forks source link

Componentes SOLID en react-native #2

Closed uo269947 closed 2 years ago

uo269947 commented 3 years ago

Hola, mirando proyectos del año pasado y buscando en internet he encontrado unos componentes de SOLID para react: https://github.com/solid/react-components. Que basicamente te da muchas facilidades a la hora de implementar la aplicación y usar SOLID. El problema es que en mi grupo vamos a usar react-native y estos componentes no serían válidos o al menos a mi me daban problemas. Mi pregunta es que cual sería la mejor alternativa:

  1. Intentar adaptar esos componentes a react-native (tampoco sé si es posible).
  2. Buscar otros componentes que si valgan para native (no tuve suerte).
  3. Hacerlos tu mismo de 0.
  4. Otra alternativa. Gracias y un saludo.
labra commented 3 years ago

Aunque la pregunta es buena y has desglosado algunas de las posibles alternativas que tenéis para hacer la práctica, es un tipo de pregunta que los profesores seguramente no vamos a responder.

Uno de los objetivos de la asignatura y de la práctica es que hagáis el esfuerzo de actuar como arquitectos de software, buscando posibles soluciones a los problemas y tomando decisiones arquitectónicas de acuerdo a dicha búsqueda.

Si los profesores os dijésemos cuál de esas alternativas es la mejor, entonces os estaríamos haciendo nosotros el trabajo de tomar la decisión y estaríamos interfiriendo en ese proceso.

Os recuerdo que es importante tener un registro de decisiones arquitectócnicas en el que vayáis justificando las diferentes decisiones y valorando las consecuencias de las mismas.

En el enunciado de la pregunta indicas que en vuestro grupo vais a usar react-native dándolo por hecho. Os recomiendo que comprobéis si realmente tenéis dicha decisión ya tomada y las consecuencias de la misma.

Por otro lado, si no tenéis suficiente información para tomar una decisión ahora mismo, otra posible táctica es intentar obtener más información sobre las alternativas y realizar algunas pruebas en dichas alternativas. Por ejemplo, si en el equipo sois varias personas, igual podéis probar a realizar algunas pruebas siguiendo cada una de las posibles alternativas y luego valorar los resultados tras dichas pruebas.

Una táctica que se suele recomendar al principio de los proyectos es retrasar la toma de algunas decisiones hasta el momento que sea imprescindible tomarlas. Se conoce como "delay until last responsible moment".

Rcenador commented 3 years ago

Esa misma cuestión surgió en nuestro grupo. Te recomiendo que leas las experiencias de otros desarrolladores en el foro de Solid, yo encontré estos hilos al respecto, pero seguramente haya más:

https://forum.solidproject.org/t/react-native-app-development-projects/2538

https://forum.solidproject.org/t/accessing-solid-pod-from-a-mobile-application/2394

También me ayudó a recabar más información sobre el tema el chat en gitter de solid:

https://gitter.im/solid/chat

Ahí lo que hice fue hacer una búsqueda de términos como 'react-native' y ver lo que hablaban al respecto. Varias personas preguntaron en ese chat sobre aplicaciones de Solid hechas con React Native.

pglez82 commented 3 years ago

Si habéis leído la información que os ha puesto @Rcenador una de las cosas que más problemas da en Solid es conseguir realizar el login contra un pod, cosa que necesitaréis hacer.

Con React-Native el problema que tenéis es saber que librerías podéis usar y cuales no (más info aquí). Como ha dicho @labra es crítico que dediquéis recursos del grupo a realizar pequeños experimentos para investigar y tratar de ver que cosas son viables y cuales no (una cosa es leer que se puede hacer y otra cosa es conseguirlo).

En el repositorio de la práctica tenéis resuelto el login usando React sin más. Para intentar tratar de loguearos en un pod desde algo que no sea React puramente (react-native, backend, etc), un recurso que aunque no he probado tiene buena muy buena pinta es esta librería.

pglez82 commented 3 years ago

Os dejo aquí este issue issue donde podéis encontrar algo más de información sobre el uso de la librería solid-node-client en React Native.