Este artigo foi traduzido por máquina.

O programador

Capturando lógicas de negócios importantes

Ted Neward

 

Ted NewardDado que este é o mês de abril, que a revista chegou à sua porta (ou caixa de entrada de caixa de correio ou e-mail ou...qualquer que seja) em algum lugar sobre ou próximo de 1 de abril e que dito data é conhecida nos Estados Unidos e outras nações ocidentais como "Dia de tolo de abril", pareceu-me adequado fazer uma coluna sobre as línguas em que nós pode capturar a lógica de negócios importantes.(Note que as capitais que é como as pessoas de negócios consulte sempre qualquer novidade ridícula que eles querem, então isso é só disso que se referem a ele com o mesmo grau de veneração e respeito que ele merece). É importante notar é de suma importância que quando capturamos disseram a lógica de negócios importante, fazemo-lo com seriedade e sinceridade; Isso significa que fazê-lo em uma linguagem que possa compreender os empresários e representantes cliente (e a maioria do departamento de marketing).

Assim, é com uma conduta grave e sincera que eu apresento a vocês uma língua importante na sua caixa de ferramentas de programação de .NET: o LOLCODE.

LOLCODE

Enquanto há muito que é a opinião de cientistas e donos de cães tanto que gatos realmente não podem se comunicar com seus proprietários, os proprietários do gato tem sabido há anos que eles se comunicam muito bem — basta perguntam co-residing humanos de qualquer gato cujo gato apenas informou-lhe que apesar do fato é 05, é hora do gato ser alimentado.(Para os não iniciados, essa atividade envolve geralmente Mia alta, pontas de cabeça para o nariz, expressões inocentes e ocasionalmente uma muito ligeira flexão de uma garra felina para uma parte sensível do corpo humano.)

No entanto, desde gatos descobriram o mouse mecânico, uma revolução silenciosa vem tomando lugar através da Internet: Gatos constantemente melhoraram sua capacidade de se comunicar por postar fotos de si mesmos com legendas escritas no que muitos antropólogos e historiadores (os quais são amantes do gato — antropólogos e historiadores, tendo sido "indisponível" para comentar sobre este cão-loving) concordam que é fundamental construir blocos de todas as línguas humanas.Esta linguagem fundamental é consultada às vezes imperfeitamente por seres humanos pelo nome "LOLspeak." (Exemplos do que podem ser encontrados em seu Facebook e Twitter feeds, então não finja que você não sabem o que estou a referir).

Felizmente, bem intencionados Propriedade gato engenheiros familiarizados com a plataforma .NET tomaram para estender esta linguagem na plataforma .NET; dois tais esforços foram, de fato, no lugar, mas infelizmente apenas uma sobreviveu até hoje.O primeiro foi uma implementação baseada sobre o DLR Dynamic Language Runtime () de Martin Maly e John Lam quando o DLR foi novo (2007), mas ele parece ter desaparecido.O segundo é um projeto de todo o frame de tempo mesmo, mas compilar o código em assemblies .NET em vez de interpretar a fonte diretamente.Esse projeto é hospedado em bit.ly/AJeM e, sendo open source, é facilmente acessível através do Subversion através de um único "svn checkout http://lolcode-dot-net.googlecode.com/svn/trunk/" comando na janela de linha de comando do local.Uma vez construídos, podemos começar a explorar este surpreendente e poderosa linguagem.

Para obter detalhes completos sobre a linguagem LOLCODE, confira o site LOLCODE em lolcode.com, e em particular Confira as especificações da linguagem LOLCODE, que são padrões de associação (ECPA) dos programadores de gato Europeu, no lolcode.com/specs/1.2.LOLCODE.NET implementa muita (se não todos) LOLCODE 1.2, que é o mais recente padrão LOLCODE.

HAI

Naturalmente, o primeiro programa que ninguém nunca escreve em qualquer língua nova deve ser que na versão de "Hello World", e nosso mergulho em LOLCODE não será diferente:

 

HAI
  BTW Greet the people
  VISIBLE "Hello, world!"
KTHXBYE

