IIC2113 / Syllabus-2022-1

Repositorio oficial del curso IIC2113 Diseño Detallado de Software 🎉👩‍💻👨‍💻
16 stars 1 forks source link

[Proyecto] Consulta de gemas permitidas/no permitidas ✅❌ #13

Closed Dnpoblete closed 1 year ago

Dnpoblete commented 2 years ago

Esta issue esta pensada para que puedan consultar por gemas a utilizar en el proyecto. Les pedimos especificar el nombre del proyecto, nombre de la gema y justificación de para que la van a utilizar.

pedroriosg commented 2 years ago

Hola! Quería saber si se pueden usar las siguientes gemas en el proyecto de React.

  1. Devise: autentificación de usuarios
  2. Rolify y Pundit: autorizaciones
  3. RSpec, Faker y Factory-boy: test
  4. Rubocop: linter
nmassardot commented 2 years ago

Hola @pedroriosg! Todas las gemas que nombraste están permitidas 😄

ghost commented 2 years ago

Hola! puede usarse la gema Active Admin en el proyecto de html + css ?

pedroriosg commented 2 years ago

Hola!

Podemos usar las gemas que vienen el el archivo Gemfile sin tener que preguntar? Por ejemplo, la gema rack-cors que viene lista para descomentar (y muchas otras).

dlcartagena commented 2 years ago

Hola! puede usarse la gema Active Admin en el proyecto de html + css ?

Hola @pabloalvarez67, no puede usarse la gema Active Admin para el proyecto HTML+CSS 😔

La idea es que ustedes implementen toda la lógica para las vistas de administración. Saludos!

bpeirano1 commented 2 years ago

Hola Se pueden usar scaffolds en el proyecto de Ruby on Rails?

Saludos!

dlcartagena commented 2 years ago

Hola Se pueden usar scaffolds en el proyecto de Ruby on Rails?

Saludos!

Hola @bpeirano1 , lamentablemente no se pueden usar scaffolds para el proyecto de Rails.

Saludos!

agustinkrebs commented 2 years ago

Hola Se pueden usar scaffolds en el proyecto de Ruby on Rails? Saludos!

Hola @bpeirano1 , lamentablemente no se pueden usar scaffolds para el proyecto de Rails.

Saludos!

@dlcartagena se puede transparentar el raciocinio de por qué no? Tengo entendido que no es una gema, sino que solo un comando de rails generate. Por otro lado, el único output del comando son cambios en archivos, no una funcionalidad específica delegada a un tercero/librería externa, por lo cual tampoco se tendría cómo saber si los endpoints generados fueron a partir del comando o hechos a mano.

Por otro lado, creo que es un poco tarde avisar esto a cuatro días de la entrega. Nosotros ya lo ocupamos y ese código ya está mergeado en nuestro back-end. Tendremos que hacer rollback y recrear los endpoints que nos generó tal cual pero "a mano" (dado que hay muchos que nos servían directo)?

igbasly commented 2 years ago

Hoola @agustinkrebs yo puedo responder por Diego esto!

La decisión de no permitir el uso de scaffold, es que precisamente el hecho que combina muchos comandos del comando generate de rails, por lo cual puede ser contraproducente para el desarrollo de sus aplicaciones. Por ejemplo, para los proyectos de React o Unity no se necesitan vistas y todos los archivos html generados por scaffold son innecesario, además que habría que adaptar todos los controladores para utilizar una REST API con JSON, lo cual significaría adaptar todos los tests para funcionar con controladores de API y no con render de vistas. Ahora, en el caso del proyecto de HTML + CSS si les puede servir de impulso en la parte de las vistas, pero scaffold además implementa vistas parciales con las cuales no sé si están familiarizados. En ese caso puede ocurrir que se dejen archivos fantasmas detrás lo cual no es bueno para su proyecto. Todo eso sin considerar la ventaja que tendrían frente a sus compañeros, donde su propósito es evaluar el uso de HTML con CSS. Sumado a todo eso, scaffold también implementa tests con Rails test, lo cual primero contradice el hecho de que no pedimos tests para la E3 y si ustedes los agregan nosotros asumiremos que es porque los hicieron apropósito y se evaluará su funcionamiento. Y segundo, en caso de estar utilizando otra herramienta de testing como RSpec, estos test no serían válidos y habría que convertirlos a su respectivo equivalente en RSpec.

Ahora, por supuesto que no queremos que hagan todo de nuevo, así que ya que ustedes implementaron cosas con Scaffold antes de que este mensaje saliera a la luz, pueden hablar con su ayudante para buscar una solución intermedia, no así los grupos que aún no han implementado cosas con Scaffold, lo cual será revisado.

Espero que esto se entienda y aclare el por qué de esta resolución.

agustinkrebs commented 2 years ago

Hoola @agustinkrebs yo puedo responder por Diego esto!

