Haz click para quitar el zoom

Werft-projects

Werft-projects Logo

Sistema centralizado para construir proyectos web caracterizado por su facilidad de uso y flexibilidad

Se recomienda ver esta página en una pantalla grande
Werft-projects es una herramienta que proporciona una infraestructura sobre la que construir proyectos web de todo tipo, desde blogs y páginas web hasta plataformas e-commerce y aplicativos industriales, centrándose en su facilidad de uso y flexibilidad. Facilita la vida del programador, gracias a su reactividad, comodidad de uso y gestión eficiente de todos los recursos necesarios para la construcción de productos web. Por otro lado, es flexible a la hora de incorporar nuevas funcionalidades, tecnologías o formas de procesamiento de los activos web.
Vista general de Werft-projects
arquitectura

Dispone de nueve módulos de procesamiento, de los cuales siete están centrados en la construcción de activos web para el cliente (frontend). Cada uno de los módulos dispone de una serie de canales de procesamiento, encargados de generar, modificar o compilar los ficheros o activos entrantes, contribuyendo a la construcción del producto web final.

Algunos de estos módulos abordan tareas como:
  • Transpilar el código JavaScript partiendo de lenguajes más abstractos y versiones modernas aún no soportadas por las plataformas destino
  • Generar código CSS multi-dispositivo gracias a la expresividad de lenguajes y librerías más cómodas
  • Proporcionar una plataforma de testing de dispositivos que se retroalimenta de los cambios en los ficheros fuente y permite depurar los errores cómodamente
  • Realizar un seguimiento de los recursos web (imágenes, fuentes, etc) y optimizarlos para consumir menos espacio y aprovechar técnicas de caching

Su diseño contempla 3 modos de procesamiento: 1) servidor http simplificado y personalizable de cara a enmascarar (mock) el servidor real, facilitando la gestión de peticiones, sirviendo estáticos y pudiendo generar endpoints como en la API del servidor real; 2) cliente donde se explota todo el potencial para el desarrollo de frontends de aplicación; y 3) refinery (refinería) como lugar donde se desarrollan prototipos y componentes del sistema cliente de la manera más rápida posible.

detalle

El siguiente diagrama muestra el flujo de procesamiento interno de uno de estos módulos, el encargado de generar los ficheros de código JavaScript finales. Dispone de optimizaciones tanto a nivel de procesamiento paralelo como en manipulación de streams, acelerando el proceso de interpretación, limpieza y construcción. Además, gracias al uso de multiplexación de canales, permite la incorporación de nuevos procesadores capaces de proporcionar nuevas funcionalidades al sistema, aumentando su flexibilidad.

Su creación supuso un claro avance, ya que otorgaba funcionalidades no vistas en ningún otro sistema, pero desde entonces se ha ido ampliando y optimizando. Además de soportar los últimos avances en JavaScript experimental (@next), proporciona un soporte total a macros Sweet.js, potenciando la expresividad del lenguaje. Los componentes web (m-forms) son tratados como entidades de primer orden bajo este sistema, incorporando características como la internacionalización directamente desde ficheros de traducciones (yml), o la interpretación de vistas en tiempo de compilación basadas en plantillas (pug o twig).

Flujo de procesamiento de JavaScript en Werft-projects Haz click para ampliar la imagen
detalle

Refinery se ideó a raíz de todo el sistema cliente y servidor de Werft-projects, pero simplificando y concentrando las tareas vitales en un solo hilo, realizando múltiples optimizaciones y convenciones que permiten desarrollar prototipos y frontends realmente rápido. Una vez que los prototipos son consolidados se exportan como componentes de primer orden de Werft-projects, incorporándolos al modo de procesamiento cliente.

Como se puede observar en el módulo refinery, el procesamiento de JS adquiere el centro de atención durante todo el flujo de procesamiento, aunque existen tareas encargadas de la gestión de otros activos (css, html, estáticos). Este módulo es altamente optimizado y paralelizado de cara a levantar instancias de trabajo y computar rápidamente de cara a minimizar los tiempos REPL (bucle de lectura-evaluación-impresión) durante la sesión de prototipado, disminuyendo enormemente los tiempos de desarrollo gracias a un alto nivel de interactividad (programador - producto final).

Flujo de procesamiento de la refinería de Werft-projects Haz click para ampliar la imagen
rendimientoextensibilidad
Werft-projects no solo se diseñó con la flexibilidad y facilidad de uso en mente, sino que se preparó con vistas al futuro, otorgándole facilidades para la modificación y adaptación ante nuevas técnicas, librerías y tecnologías web. Gracias a esto, se ha beneficiado de los ciclos de investigación interna de Group4Layers, proporcionando mejoras significativas en cuanto a consumo de recursos (RAM) y tiempos de computo (CPU), aprovechándose de nuestras técnicas de optimización y paralelismo. A continuación se muestra la repercusión tanto en los módulos de procesamiento como en los tres modos de desarrollo.
Gráfico de optimizaciones de los módulos de procesamiento de Werft-projects Haz click para ampliar la imagen
Gráfico de optimizaciones de los modos de desarrollo de Werft-projects Haz click para ampliar la imagen
lanzamiento
Se concibe durante 2015, y desde entonces ha servido en multitud de proyectos web, realizando todo tipo de adaptaciones, actualizaciones de software y mejoras específicas teniendo en cuenta las necesidades de cada proyecto. Debido a su centralización, sigue siendo utilizado para proyectos y prototipados que tienen que lanzarse en tiempo record.
Group4Layers te puede ayudar
¿Estás interesado en potenciar tus desarrollos web y realizar prototipados más rápidos? ¿Deseas optimizar tus infraestructuras de desarrollo web? Podemos ayudarte a diseñar y optimizar mecanismos específicos para tu modelo de negocio basado en tecnologías web.

Este sitio web emplea cookies propias y de terceros para analizar el tráfico y ofrecerle una mejor experiencia. Al navegar o utilizar nuestros servicios el usuario está aceptando su uso.Más información.