Cada programa LOLCODE começa com a saudação tradicional, "HAI" e é encerrado com o tradicional encerramento, "KTHXBYE." Como com todas as palavras-chave em LOLCODE, estes diferenciam maiúsculas de minúsculas e devem ser digitados todas as letras maiúsculas. É "Visível", como pode ser inferido, o comando para gravar o fluxo de saída padrão, e "BTW" é o comentário de linha única. (Comentários multi-linha abrir com "OBTW" e terminam com "TLDR.")

Usando o compilador de "lolc" construído a partir da árvore de fonte de LOLCODE.NET nos dá um assembly do .NET tradicional, homenagem (na forma tradicional de compiladores .NET) o arquivo de origem, assim, se o código anterior é armazenado no "hello.lol" e, em seguida, "hello.exe" contém a Intermediate Language (IL).

EU TEM FIO

LOLCODE reconhece que existem apenas quatro tipos no mundo: cadeias de caracteres (fios), números (número), booleanos (TROOF) e matrizes (BUKKIT), mas porque gatos nunca comprometem-se a qualquer coisa até o último momento possível, uma declaração de variável em LOLCODE (usando a sintaxe "Que tem A") não é digitada, até que o valor é atribuído a ele. Mais importante, porque um gato nunca será realizado perante uma decisão mesmo, uma vez que a decisão é tomada, variáveis em LOLCODE são flexivelmente digitados, o que significa que uma variável pode conter qualquer valor, mudando seu tipo conforme necessário para refletir o novo valor:

I HAS A COOLVAR ITZ THREE
LOL COOLVAR R 3

A primeira linha de código declara uma variável chamada "COOLVAR" e atribui o valor de seqüência de caracteres (fio) três. A segunda linha do código define essa mesma variável para o valor 3, do tipo de número. Qualquer variável não inicializada contém o valor null, "NOOB".

Como palavras-chave, variáveis diferenciam maiúsculas de minúsculas e podem usar maiúsculas, embora idiomatic LOLCODE sugere todas as capitais, para maior clareza. Como c#, nomes de variáveis devem começar com uma letra, mas, em seguida, podem consistir de letras, números ou sublinhados.

Leitura do console é feito usando o "GIMMEH" comando, então um segundo programa para cumprimentar o usuário, pedir-lhe o seu nome e imprimi-lo a ele a seguinte aparência:

HAI
  I HAS A NAME ITZ "Ted"
  VISIBLE "d00d type in ur name"
  GIMMEH NAME
  VISIBLE "d00d ur name is " NAME
KTHXBYE

Enquanto a l33tspeak no console não é uma parte necessária da língua, considera idiomaticamente correta e boa forma.

Controle de fluxo

If/then construções são criadas, colocando "O RLY?" depois de uma expressão, usando "YA RLY" para definir o ramo de verdade da expressão e "WAI não" para a ramificação falsa da expressão e "ÓICO" para indicar o final do se/então construir inteiramente. Várias instruções podem ser separados por vírgula em uma única linha se isso é esteticamente agradável. Se houver mais de dois ramos possíveis (que outros, menos favorável ao felino línguas chamam um "else if"), então isso é dado por "MEBBE" blocos definidos entre os blocos "YA RLY" e "Não WAI". Operações de comparação totalmente consta a especificação LOLCODE 1.2, mas o "Santos" (igualdade) e operadores de "DIFFRINT" (desigualdade) são susceptíveis de ser o mais usado comparações, como é o caso das linguagens de programação mais modernas. Para operações booleanas, "ambos de <x> UM <y> "dar-nos lógico- e,"qualquer um dos <x> [Um] <y> "nos dar lógica OR e"ganhou de <x> [Um] <y> "nos dar lógica XOR.

Loops são representados usando a palavra-chave "IM IN YR <label>" para começar a construção de loop e finalizar com a construção de "IM OUTTA YR <label>"; sem uma condição de terminação no início da construção de laço, dado por um "TIL" ou expressão de "ARTIMANHA", o loop será executado infinitamente até serem cessados por uma expressão "ir embora", que retorna o controle imediatamente após a palavra-chave "IM OUTTA YR".

Juntando tudo isso, por exemplo, você tem o seguinte programa:

