Arquitectura

Búsqueda difusa

Seguro que estás acostumbrado a usar criterios de búsquedas y a aplicar filtros a un conjunto de datos. Cada vez que usas un búscador como Google o DuckDuckGo lo haces. Habitualmente los criterios de búsqueda son aplicados usando algoritmos muy rígidos, que devuelven resultados donde las coincidencias de los datos con dichos criterios son exactas. Deja que te hable ahora sobre la búsqueda difusa (Fuzzy search), donde los algoritmos aplicados son más indulgentes, consiguiendo así que podamos lograr resultados a los que no accederíamos con los métodos expuestos anteriormente.

1 desafio 4 aspectos

Al iniciar el proceso de diseño de una arquitectura software, la primera dificultad que debes acometer es definir con sencillez la necesidad que nuestro desarrollo va a solucionar y cómo va a hacerlo. Este paso es realmente importante, y no imaginas la cantidad de ocasiones que se pasa por alto, lo cual provoca dificultades en fases posteriores del desarrollo e, incluso, el fracaso de algunos proyectos. El mejor modo de comenzar a hacerlo es dividir el desafío propuesto en cuatro aspectos fundamentales:

Definicion de arquitecura software

Lo normal es que tu expectativa de lo que vas a encontrar a continuación dependa de tu experiencia en el desarrollo de software. El concepto de arquitectura de software puede llegar a ser muy distinto dependiendo de la persona que lo use: Lo que comprende un desarrollador como arquitectura puede llegar a ser muy distinto de la idea de un probador o un técnico en devops. Esto hace que publicar una definición básica del concepto de arquitectura de software sea ciertamente arriesgado pero, basándome en lo que me gustaría haber encontrado cuando empecé a estudiarla, y amparado en que existe algún punto común, pues para todos implica la definición de una estructura, me atrevo a darte la que sigue:

Sin documentos no hay hockey

En su libro “Advanced PHP programming”, George Schlossnagle hace la siguiente afirmación: En mi empresa, el código producido para los clientes no se considera completo hasta que toda su interfaz externa de programación de la aplicación (API) y cualquier idiosincrasia interna están totalmente documentadas. Esta declaración de Schlossnagle es una buena señal de lo importante que puede llegar a ser la gestión de la documentación del código fuente dentro de un proyecto de desarrollo de software.