Blockchain es una tecnología descentralizada que permite almacenar y compartir información de forma segura.
Atendiendo a su diseño no existe un único actor con la capacidad de acceder a la información y gestionarla, por tanto, se debe establecer un mecanismo de consenso entre todos los actores capaces para realizar dichas acciones. Esto es lo que le otorga a Blockchain su caracter descentralizado.
Cuando se alcanza una determinada cantidad de información a almacenar, esta se empaqueta en un bloque junto un hash del contenido del último bloque existente.
El compromiso del equipo de React, desde la aparición de los componentes funcionales, siempre ha sido hacer que estos fueran más eficientes que los componentes basados en clases. De hecho, si le preguntas a cualquier desarrollador que use React, seguro que afirma convencido que son mucho más rápido y eficientes, aunque la realidad es que, en el momento de escribir estas líneas, apenas existe una diferencia de segundos entre componentes funcionales y componentes basados en clases.
Si has usado React para desarrollar aplicaciones web seguro que ya sabes que cuando un componente es modificado, ésta biblioteca de código de Javascript crea un DOM virtual para compararlo con el DOM actual y, de este modo, calcular si es necesario actualizarlo. A este proceso de actualizar el DOM actual cuando es necesario, para mantenerlo sincronizado con el DOM virtual, se le llama Reconciliación.
Si usáramos un algoritmo de vanguardia para calcular el número mínimo de operaciones necesarias para transformar un árbol de nodos como el DOM en otro, la complejidad sería del orden de O(n³), donde n es el número de elementos en el árbol.
Creo que no es la primera vez que te cuento que, habitualmente, en las empresas del sector los equipos se plataforman con sistemas operativos Windows. En Windows las líneas de código finalizan con un retorno de carro y un salto de línea, CRLF, pero en Linux y Mac, dichos finales se representan únicamente con saltos de línea, LF. En la gestión de un proyecto donde los programadores usan distintos sistemas operativos, o simplemente deseas mantener un tipo de fin de línea distinto al del sistema operativo que estas usando en el desarrollo, puede ser muy frustrante gestionar los cambios entre versiones de código.