January 13, 2020
Curso de plantillas en C++: uso en funciones
Antes de continuar con las funciones quedó pendiente la sintaxis de las plantillas:
Bueno, creo que está claro: se usa la palabra reservada <strong>template</strong> y entre brakets (los simbolitos ‘<‘ y ‘>‘) se pone la lista de cosas que queremos que se puedan hacer plantilla. Finalmente va la parte sobre la que vamos a aplicar la plantilla, que puede ser una estructura o unión, una clase, una función, un renombrado de tipo con using (a partir del estándar de 2011) o una declaración de variable (a partir del estándar de 2014).
read moreOctober 25, 2019
Curso de plantillas en C++: primeros pasos
En la entrada anterior introdujimos por encima las plantillas. Seguro que generó más dudas que otra cosa, así que vamos a empezar a ver chicha código.
¿Qué resuelven las plantillas? En lenguajes como C o Pascal implementamos algo tan básico como una lista enlazada tal que así:
En el caso 1, el problema es que hay que hacer una implementación por cada tipo de dato que queramos. Esto es bastante esfuerzo y, sobre todo, mucho trabajo de mantenimiento en caso de problemas.
read moreOctober 17, 2019
Curso de plantillas en C++: qué son las plantillas y para qué sirven
Las plantillas en C++ son un mecanismo que nos pertite crear tipos y funciones dependientes de otros tipos y valores no definidos. El mejor modo de entenderlo es pensando en un formulario, por ejemplo, el típico formulario de una administración pública, donde hay un montón de texto y huecos que rellenar. Cada hueco recibe un valor. La plantilla es parecido, es definir un tipo o función donde dejamos huecos para ser rellenados más tarde.
read moreJuly 30, 2018
El desarrollador como impedimento de Scrum
No hace mucho tiempo que hemos empezado a utilizar Scrum como framework para los desarrollos que hacemos en el trabajo. En este corto periodo de tiempo he visto mucha información sobre los problemas en las grandes empresas en la adopción de Scrum (renombrado de roles, «flexibilización» de Scrum, etc.). No voy a entrar en detalles en esto porque ya hay mucho.
Un problema que he visto es que no sólo la empresa puede ser un obstáculo para la adopción de Scrum (y cualquier sistema ágil), sino que los propios desarrolladores pueden ser un obstáculo.
read moreJanuary 31, 2017
Como hacer que tu código sea legible
Reconozco que no soy el mejor programador del mundo, pero intento mejorar cada día. Puede sonar tonto, pero una de las mayores complicaciones del trabajo de un programador es conseguir que el código que escribes un día sea entendible por otras personas !y nosotros mismos! en el futuro.
Casi todo lo que voy a contar a continuación lo he aprendido a partir de diversas lecturas y por propia experiencia.
Algunos de los consejos más útiles que creo que son importantes tener en cuenta son:
read moreMay 11, 2016
Perezosidad
Algo que me ha sorprendido mucho de haskell y, que aún me cuesta mucho lidiar con ello, es el hecho de que sea perezoso.
¿Y eso qué significa?
Significa que no va a ejecutar las cosas sin más, sino que se esperará hasta que no le quede más remedio.
Por ejemplo, si tenemos algo como esto:
Como se puede ver, se «crea» una lista de infinitos elementos que empiezan en 1 (intinite_list).
read moreOctober 23, 2015
Aprendiendo haskell
Ya hace unos meses que, con tiempo que dispongo, estoy aprendiendo haskell. El motivo principal es que quería empezar con un lenguaje que fuera completamente distinto a los que ya conozco.
Confieso que de momento me parece todo un galimatías. Si bien llego a resolver algunos problemas sencillos, aún me pierdo con cosas medianamente complejas.
Además, para ir aprendiendo e ir estrujándome los sesos utilizo codewars para ir resolviendo ejercicios. Creo que es un buen modo para ir tomando contacto con el lenguaje.
read moreOctober 22, 2015
La necesidad de invertir en herramientas
Supongo que de una vez os habrá pasado que ante ciertas tareas (tanto de desarrollo como de administración) repetís una y otra vez las mismas acciones o el mismo código. Otras veces, simplemente os encontráis que hay cosas que son fáciles de automatizar, pero no se hace (por ejemplo, rellenar cierto tipo de fichero en donde hay patrones muy comunes).
En este punto surge un gran problema: no se quiere automatizar/desarrollar herramientas que faciliten dicha tarea.
read moreFebruary 26, 2015
Control de errores
Uno de los grandes problemas al programar es realizar el control de los errores. Por diversos motivos me ha tocado hacer un trabajo de estudio sobre qué opciones tenemos para realizar el control de los errores de una aplicación.
La verdad es que hubiese estado muy bien hacer una tormenta de ideas al respecto, pero en estos momentos estamos todos demasiado atareados.
El siguiente texto, sin pretender ser una guía exhaustiva de lo que es el control de errores, sí busca poner un punto de partida para todo aquel que quiera ver qué mecanismos hay para este fin.
February 13, 2015
Tratamiento de cadenas en C
Cuando empezamos a programar en C una de las cosas que probablemente más nos cuesta controlar es el tratamiento de cadenas.
El lenguaje C es de bastante bajo nivel, por lo que sus tipos de datos básicos son muy cercanos a lo que la máquina puede utilizar. Los ordenadores no entienden de cadenas, pero sí de direcciones de memoria. De hecho, no existe un tipo de cadena, sino que se usan arrays de bytes.
read more