Antonio J. Tomas
@antonioj-tomas
Alicante, Spain

@antonioj-tomas
Alicante, Spain
Antonio J. Tomas@antonioj-tomas
It's very important that you never use !important.
Antonio J. Tomas@antonioj-tomas
Creía que sabía algo de HTML, pero con este curso he aprendido los detalles que realmente hacen que entienda realmente para qué sirve cada tag.
Un placer haber seguido este curso, con explicaciones tan precisas y prácticas a la vez. Enhorabuena, seguiré con CSS a ver que tal se me da.
Antonio J. Tomas@antonioj-tomas
Estimada comunidad, haciendo el ejercicio de este video, me he encontrado con que en la segunda linea, cuando voy a usar la propiedad content de template, VSCode no me la sugiere, y es más me cambia el contenido el cual tengo que forzar. ¿Alguien sabe por qué?
Adjunto captura:

Antonio J. Tomas@antonioj-tomas
Personalmente creo que el type coertion, es el origen de muchos fallos en programación con lenguajes de tipado dinámico. Prefiero personalmente el tipado fuerte, que evita muchos fallos.
Antonio J. Tomas@antonioj-tomas
Profesor, he leído varias veces este término, pero estoy confuso al respecto de su significado. Se trata de una librería de JS, o es un standard concreto de JS ?. Gracias.
Antonio J. Tomas@antonioj-tomas
Muy buen contenido. Por favor, profesor Lozada, planteese hacer un taller sencillo con este midlleware: https://github.com/swaggo/echo-swagger , o cualquier otro similar. Sería ideal poder aprender a genera documentación del REST API con el standard Swagger.
Antonio J. Tomas@antonioj-tomas
Según lo entiendo yo, además del tx.Rollback(), sería necesario salir totalmente de esa zona de ejecución, para evitar que se nos produzcan panics en las lineas posteriores. Además Rollback() tb devuelve un error a controlar, y tx.Commit() tb.
Antonio J. Tomas@antonioj-tomas
He mirado en la documentación: https://golang.org/pkg/database/sql/#Rows.Close, y literalmente dice:
"If Next is called and returns false and there are no further result sets, the Rows are closed automatically and it will suffice to check the result of Err."
Si llamamos a Next() y devuelve falso y no hay más resultados, Rows es cerrado automáticamente, y bastará con chequear el resultado de Err().
Esto haría innecesario el hacer el defer rows.Close(). He visto mucho código de acceso a MySQL, que no hace uso de esta sentencia en el mismo.
Por lo que entiendo yo, el uso de esta sentencia solamente previene seguir enumerando en un futuro (Close closes the Rows, preventing further enumeration ), pero esto solo lo veo posible, en el hipotético caso de que se vuelva a hacer uso de la misma variable rows, más adelante.
Antonio J. Tomas@antonioj-tomas
La explicación es espectacular, solo quería añadir como ejemplo de los paquetes de Go, como receptor de valor, el caso del paquete "time", donde tanto los tipos Duration y Time, usan este tipo de receptor, ya que aquí solo se requiere acceder a los valores, y no se requiere el cambiarlos.
Me encantan estos ejemplos claros y directos que dejan clara la filosofía de Go al respecto de este tema. Excelente explicación.
Antonio J. Tomas@antonioj-tomas
Yo entiendo que Go permite la composición, que es un mecanismo más dinámico para construir objetos que la herencia donde suponer con mucha antelación, la forma futura en que se usará mi programa. Por lo que desde mi punto de vista, Go es totalmente orientado a objetos desde ese punto de vista. La herencia se creó como método de creación de nuevos objetos a partir de otros preexistentes, y esto tb se puede abordar mediante composición. Me parece un acierto por parte de los creadores del lenguaje Go.