Inicio rápido | Beneficios | ¿Por qué? | Objetivos | Estado del proyecto | Discordia | Discusiones de Github | Problemas de GitHub | Que contribuye
Bitloops Language (BL) es un lenguaje específico de dominio de alta productividad (DSL) que lo ayuda a concentrarse en la lógica comercial de su aplicación, que es lo que realmente importa.
Incorpora las mejores prácticas de desarrollo de software y metodologías de diseño como DDD, BDD y arquitectura hexagonal en capas/hexagonales.
Bitloops Language Guide y permite a cualquier desarrollador de software escribir código limpio y crear un software de alta calidad y bien diseñado. Esto es particularmente relevante para el software de aplicación de servidor que tiene requisitos comerciales complejos y con frecuencia. Con BL, los desarrolladores pueden construir software utilizando principios como la separación de preocupaciones, acoplamiento suelto, alta cohesión y segregación de responsabilidad de consulta de comandos (CQRS), que aseguran que los sistemas sean más fáciles de entender, mantener y cambiar.
Con el lenguaje bitloops, los desarrolladores pueden:
En esencia, los desarrolladores de software pueden centrarse en lo que mejor hacen: ¡resolver problemas! Con los desarrolladores de lenguaje Bitloops escriben un código que permitirá a otros desarrolladores (e incluso a sí mismos después de 6 meses) comprender y construir fácilmente sobre ese código.
️ Tenga en cuenta que el lenguaje Bitloops está en sus primeras etapas y bajo un desarrollo muy activo. Espere errores y limitaciones. Cualquier compatibilidad hacia atrás no está garantizada antes de llegar a V1.0.0.
La mejor y más rápida forma de comprender cómo el lenguaje Bitloops le ayuda a escribir código limpio y un excelente software es seguir las instrucciones a continuación. Con este tutorial, ejecutará y ejecutará una aplicación Bitloops TODO, aprenderá cómo funciona Bitloops y verá los archivos de salida en TypeScript y apreciará cómo funciona el lenguaje Bitloops.
Si enfrenta algún problema (especialmente con Windows), verifique la sección de problemas comunes a continuación.
Bitloops todavía no ha creado binarios, por lo que la mejor manera de instalar y ejecutar el transpilador es instalar la CLI del lenguaje Bitloops como un paquete global de NPM. Copie lo siguiente y ejecutarlo en su IDE:
npm install -g @bitloops/bitloops-language-cliAlternativamente, puede usar hilo:
yarn global add @bitloops/bitloops-language-cliLa aplicación Bitloops TODO está fácilmente disponible para la clonación. Puede extraer los archivos siguiendo el enlace o clonarlo usando el comando a continuación:
git clone https://github.com/bitloops/bitloops-language.gitEl siguiente paso es traspilar el código de la aplicación TODO del código de idioma bitloops al código de mecanografiado. Transpile proviene de la palabra transcompile, y significa la traducción del código de un lenguaje de programación a otro.
MacOS / Linux
bl transpile -s bitloops-language/examples/todo/bl-source/ -t outputWindows
bl transpile -s bitloops-languageexamplestodobl-source -t outputo
bitloops-language transpile¡Eso es todo! Ahora puede ejecutar lo siguiente para ver cuántas líneas de código se guardó (Alerta de spoiler: ¡77% o 2141 LOC!)
bl analyze-lines -bl bitloops-languageexamplestodobl-source -ts ./outputOk, ¿ahora tienes toda la lógica de tu negocio en un código mecanografiado bien estructurado?
¡El alcance del lenguaje bitloops termina aquí, pero con Bitloops, puede generar automáticamente todo lo demás usando Bitloops Magic y AI! Bitloops generará para usted un proyecto nest.js y toda la infraestructura requerida (Grpc o controladores REST, adaptadores de repositorio para PostgreSQL o Mongo, etc.), así como archivos Docker o K8s para implementar su sistema. Para obtener más información sobre el proceso automático de bitloops [haga clic aquí].
Alternativamente, puede usar cualquier marco que desee o simplemente un servidor Express o Fastify Server, etc.
Set-ExecutionPolicy -ExecutionPolicy RemoteSignedExisten numerosos grandes lenguajes de programación con bases e inversiones masivas y de crecimiento. Sin embargo, el problema más común que enfrentan las organizaciones que construyen y mantienen sistemas, con equipos de desarrolladores que trabajan en ellos, es una buena arquitectura y diseño de un sistema de servicios interconectado;
Diseñando un sistema complejo para que pueda durar el tiempo y permitirá a los desarrolladores (cariñosos existentes y nuevos) trabajar en su base de código con una productividad constante (o con suerte) es muy difícil.
Las buenas pruebas son un requisito importante adicional de productos duraderos que también es posible por una buena arquitectura y diseño. Desafortunadamente, no hay suficientes ingenieros senior con conocimientos y experimentados en todo el mundo para construir y mantener excelentes sistemas para todos los que los necesitan. Incluso cuando una empresa tiene la suerte de tener algo, no puede contratar más ingenieros junior que los mayores pueden revisar su trabajo y guía para asegurarse de que el sistema no se degrade con el tiempo debido a las malas decisiones de diseño.
El lenguaje Bitloops es el primer lenguaje de programación que tiene como objetivo abordar estos problemas haciendo que sea mucho más fácil adoptar importantes principios y patrones de ingeniería de software, como el diseño basado en el dominio y el desarrollo basado en el comportamiento, sin requerir muchos años de experiencia para hacerlo con éxito. Como resultado, el trabajo de los ingenieros senior puede aprovecharse aún más y las contribuciones de los ingenieros junior aumentaron significativamente.
Cada ingeniero de software tiene un objetivo común: queremos escribir un mejor código y crear un mejor software, ¡y queremos hacerlo más rápido!
Sin embargo, esto solo se puede lograr con dedicación, aprendizaje y experiencia significativas y continuas, lo que lleva mucho tiempo. Bitloops quiere reducir significativamente el tiempo que lleva a un desarrollador comenzar a construir un software de alta calidad, y hemos construido el lenguaje Bitloops que ya incorpora muchas de las mejores prácticas de desarrollo de software y metodologías de diseño.
En última instancia, los objetivos de BL son:
El lenguaje Bitloops tiene como objetivo definir y retener una sintaxis simplista que estará lo más cerca posible del lenguaje humano y la lógica comercial que se volverá atemporal, ayudando a adoptar y usar un lenguaje ubicuo dentro de cada módulo o contexto limitado. Entonces es el trabajo de BL traspilar a la sintaxis moderna y actualizada de su idioma de destino.
Hacer que el lenguaje Bitloops sea un lenguaje transpilado fue una decisión central para lograr exactamente esto. Al permitir que las oraganizaciones escriban su lógica comercial en un lenguaje atemporal que se pueda traspilar a poderosos, pero también cambie los idiomas objetivo sin cargar a los usuarios del lenguaje Bitloops con esta tarea. El lenguaje Bitloops se asegurará de que se transfiera a un código optimizado de idiomas relevantes, actualizados y de la tarea.
El lenguaje Bitloops se encuentra actualmente en las primeras etapas. Su transpilador se ha creado como una prueba de concepto y no está destinada a cubrir la gama completa de escritura de código creativo de desarrollador en esta etapa.
Queremos comprender mejor si podemos construir un idioma que satisfaga sus necesidades y si podemos reunir una masa crítica de interés dentro de la comunidad DDD y fuera de él.
Hay muchas cosas que queremos agregar en el futuro, incluido
Si está interesado en contribuir, ¡nos encantaría su ayuda!
Si ya conoce los conceptos DDD (agregados, objetos de valor, casos de uso, controlador, etc.) y sabe cómo codificar en cualquier lenguaje de programación moderno, debería ser realmente fácil elegir el lenguaje Bitloops. Está construido a partir de un conjunto consistente de construcciones de lenguaje que deberían sentirse familiares y ser fácil de leer y comprender.
Si bien Bitloops es un lenguaje orientado a objetos, no tiene una clase genérica. Las clases específicas de bitloops se incorporan de la siguiente manera: valueObject, entidad, entidad raíz, comando, comandante, consulta, consulta, dto, accesorios, OK, AplicationError, dominio de dominio, error, etc.
Código de lenguaje de Bitloops como este (11 líneas):
// Bitloops Language:
Rule TitleOutOfBoundsRule ( title : string ) throws DomainErrors . TitleOutOfBoundsError {
isBrokenIf ( title . length > 150 OR title . length < 4 ) ;
}
Props TitleProps {
string title ;
}
ValueObject TitleVO {
constructor ( props : TitleProps ) : ( OK ( TitleVO ) , Errors ( DomainErrors . TitleOutOfBoundsError ) ) {
applyRules ( TitleOutOfBoundsRule ( props . title ) ) ;
}
}Transpiles a este código TypeScript (28 líneas):
// TypeScript:
import { Domain , Either , ok , fail } from '@bitloops/bl-boilerplate-core' ;
import { DomainErrors } from './errors' ;
export class TitleOutOfBoundsRule implements Domain . IRule {
constructor ( private title : string ) { }
public Error = new DomainErrors . TitleOutOfBounds ( this . title ) ;
public isBrokenIf ( ) : boolean {
return this . title . length > 150 || this . title . length < 4 ;
}
}
export namespace Rules {
export class TitleOutOfBounds extends TitleOutOfBoundsRule { }
}
interface TitleProps {
title: string ;
}
export class TitleVO extends Domain . ValueObject < TitleProps > {
get title ( ) : string {
return this . props . title ;
}
private constructor ( props : TitleProps ) {
super ( props ) ;
}
public static create ( props : TitleProps ) : Either < TitleVO , DomainErrors . TitleOutOfBounds > {
const res = Domain . applyRules ( [ new Rules . TitleOutOfBounds ( props . title ) ] ) ;
if ( res ) return fail ( res ) ;
return ok ( new TitleVO ( props ) ) ;
}
} Para preguntas y soporte, utilice nuestro canal oficial de discordia. No dude en unirse si está buscando obtener más información sobre los patrones de diseño de desarrollo de software.
Somos un pequeño equipo en una misión para democratizar el código bien diseñado y el software de alta calidad, ¡y tomaremos toda la ayuda que podamos obtener! Si desea participar, consulte nuestras pautas de contribución para aprender cómo y dónde podríamos usar su ayuda. Nuestro objetivo es identificar las buenas instancias para que pueda comenzar rápidamente a contribuir y aprender.
Asegúrese de leer nuestras pautas de problemas de informes antes de abrir un problema. Los problemas que no se ajustan a las pautas pueden cerrarse de inmediato.
Para obtener ayuda general con el lenguaje bitloops, utilice uno de estos canales:
Bitloops Language tiene una Licencia Pública General de GNU V3.0. Consulte el archivo de licencia para obtener información sobre licencias.
Bitloops siempre está buscando grandes personas para contribuir al lenguaje y la plataforma de Bitloops. Si está interesado en unirse a un equipo que quiere mejorar radicalmente cómo se construye el software en el futuro, envíe su carta de presentación CV + (muy importante) + perfil de GitHub a: [email protected]