HAI
  I HAS A NAME ITZ ""
  IM IN YR LOOP
    VISIBLE "Gimmeh ur name or 'gtfo' to GTFO"
    GIMMEH NAME
    SAEM NAME AN "gtfo", O RLY?
      YA RLY, VISIBLE "L8r!", GTFO
      NO WAI, VISIBLE "Yo " NAME
    OIC
  IM OUTTA YR LOOP
KTHXBYE

Observe que o loop "LOOP" é um loop infinito, com nenhuma condição de encerramento, usando a "desaparecer" no ramo "YA RLY" do "SAEM... O RLY?"condicional para terminar o programa, no caso do usuário digita no"vai embora"como entrada.

COMO DUZ EU...

Boa prática de programação exige que o código ser separados em unidades facilmente consumíveis e LOLCODE seria a língua prontos grave que é sem semelhante recurso. Usando o "DUZ como eu" e "IF U dizer tão" pares de palavra-chave, você pode definir funções que podem ser chamadas para a realização de operações:

HAI
  HOW DUZ I GREET
    I HAS A NAME ITZ "Ted"
    VISIBLE "d00d type in ur name"
    GIMMEH NAME
    VISIBLE "d00d ur name is " NAME
  IF U SAY SO
  GREET
KTHXBYE

Isso irá definir uma única função, "GREET", que é usado no programa principal para cumprimentar o usuário e ecoar seu nome. Parâmetros para a função são dadas por pares de nome "YR".

EU POSSO HAZ BIBLIOTECA?

Naturalmente, a vantagem real de LOLCODE não é por escrito as partes chatas e tediosas do programa (um gato real nunca se rebaixaria ao chato e tedioso, é claro); em vez disso, verdadeira vantagem na LOLCODE encontra-se em captar a lógica de negócios importantes e expô-lo através de um serviço Web ou Windows Presentation Foundation (WPF) GUI ou algo assim. Por esta razão, o compilador LOLCODE também apoia o onipresente "/ destino: biblioteca" opção para produzir um assembly de biblioteca .NET padrão — ainda fazê-lo, no entanto, produz um ".exe"-Assembléia, com o sufixo um método Main presente no programa, apesar do principal simplesmente não faz nada. Isso é realmente muito em consonância com outras línguas modernas que supor que a parte superior do arquivo é o ponto de entrada para o programa como um todo; LOLCODE é simplesmente tomar a etapa extra de proporcionar sempre um principal, porque um (mesmo que vazia) está sempre presente.

Se a compilação como uma biblioteca ou um arquivo executável, LOLCODE sempre envolve o código gerado em uma classe chamada "Programa". Não há nenhuma funcionalidade de namespace — nenhum felino que se preze jamais aceitaria um sobrenome, tampouco.

Logo para ser uma prática essencial

Enquanto LOLCODE é poderoso, infelizmente sua aceitação ainda não atingiu um ponto onde muitos analistas de negócios e representantes do cliente entendem os benefícios de expressar a lógica de negócios em ti. Felizmente, sendo open source, extensões à linguagem são fáceis, e essa linguagem é esperada para se tornar uma padrão da indústria essencial melhores práticas até 2014. Para melhores resultados, os arquitetos são incentivados a demonstrar o poder de LOLCODE em sessões hands-on de codificação, de preferência em uma reunião com executivos de alto nível, sem prévio aviso ou avanço aviso. Boa codificação.

Ted Neward é totalmente fazendo todos esse up, exceto para as partes sobre a língua LOLCODE — tudo isso é absolutamente verdade. Ele tem escrito mais de 100 artigos e foi autor ou co-autor de uma dúzia de livros, incluindo "profissional F # 2.0" (Wrox, 2010), mas nenhum como uma piada, como é este artigo. Ele é um F # MVP e fala em conferências em todo o mundo. Tenha sido avisado pelo advogado não para publicar qualquer meio de se chegar a ele, para evitar a raiva letras de arquitetos que seguiram esse último pedaço de conselhos, mas leitores de longa data desta coluna já vão saber como chegar até ele.

Graças aos seguintes especialistas técnicos da família Neward para revisar este artigo: Scooter, a sombra, a princesa e Senhor. Fluff Fluff