Los Que Viajan En El Tiempo Blockchain Desarrollador
Post invitado por Juan deVadoss de Neo
Juan es el Jefe de Desarrollo de Neo.
El blockchain sigue adelante, siempre adelante, implacable, en una inexorable viaje para añadir nuevas transacciones y crear nuevos bloques para añadir a la descentralizadas de contabilidad. Es inmutable, la creación de una licencia perpetua, permanente y fija el historial de transacciones.
El cifrado de máquina de estados de la infraestructura que los poderes de este descentralizado de contabilidad ha llevado a una ola de innovación sin precedentes en la historia de la informática; sin embargo, esto también ha desafiado los límites convencionales de desarrollo de software y, específicamente, la depuración de herramientas y técnicas.
Errores y Depuración en una Cadena
Máquinas de estado puede hacer perfectamente exacto errores; el código es escrito por los seres humanos después de todo y los Errores son un hecho de la actividad humana. Sin embargo, errores en una blockchain tiene una enorme repercusión debido a la inmutable naturaleza subyacente de la contabilidad, como cualquiera de nosotros, que están familiarizados con el DAO son plenamente conscientes.
Como industria, nos corresponde a la dirección esta en la cabeza -. Tenemos que asegurarnos de que los desarrolladores tengan la mejor de las herramientas que se requieren; y que nuestros enfoques de desarrollo de software tienen la madurez profesional que nuestros clientes y los usuarios demandan de nosotros.
Cuando damos un paso atrás y analizar el contexto de los errores de software en una cadena, rápidamente nos damos cuenta de que existen en realidad dos preguntas relacionadas – en primer lugar, identificar el error, y en segundo lugar, la comprensión de cómo exactamente el estado de la máquina se metió en esa situación.
Tradicionalmente, los registros tienden a ser eficaces en darnos la identidad del verdadero problema, y como una industria de la que nos han metido bien en la captura de excepciones y errores en nuestros registros. Sin embargo, los registros de la dirección, en el mejor de la mitad del problema. Los registros de simular el efecto de dejar migas de pan para el desarrollador, y el optimista esperanza es que son adecuados a dar el desarrollador de una brújula con el fin de predecir y pronosticar los diversos escenarios que se está ejecutando el código en el Mainnet.
La orientación basada en la información sobre la identidad del verdadero problema, el desarrollador luego se pone en un apretado lazo interno de establecer puntos de interrupción, la ejecución del cursor, caminar dentro y fuera de los métodos. Horas, y días en que se gastan en este ciclo de software de arqueología; sin embargo, tan pronto como un nuevo relativamente complejo problema se produce en la Testnet o Mainnet nos vemos obligados de nuevo al cuadrado uno.
Ahora, para empeorar las cosas, por lo general hay un par de la insidiosa errores donde los efectos observables a menudo son separados en el tiempo y/o espacio de la ubicación del error. En este punto, los enfoques tradicionales de bastante acabar con los desarrolladores básicamente abdicar y proporcionar la respuesta clásica: ‘pero, funciona en mi máquina …’.
Un Nuevo Enfoque – Viajes A Través Del Tiempo De Depuración
Lo que si pudimos con precisión y repetiblemente registro y volver a examinar los eventos, con el fin de examinar paso a paso de cómo el estado de la cadena de cambios y cuándo y por qué ciertas acciones que se realizan en la cadena?
Sí, ¿qué tal si esos ocultar los errores que todos hemos encontrado tarde en la noche y deseó fervientemente que podríamos precisamente reproducir podría ser una cuestión de la reproducción de la cinta hacia delante y hacia atrás?
El tiempo de Viaje de Depuración simplifica enormemente la depuración al permitir que los desarrolladores fácilmente paso hacia adelante y hacia atrás a través de la ejecución de código. El Viaje en el tiempo de Depuración sida, el desarrollador, lo que les permite «rebobinar» su depuración, en lugar de tratar (a menudo sin éxito) para reproducir el error. Además, yendo atrás en el tiempo y con una mayor comprensión del contexto, el desarrollador puede «repetir» el escenario tantas veces como se desee, mientras que examinar cada paso que conduce al error y averiguar la mejor manera de solucionar el problema con el código.
El tiempo de Viaje de Depuración acelera el desarrollador de editar, compilar, construir y depurar bucle mediante el empoderamiento de las desarrollador para registrar la ejecución de la ejecución de código en el blockchain, y posteriormente volver a ejecutarlo sin tener en cuenta el pasado o el futuro; lo hace de manera eficiente mediante la adición de tan poca carga como sea posible mediante la captura de la ejecución de código en archivos de seguimiento.
Lo que hace que el Tiempo de Viaje de Depuración único
Históricamente, la telemetría y los registros se han utilizado para permitir un ligero, condicionada por el escenario enfoque para la detección de la identidad de el problema con el código. Sin embargo, el ‘unknown-unknown’ escenarios son el Talón de Aquiles de este enfoque; surgen problemas inesperados rutas de código, sin telemetría.
Los vertederos han sido otro de baja tecnología hacia la depuración; no hay ningún requisito para cualquier iniciales de codificación, y los sucesivos vertederos o las instantáneas se utilizan para crear la ilusión de un simple de series de tiempo de la vista.
Vivir la depuración es la práctica tradicional de sólo avance de depuración; una combinación de puntos de corte, puntos de observación y otros de carácter general en tiempo de ejecución-características del depurador servir como marcadores para ayudar a los desarrolladores a encontrar errores. El desarrollador se ejecuta el código hasta que llega un punto de interrupción y analiza los problemas que aparecen en esa sección en particular de código. En algunos casos, esto funciona perfectamente bien, sin embargo, por lo general, el desarrollador no sabe qué sección pertinente del código produjo el error: un gran problema cuando el código se ejecuta en un blockchain.
Tradicional depuradores de permitir a los desarrolladores a paso a través de la línea-por-línea y estar en la búsqueda de un insecto; sin embargo, este enfoque es mucho más difícil de aplicar en el caso de duro para reproducir errores, como el desarrollador tiene poca o ninguna información disponible acerca de las circunstancias que conducen al error.
A este, y a menudo con gran detrimento, son los retorcidos errores mencionados anteriormente, donde los efectos observables están separados en el tiempo y/o espacio de la ubicación del error. Un ejemplo clásico de esto es donde el estado de métodos de lectura (que en realidad puede estar libre de errores) acceso dañado el estado resultante de una función o funciones (donde el error se presente) invoca anteriores en el tiempo.
El tiempo de Viaje de los Depuradores son la forma más útil solución para estos tipos de fallos como el programador puede caminar a través de la ejecución del programa hacia atrás, así como hacia adelante, en orden a casa en un punto de interés, lo que les permite encontrar la causa raíz de los dos extremos del programa en lugar de uno.
El tiempo de Viaje de Depuración permite un potente conjunto de técnicas y herramientas que excel en ayudar a los desarrolladores a corregir el complejo de los bichos. Además, en aquellos escenarios en los que un desarrollador no es capaz de averiguar por qué un cierto error está sucediendo, ellos pueden compartir la información con un compañero de trabajo que puede mirar y examinar con fidelidad lo que él/ella estaba mirando. De esta forma se hace mucho más fácil la colaboración y el desarrollo del equipo.
Mirando hacia el futuro
Bienvenido al mundo de los que viaja en el tiempo de los desarrolladores.
Nuestro objetivo es mejorar la vida de los desarrolladores y una vez más, Neo es elevar el nivel de la experiencia del desarrollador.
Estamos muy contentos de ofrecer Viajes a través del Tiempo de Depuración a nuestros desarrolladores y a nuestras comunidades en todo el mundo. Por primera vez, blockchain los desarrolladores pueden ir hacia adelante y hacia atrás en el tiempo para entender, analizar y corregir el complejo de los bichos, todo mientras se trabaja a nivel de código fuente. Estamos empujando el sobre como seguimos para cumplir nuestra promesa de las más amigable para los desarrolladores blockchain de la plataforma.
El Neo team continúa en nuestra misión de llevar a millones de desarrolladores de Neo y el blockchain mundo, y para hacer realidad la visión de la Economía Inteligente.
Post invitado por Juan deVadoss de Neo
Neo es un código abierto, impulsado por la comunidad de la plataforma que es el aprovechamiento de las ventajas intrínsecas de la tecnología blockchain para darse cuenta de la optimización mundo digital del futuro.
Aprender más