Um programa moderno "Hello, World" precisa mais do que apenas código

Não faz muito tempo, um cliente me chamou para escrever um programa para seu RPG

Não quero admitir quanto tempo fazia desde a última vez que escrevi RPG, exceto para notar que provavelmente foi antes da maioria dos meus leitores nascerem. Construir o programa exigiu que eu me lembrasse como usar um editor semelhante ao KEDIT,aprender a usar o As/400 Software Development Facility, construir uma biblioteca de testes, editar o programa real, em seguida, compilá-lo e descobrir como executá-lo.

 

O programa do cliente era relativamente simples, mas eu não queria apenas mergulhar. Então eu criei um "Olá, Mundo".

 

Uma tradição com um propósito

 

Essa noção de um programa "Hello, World" remonta a Brian Kernighan e Dennis M. Ritchie's The C Programming Language (First Edition)— escrevendo um pequeno programa a fim de confirmar que você entende a linguagem e o ambiente o suficiente para tentar coisas mais complicadas. O primeiro programa que a maioria dos programadores C escrevem é algo como:

 

#include stdio.h

 

int main() {

    printf("Hello, world!\");

    return 0;

}

 

Digite esse texto em um arquivo chamado 'olá.c', em seguida (em qualquer sistema semelhante ao UNIX) digite os comandos

 

$ cc hello.c

$ ./a.out

 

e você deve ver o resultado alegre

 

Hello, world!

 

o que demonstra que você realmente escreveu, compilou e executou um programa na linguagem C.

 

Como Kernighan e Ritchie observam, construir o programa para C significa que você dominou os passos básicos para iniciar um projeto C.

 

Este é o grande obstáculo; para saltar sobre ele você tem que ser capaz de criar o texto do programa em algum lugar, compilá-lo com sucesso, carregá-lo, executá-lo e descobrir onde sua saída foi. Com esses detalhes mecânicos dominados, todo o resto é relativamente fácil.

 

Ok, eu admito que a afirmação "todo o resto é relativamente fácil" é humor astuto, mas ainda é verdade que este é um passo significativo no aprendizado de qualquer linguagem de programação.

 

Isso se tornou uma tradição de programação, e como muitas tradições, muitas vezes é seguido sem reconhecer seu propósito ou valor. Então agora temos uma Coleção Hello World online que tem quase 600 exemplos de "Hello, World" em idiomas de Ada a ZIM. Muitos IDEs escreverão um programa básico "Hello, World" para você, e em muitas línguas interpretadas como Python, "Hello, World" é simplesmente print("Hello, world!") digitado na REPL do intérprete.

 

Infelizmente, isso não fornece muita visão real, e parafraseando Richard Hamming, o propósito da computação é insight, não cordas literais.

 

Para que é "Olá, Mundo"?

 

O objetivo do "Hello, World" original da KR era não ver "Hello, world" no terminal. Em vez disso, foi para garantir que você tenha todas as ferramentas, e a compreensão básica da linguagem C e do ambiente de programação UNIX necessário para escrever um programa C, e ter as ferramentas e a compreensão para construir programas é um primeiro passo importante — talvez o primeiro passo mais importante — na partida de cada projeto.

 

Muitas vezes, também é mais complicado do que parece. Um projeto realista agora requer não apenas um editor e um compilador, mas uma compreensão de como os programas são embalados, como o ambiente de construção deve ser estruturado, como você planeja manter o controle da versão, como realmente construir o programa e o que o produto desejado do projeto de programação precisa entregar. Assim, enquanto um programa básico "Hello, World" ainda pode ser apenas cinco linhas de código, construir o inicial, pronto para desenvolver "Hello, World" pode ser muito mais complicado.

 

Iniciar um novo projeto inevitavelmente significa resolver uma série de problemas de desenvolvimento antes que "todo o resto seja relativamente fácil".

 

"Olá, Mundo" para projetos

 

Construir um "Olá, Mundo" apropriado para um projeto é mais complicado, mas o pagamento também é maior. Considere um projeto que deve entregar — por exemplo — um aplicativo web. Além de escolher um idioma, você geralmente precisa escolher suas frameworks, tanto para as extremidades frontal quanto traseira. Você precisa identificar como o primeiro aplicativo será hospedado e como o código será gerenciado e entregue.

 

Este "Hello, World" apropriado para um projeto não é apenas para mostrar que você pode exibir alguma saída. Você precisa mostrar que está pronto para começar a adicionar recursos — histórias de usuários se você estiver fazendo algo como SCRUM — e empurrá-los para uma versão do aplicativo que pode ser demonstrada e testada. Um "Hello, World" apropriado para um produto é a versão mais mínima de um produto mínimo viável, uma demonstração de que, com mais desenvolvimento, você espera ser capaz de entregar um produto útil para testar e usar.

 

O que faz um projeto apropriado "Olá, Mundo"

 

Obviamente, este projeto apropriado "Olá, Mundo" vai diferir dependendo do projeto e do meio ambiente. Eu ensino um monte de iniciantes, e para qualquer projeto de classe, eu sugiro que eles devem sempre começar com:

 

Um diretório de projetos separado — para vocês jovens, que podem ser uma "pasta", para o qual o código real irá.

Um repositório de git inicializado nessa pasta. Sim, eu começo até iniciantes usando git. O básico é fácil de aprender, e eu vi um número prodigioso de alunos entrar em desespero porque eles fizeram uma pequena mudança onde os resultados não eram o esperado, e agora eles não se lembram do que mudaram bem o suficiente para reverter para sua versão antiga.

Uma escolha das ferramentas de desenvolvimento que eles usarão — editores ou IDEs, ferramentas de construção e assim por diante.

Um processo de compilação repetível mais robusto do que digitar uma invocação de um compilador em uma linha de comando.

E só então o primeiro código real.

 

Quando eles têm isso, e podem editar, cometer, construir e demonstrar esse programa muito mínimo, eles estão preparados para construir algo para ser feliz, evitando um monte de erros que podem tornar o processo real muito menos feliz.

 

Iniciando um projeto profissional "Olá, Mundo"

 

É fácil imaginar que um programa "Olá, Mundo" é apenas para iniciantes, mas a maioria de todos os projetos começa com esse diretório vazio intimidante. Muitas vezes um projeto realista "Hello, World" requer um processo suspeitamente difícil e complicado com muitas partes móveis. Por exemplo, criar o andaime básico para um programa Java em Maven constrói dez diretórios e subdiretórios para construir um programa literal "Hello, World" em Java, enquanto o programa maven build and dependency manager baixa 1350 arquivos em mais de 550 diretórios.

 

Isto não é apenas uma propriedade de Java ou Maven. Construir um novo aplicativo React com create-react-app requer 4304 diretórios e 28678 arquivos.

 

Obviamente, fazer isso à mão leva à loucura. Essa complexidade forçou os desenvolvedores a criar scripts para criar aplicativos de nível "Hello, World", mas mesmo estes não estarão completos — você ainda deve adicionar controle de código-fonte e possivelmente configurar contêineres ou pipelines de integração contínua ou scripts de implantação.

 

Embora isso seja certamente imensamente mais complicado do que o original de cinco linhas "Hello, World", ele ainda está servindo ao mesmo propósito: construir uma aplicação trivial, mas garantir que os requisitos para continuar o desenvolvimento estejam satisfeitos.

 

Começando bem

 

Qualquer projeto de software de qualquer tamanho é confrontado desde o início com alguma variante do mesmo problema: como você pode inventar para dominar os detalhes mecânicos de iniciar seu projeto, construir o código e até mesmo implantar o código para que você possa se concentrar em realmente construir código que satisfaça as necessidades do cliente?

 

Não importa o quão complicado o projeto será, você pode garantir que você tenha um bom começo construindo um programa de demonstração que tenha a funcionalidade mínima absoluta, mas que exerça todo o processo de construção, teste e até implantação. Este é o que o original "Olá, Mundo!" foi feito, e ainda é o melhor começo de hoje.

 

 

O Avance Network é uma comunidade fácil de usar que fornece segurança de primeira e não requer muito conhecimento técnico. Com uma conta, você pode proteger sua comunicação e seus dispositivos. O Avance Network não mantém registros de seus dados; portanto, você pode ter certeza de que tudo o que sai do seu dispositivo chega ao outro lado sem inspeção.


Strong

5178 بلاگ پوسٹس

تبصرے