La decisión de no permitir el uso de scaffold, es que precisamente el hecho que combina muchos comandos del comando generate de rails, por lo cual puede ser contraproducente para el desarrollo de sus aplicaciones. Por ejemplo, para los proyectos de React o Unity no se necesitan vistas y todos los archivos html generados por scaffold son innecesario, además que habría que adaptar todos los controladores para utilizar una REST API con JSON, lo cual significaría adaptar todos los tests para funcionar con controladores de API y no con render de vistas. Ahora, en el caso del proyecto de HTML + CSS si les puede servir de impulso en la parte de las vistas, pero scaffold además implementa vistas parciales con las cuales no sé si están familiarizados. En ese caso puede ocurrir que se dejen archivos fantasmas detrás lo cual no es bueno para su proyecto. Todo eso sin considerar la ventaja que tendrían frente a sus compañeros, donde su propósito es evaluar el uso de HTML con CSS. Sumado a todo eso, scaffold también implementa tests con Rails test, lo cual primero contradice el hecho de que no pedimos tests para la E3 y si ustedes los agregan nosotros asumiremos que es porque los hicieron apropósito y se evaluará su funcionamiento. Y segundo, en caso de estar utilizando otra herramienta de testing como RSpec, estos test no serían válidos y habría que convertirlos a su respectivo equivalente en RSpec.

Ahora, por supuesto que no queremos que hagan todo de nuevo, así que ya que ustedes implementaron cosas con Scaffold antes de que este mensaje saliera a la luz, pueden hablar con su ayudante para buscar una solución intermedia, no así los grupos que aún no han implementado cosas con Scaffold, lo cual será revisado.

Espero que esto se entienda y aclare el por qué de esta resolución.

Gracias por la respuesta @igbasly! Quizás debí haber sido más específico, nosotros ocupamos rails generate scaffold_controller, el cual genera una base para los 5 endpoints/controladores típicos de una entidad (index, show, create, update, destroy) y actualiza el archivo de rutas para "habilitar" ese endpoint.

Por otro lado, nuestra app de Rails es solo back-end (fue generada con el flag --api), por lo que el comando tampoco genera ninguna vista en nuestro caso.

Lo único que sí hace que es innecesario es la creación de tests (como mencionas). Ante eso, podríamos simplemente eliminarlos en una PR aparte antes de la entrega?

pedroriosg commented 2 years ago

Hola! Quería saber si podemos usar la gema jsonapi-serializer, esto para crear un url para las imagenes guardadas en el storage y poder enviarlas al frontend.

Saludos

raimundoloeser commented 2 years ago

Hola! queria saber si se pueden usar jwt y bcrypt para el manejo de sesion y rswag para documentación junto con rspec

gracias

igbasly commented 2 years ago

Hola @agustinkrebs!

Entiendo con lo que me dices, en cuyo caso no puedo evitar pensar que era mucho más fácil solo utilizar el g controller. Dado que ya lo utilizaron, solo me queda decir que mejor lo hablen con su ayudante a cago para ver cómo lo hacen. Eso si, debo comentarles que el borrar un test no es considerado una buena practica para nada, ya que solo se hace si las cosas que se están testando ya no existen.

igbasly commented 2 years ago

Hola @pedroriosg! No estoy seguro de como planteas utilizar esa gema para el manejo de las imágenes. Si pueden profundizar un poco más en eso te lo agradecería.

igbasly commented 2 years ago

Hola! @raimundoloeser! Todas las gemas que mencionas se pueden utilizar, pero con cuidado 😉.

pedroriosg commented 2 years ago

Hola @pedroriosg! No estoy seguro de como planteas utilizar esa gema para el manejo de las imágenes. Si pueden profundizar un poco más en eso te lo agradecería.

Estoy guardando imagenes con ActiveStorage, pero para mostrarla en el frontend necesito un url. Entonces lo que hago con el serializador es poder mandar un product, pero con atributos que no están definidos en la tabla products (el url por ejemplo, que lo genero en el modelo pero no es un atributo directo del producto).

igbasly commented 2 years ago

@pedroriosg Entiendo, si lo estás ocupando para serializar tus objetos y de paso de ayuda con los assets del storage, entonces no hay problema, ya que si es solo para el url, hay otras formas de hacerlo que no requieren tanto como una librería para serializar.

martin-santiago commented 2 years ago

Hola, para el coverage de test, se puede usar la gema simplecov? en conjunto a MiniTest para los test de la api

pedroriosg commented 2 years ago

Hola! El porcentaje de cobertura es para el total de archivos? O para cada controlador/modelo por separado? Saludos!

aaossa commented 2 years ago

Hola, para el coverage de test, se puede usar la gema simplecov? en conjunto a MiniTest para los test de la api

Hola, sí puedes ocupar simplecov para el coverage. En cuanto a la librería para tests, queda a decisión de cada grupo si usar MiniTest, RSpec u otra (conversenlo con su ayudante primero), pero debe quedar explicado en el README por qué ocuparon esa librería y los resultados de coversage que obtuvieron

aaossa commented 2 years ago

Hola! El porcentaje de cobertura es para el total de archivos? O para cada controlador/modelo por separado? Saludos!

Hola, el porcentaje debería ser para el total de archivos en el back-end 👌