Iniciar rápido | Benefícios | Por que? | Objetivos | Status do projeto | Discord | Discussões do Github | Questões do GitHub | Contribuindo
A linguagem Bitloops (BL) é uma linguagem específica de alta produtividade e domínio (DSL) que ajuda você a se concentrar na lógica de negócios do seu aplicativo, que é o que realmente importa.
Ele incorpora as melhores práticas e metodologias de design de desenvolvimento de software, como DDD, BDD e arquitetura em camadas/hexagonal.
O Bitloops Language Guida e capacita qualquer desenvolvedor de software para escrever código limpo e criar software de alta qualidade e bem projetado. Isso é particularmente relevante para o software de aplicativos de servidor que possui requisitos de negócios complexos e frequentemente. Com o BL, os desenvolvedores podem criar software usando princípios como separação de preocupações, acoplamento frouxo, alta coesão e segregação de responsabilidade de consulta de comando (CQRS), que garantem que os sistemas sejam mais fáceis de entender, manter e mudar.
Com a linguagem Bitloops, os desenvolvedores são capazes de:
Em essência, os desenvolvedores de software podem se concentrar no que fazem de melhor: resolver problemas! Com os desenvolvedores de idiomas Bitloops, escrevem código que permitirá que outros desenvolvedores (e até a si mesmos após 6 meses) entendam e construam facilmente sobre esse código.
️ Lembre -se de que o idioma Bitloops está em seus estágios iniciais e sob desenvolvimento muito ativo. Espere bugs e limitações. Qualquer compatibilidade com versões anteriores não é garantida antes de atingir a v1.0.0.
A melhor e mais rápida maneira de entender como a linguagem Bitloops ajuda a escrever código limpo e um ótimo software é seguir as instruções abaixo. Com este tutorial, você executará e executará um aplicativo Bitloops TODO, aprenda como funciona o Bitloops e veja os arquivos de saída no TypeScript e aprecie como a linguagem Bitloops funciona.
Se você enfrentar algum problema (especialmente com o Windows), verifique a seção de problemas comuns abaixo.
O Bitloops ainda não criou binários, então a melhor maneira de instalar e executar o transpiler é instalar a cli da linguagem Bitloops como um pacote NPM global. Copie o seguinte e execute -o em seu IDE:
npm install -g @bitloops/bitloops-language-cliComo alternativa, você pode usar fios:
yarn global add @bitloops/bitloops-language-cliO aplicativo Bitloops TODO está prontamente disponível para clonagem. Você pode extrair os arquivos seguindo o link ou cloná -lo usando o comando abaixo:
git clone https://github.com/bitloops/bitloops-language.gitA próxima etapa é transpilar o código do aplicativo TODO do código do idioma Bitloops para o código TypeScript. A transpile vem da palavra transcompile e significa a tradução do código de uma linguagem de programação para outra.
MacOS / Linux
bl transpile -s bitloops-language/examples/todo/bl-source/ -t outputWindows
bl transpile -s bitloops-languageexamplestodobl-source -t outputou
bitloops-language transpileÉ isso! Agora você pode executar o seguinte para ver quantas linhas de código você salvou (alerta de spoiler: 77% ou 2141 LOC!)
bl analyze-lines -bl bitloops-languageexamplestodobl-source -ts ./outputOk, agora você tem toda a sua lógica de negócios lindamente transpiliada em código de texto bem estruturado ???!
O escopo da linguagem Bitloops termina aqui, mas usando o Bitloops, você pode gerar automaticamente todo o resto usando o Bitloops Magic and AI! O BitLoops gerará para você um projeto Nest.js e toda a infraestrutura necessária (controladores GRPC ou REST, adaptadores de repositório para os arquivos PostgreSQL ou Mongo etc.), bem como arquivos Docker ou K8S para implantar seu sistema. Para saber mais sobre o processo automático do Bitloops [clique aqui].
Como alternativa, você é livre para usar qualquer estrutura que desejar ou apenas um servidor expresso ou servidor Fastify etc.
Set-ExecutionPolicy -ExecutionPolicy RemoteSignedExistem inúmeras ótimas linguagens de programação por aí com bases de código e investimentos enormes e crescentes. No entanto, o problema mais comum enfrentado pelas organizações que constroem e mantêm sistemas, com equipes de desenvolvedores trabalhando neles, é uma boa arquitetura e design de um sistema interconectado de serviços;
Projetar um sistema complexo para que possa durar com o tempo e permitir que os desenvolvedores (marceneiros existentes e novos) trabalhem em sua base de código com a produtividade constante (ou esperançosamente) é muito difícil.
Um bom teste é um grande requisito adicional de produtos duradouros, que também é possível por uma boa arquitetura e design. Infelizmente, não há engenheiros seniores suficientes e experientes em todo o mundo para construir e manter ótimos sistemas para todos que precisam deles. Mesmo quando uma empresa tem a sorte de ter alguns, é incapaz de contratar mais engenheiros juniores do que os idosos podem revisar seu trabalho e guia para garantir que o sistema não se degradasse ao longo do tempo devido a más decisões de design.
A linguagem Bitloops é a primeira linguagem de programação que visa abordar esses problemas, facilitando muito a adoção de princípios e padrões importantes de engenharia de software, como design orientado a domínio e desenvolvimento orientado a comportamentos, sem exigir muitos anos de experiência para fazê-lo com sucesso. Como resultado, o trabalho dos engenheiros seniores pode ser aproveitado ainda mais e as contribuições dos engenheiros juniores aumentavam significativamente.
Todo engenheiro de software tem uma meta comum: queremos escrever um código melhor e criar um software melhor, e queremos fazer isso mais rápido!
No entanto, isso só pode ser alcançado com dedicação, aprendizado e experiência significativos e contínuos, o que leva muito tempo. O BitLoops quer reduzir significativamente o tempo necessário para um desenvolvedor começar a criar software de alta qualidade e construímos a linguagem Bitloops que já incorpora muitas das melhores práticas e metodologias de design de desenvolvimento de software.
Em última análise, os objetivos do BL são:
A linguagem Bitloops visa definir e reter uma sintaxe simplista que estará o mais próximo possível da linguagem humana e da lógica de negócios que se tornará atemporal, ajudando a adotar e usar uma linguagem onipresente em cada módulo ou contexto limitado. É então o trabalho do BL transpilar para a sintaxe moderna e atualizada do seu idioma de destino.
Tornar o idioma Bitloops um idioma transpilado foi uma decisão essencial para conseguir exatamente isso. Ao permitir que as oraganações escrevam sua lógica de negócios em um idioma atemporal que possa ser transpilado para os idiomas de destino poderosos, mas também alterando sem sobrecarregar os usuários do idioma Bitloops com esta tarefa. O idioma Bitloops garantirá que ela transpilize para o código otimizado de idiomas relevantes, atualizados e corretos para a tarefa.
A linguagem Bitloops está atualmente em estágios iniciais. Seu transpiler foi criado como uma prova de conceito e não pretende cobrir toda a gama de desenvolvedores de redação de código criativo nesta fase.
Queremos entender melhor se podemos construir um idioma que atenda às suas necessidades e se podemos reunir uma massa crítica de interesse na comunidade DDD e fora dela.
Há muitas coisas que queremos adicionar no futuro, incluindo
Se você estiver interessado em contribuir, adoraríamos sua ajuda!
Se você já está ciente dos conceitos DDD (agregados, objetos de valor, casos de uso, controlador etc.) e sabe como codificar em qualquer linguagem de programação moderna, deve ser muito fácil capturar o idioma Bitloops. Ele é construído a partir de um conjunto consistente de construções de linguagem que devem parecer familiares e fáceis de ler e entender.
Embora o Bitloops seja uma linguagem orientada a objetos, ele não tem uma classe genérica. As classes específicas do BitLoops são construídas da seguinte forma: ValueObject, entidade, entidade raiz, comando, comandohandler, Query, Queryhandler, DTO, Props, OK, ApplicationError, Domainerror, Erro etc.
Código de idiomas Bitloops como este (11 linhas):
// 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 ) ) ;
}
}Transpila para este código digital (28 linhas):
// 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 perguntas e suporte, use nosso canal oficial do Discord. Sinta -se à vontade para participar se estiver procurando aprender mais sobre os padrões de design de desenvolvimento de software.
Somos uma equipe pequena em uma missão para democratizar o código bem projetado e o software de alta qualidade, e receberemos toda a ajuda que podemos obter! Se você quiser se envolver, consulte nossas diretrizes de contribuição para aprender como e onde poderíamos usar sua ajuda. Nosso objetivo é identificar as boas-boas-primeiras para que você possa começar rapidamente a contribuir e aprender.
Certifique -se de ler nossas diretrizes de problemas de relatório antes de abrir um problema. Os problemas que não estão em conformidade com as diretrizes podem ser fechados imediatamente.
Para obter ajuda geral usando o idioma Bitloops, use um desses canais:
A linguagem Bitloops possui uma licença pública geral da GNU v3.0. Consulte o arquivo de licença para obter informações sobre licenciamento.
O Bitloops está sempre procurando pessoas ótimas para contribuir com a linguagem e a plataforma Bitloops. Se você estiver interessado em ingressar em uma equipe que deseja melhorar radicalmente como o software é construído daqui para frente, envie sua carta de apresentação do CV + (muito importante) + perfil do github para: [email protected]