Loading

Module 1: Comparando CLI, GUI e HTTP Header & Protocol

Nota de Estudos
Study Reminders
Support
Text Version

Separando UI De Processamento

Set your study reminders

We will email you at these times to remind you to study.
  • Monday

    -

    7am

    +

    Tuesday

    -

    7am

    +

    Wednesday

    -

    7am

    +

    Thursday

    -

    7am

    +

    Friday

    -

    7am

    +

    Saturday

    -

    7am

    +

    Sunday

    -

    7am

    +

Olá, todos, bem-vindos à primeira sessão da terceira semana do curso de Introdução aoDesenvolvimento de aplicações modernas. Na semana passada, vimos a versão de linha de comando do aplicativo fair share. Vimos também a versão gráfica do mesmo aplicativo. A versão da linha de comandofoi um código simples que realmente implementou o algoritmo básico que vimos na primeiríssima semanadeste curso.
Conforme escrito, a versão da linha de comandos ilustrou um estilo processual de programação em uma linguagem Java. Apesar de Java ser uma linguagem orientada a objetos, nós a utilizamos para programar em um estiloprocessual. No entanto, o suporte de instalações orientadas a objetos que o Java fornece foi usado durante a versão gráficadeste código.
Na versão da linha de comandos, distinguimos entre estilo interativo e não interativo deinteragindo com o usuário. Nossa abordagem de linha de comando foi muito não interativa. Em outras palavras,todas as informações relevantes que eram necessárias para operação tiveram que ser dadas logo a partir do comandolinha antes do nosso programa começar a rodar.Nosso programa tinha três modos diferentes ou comandos do usuário que eram os seguintes:1. O modo de registro, que começou uma interação dos colegas de quarto registrados.2. Isso foi seguido por um ou mais modo de despesas, em que o aplicativo registrou vários eventospara os quais a quantidade de dinheiro e colega de quarto que pagou foram registrados.3. O terceiro modo foi o relato a mais. Esse modo foi usado por um colega de quarto para perguntar ao sistemaqual é o dinheiro que ele ou ela deve receber ou pagar.Nós introduzimos algumas deficiências no programa que tínhamos apresentado durante a linha de comandos, esperamos que você tenha encontrado o que eles são, se houver, e você tenha melhorado sobre eles.A versão da linha de comando como apresentada também ilustrou alguns aspectos sobre como projetar uma interação do usuário. Uma das restrições que deu foi o comando poderia ser usado por um e apenasum colega de quarto de cada vez. A versão gráfica melhorou um pouco sobre a rigidez da linha de comando;proporcionou interatividade. E mais do que interatividade, permitiu que o usuário não se preocupasse com a sintaxe exata do, mas concentre-se nas informações que devem ser manipuladas.Nesse caso a única informação que realmente é exigida pelos colegas de quarto é a quantidade de dinheiroe eventos para os quais as despesas foram feitas, e por quem. A linha de comando nos forçou alembrar a sintaxe exata do comando para cada modo queremos que o programa seja executado. Para oexemplo, para recodificação de um gasto, temos que lembrar que a palavra-chave exp tem que vir apóso comando mas antes da quantidade; não foi possível alternar a ordem dos dois. Então, paraexemplo, você não poderia executar o comando de compartilhamento justo com argumentos em que a quantidade éseguida da palavra-chave exp.Você poderia fazer isso apenas se você alterar a arquitetura da programação dentro do programa fair share, mas a versão gráfica nos permitiu estar livres de tal tipo de assunto. Não obstante,
tanto o gráfico como a linha de comando funcionam em um único computador, eles poderiam ser usados porum e apenas um roommate de cada vez. Nesse ponto, é possível que alguns de vocês possam objetivar quebem, a maioria dos sistemas operacionais hoje em dia que usamos em nossos computadores são multi usuário, então tudo o que nósprecisamos fazer é ter vários usuários naquela máquina. Claro o suficiente, isso é possível. Mas em qualquer dadoponto de tempo sua máquina seria usada por um e apenas um único colega de quarto. Se outro colega de quartousa, então ele ou ela efetua login na sua conta naquela mesma máquina. Mas em qualquerdado ponto de tempo um e apenas um usuário está utilizando-o. Em segundo lugar, não projetamos nosso programa de linha de comandostal que ele funciona com vários usuários simultaneamente.Por exemplo, ele usa um único banco de dados de arquivo como um único banco de dados e esse arquivo é mesmo se o programaestá sendo executado pelo usuário 1 ou usuário 2. Isso dá origem a muitos problemas. Por exemplo, se ambos os usuáriostentem alterar o arquivo ao mesmo tempo, como manejamos isso? Nós não programamosnosso sistema para tal coisa. Assim, mesmo para o programa pode ser executado em um sistema multi usuário, ele não é realmenteforte o suficiente para lidar com as complexidades de um sistema multi usuário; é por meio do design um único programa de usuário.Em algum momento gostaríamos de generalizar isso para ser capaz de lidar com vários usuários. Assim, que vários usuáriospodem executar o mesmo programa. Ok, essas foram algumas das coisas que vimos na última semana,onde desenvolvemos uma linha de comando bem como uma versão gráfica do nosso aplicativo de fair share.Agora damos o próximo passo nesta semana.Embora a versão gráfica do nosso aplicativo tenha sido um pouco melhor do que a versão de linha de comando, ambasdelas trabalharam em um único computador e um único usuário. Para colocá-lo em uma linguagem diferente, se o nosso programa de compartilhamento justofor considerado como oferecer um serviço para ter os colegas de quarto, então o nosso computadorse torna o ponto de acesso para esse serviço, e uma maneira de descrever a situação é este serviço temum único ponto de acesso. Por isso, um consumidor do serviço, que é qualquer um dos colegas de quarto, terá todos osdesses consumidores terá apenas um único ponto de acesso.Nosso próximo passo, portanto, é ver como podemos alterá-lo de um único ponto de acesso para vários.É aqui que introduziremos o networking. As redes de computadores permitem que aumentemos realmente o númerode pontos de acesso para esse serviço. No nosso caso, seguiremos novamente passo a passo. Primeiro, nós
só focará em apresentar a saída os resultados sobre a rede. Em outras palavras, seremosseparando a interface do usuário a partir do processamento.Então, os resultados do processamento são apresentados para o usuário, e é esta parte que vai serseparada. No nosso aplicativo de linha de comando apresenta a saída no terminal, mas esse terminalestá no mesmo lugar que a máquina está. Da mesma forma, para um sistema gráfico, o que gostaríamos de fazeré levar a interface do usuário de saída da máquina local para uma máquina remota em toda a rede.Se podemos permitir que a entrada e saída tanto seja em rede, então isso nos permitirá ter váriosponto de acesso cada conectado via rede ao sistema único de processamento. Assim, diversos pontos de acessoserão possíveis e todos os nossos colegas de quarto poderão acessar o aplicativo de compartilhamento justo a partir dediferentes pontos, e eles não serão obrigados a usar necessariamente o mesmo computador.(Consulte o Tempo de Slide: 11:14)
Vamos olhar para este aspecto nesta sessão. A ideia chave de separar a UI do processamentoestá em apreciar alguns dispositivos de saída de pontos básicos renderizar dados, enviar dispositivos de entrada em dados. Nenhumdeles realmente produz novos dados. Eles não geram nada. Se pudéssemos apenas padronizar a renderização, estamos focando em padronizar a renderização porque neste momento estamos interessados emapenas gerando a saída.
Por que padronizamos? a aplicação gráfica assim como a versão de linha de comandos completamentede nossa aplicação, ambos apresentaram alguns conceitos muito interessantes para nós. A versão de linha de comandosargumentou que há uma variedade de dispositivos de saída, e em vez de lidar com todos eles,vamos criar uma abstração chamada como um dispositivo de saída padrão. Nós escrevemos nossos programas para apenasimprimir no dispositivo de saída padrão, e deixamos ele para o sistema operacional para decidir qual será aquele dispositivo.
Em contraste, um aplicativo gráfico não poderia fazer isso, e isso vai nos empertar. Dependendo do sistema gráfico particular deque utilizamos para programar, ou o código que escrevemos para apresentar a saída, exigiria que apresentássemos saída em formato diferente. Ele ganhou ’ t ser o caso que podemossimplesmente saída os dados para STDOUT como fizemos na versão de linha de comandos.Este problema é muito semelhante ao cenário de ter uma variedade de dispositivos de saída. E assim como noo aplicativo de linha de comando, criamos um dispositivo de saída padrão, precisamos fazer algosemelhante para gráficos. E é isso que padronizar os meios de renderização.Como padronizar? Bem, usamos HTML e CSS. Na verdade, HTML e CSS são a interface do usuário universal. É com isso que gostaríamos de chamar realmente a sua atenção.
(Consulte O Tempo De Deslizamento: 13:55)
Antes de ir para as combinações HTML e CSS deixe-nos dar uma olhada rápida no que os gráficos – o quequeremos dizer por gráficos. Em seu próprio núcleo, como poderíamos tê-lo aprendido em curso de computação gráfica,gráficos são gráficos raster ou vetor. E trata de dois aspectos principais: informação e interface. Informações são de diversos tipos, pode ser:• Textual• Numerical• Audio• Visual (like video, images ...)No lado da interface, temos uma variedade de mecanismos de input-output que vão desde tátil de toque adispositivos apontando (tipicamente um mouse), saída de áudio (alto-falante), saída de vídeo (monitor) ... so on eso adiante. Lembre-se que em um aplicativo de linha de comando nosso hardware de saída poderia ser variado, e nóspadronizamos a saída criando o dispositivo de saída padrão, o que permitiu que nossos programas fossemescritos de forma muito simples; eles simplesmente imprimem no dispositivo padrão de saída e o descanso é cuidado poro nós. Da mesma forma, da mesma forma se padronizarmos o sistema gráfico enquanto desenvolvemos aplicativos GUI, então poderíamos levar o display de saída da máquina local para o dispositivo de saída da máquina local ’ sou da máquina local através da rede para uma máquina remota. Essa possibilidadese abre. Não só existem várias maneiras de apresentar a saída, existem vários dispositivos de saídanós podemos apresentar a saída para.
(Consulte O Tempo De Deslizamento: 15:51)
Isso é o que nos dá nossas ferramentas web padrão, o HTML, o CSS e o que chamamos como o documentoobjeto modelo DOM. Há momentos em que sentimos que é melhor visualizar a web como um sistema de3 entidades, o HTML, o CSS e o DOM. O HTML é sobre o que exibir, o conteúdo.HTML como ele significa linguagem de marcação de hipertexto, o que significa é que o conteúdo a ser exibidoé marcado para o tipo de apresentação que ele deve ser.É uma marcação lógica. Então, como um autor eu posso dizer que eu quero, no meu conteúdo, começar a enfatizarmeu conteúdo do ponto A ao ponto B. Eu apenas digo que eu quero enfatizá-lo e marcar a ênfasedo ponto A para o ponto B. Agora ele é deixado até o sistema de renderização para realmente desenhar. Não só oele desenha primeiro decide como renderizar. Por isso, pode-se dizer que uma ênfase deve ser feita em um talvezcom um sublinhado ou pode ser possível até mesmo imaginar que uma ênfase será feita por apenasmudando a cor.A separação do conteúdo e da apresentação é um dos principais fatores que torna a web tãointeressante.
(Consulte O Tempo De Deslizamento: 17:55)
Além do HTML, nossa próxima entidade na web é o DOM, o modelo de objeto de documentos. O modelo de objeto de documentosespecifica a estrutura lógica dos componentes de HTML, assim comoCSS, na verdade o documento. Então, diz que um documento é formado por uma cabeça, um corpo; um corpo seria formado por um cabeçalho seguido de um cabeçalho seguido de um parágrafo, talvez um ou mais parágrafos. Poderia ter um sub cabeçalho, que poderia voltar a ter um parágrafo.É esta árvore como estrutura a partir do documento: o corpo, o primeiro cabeçalho, o parágrafo deo cabeçalho e assim por diante. Esta estrutura de árvore, é o que o modelo de objeto de documento realmentecaptura. Este framework que o DOM oferece é especificado, como utilizá-lo, é especificado por HTMLe como exibi-lo, como apresentá-lo é especificado por folhas de estilo em cascata.
(Consulte O Tempo De Deslizamento: 19:02)
Em suas folhas de estilo cascata mais simples basta especificar como um determinado elemento de marcação de HTML épara ser renderizado no sistema de saída. Note que isso nos permite especificar ou adaptar-se a diferentes sistemas de saídasimplesmente alterando a folha de estilo. Então, por exemplo, se o nosso dispositivo fosse um dispositivo de vídeo, então poderíamos marcar usando as cuias visuais. Assim, por exemplo, poderíamos marcar pormudando a cor usada para ênfase.Por outro lado, se a nossa saída for um simples falante de som, canal de áudio, então uma ênfase poderiaser em termos de alteração do volume simplesmente tornando-o mais alto, ou mais estressado enquanto fala.Então, os detalhes reais de apresentação para um determinado dispositivo são tratados pelo CSS. Então, o CSS realmentelida com como exibir usando o conteúdo que o HTML fornece. Vamos gradualmente construir maisà medida que vamos junto. Mas nós sugerimos que você realmente olhe para a principal fonte de informações sobre esses padrões, HTML, DOM e CSS na world wide web. Você encontrará essas informações emwww.w3.org.
(Consulte O Tempo De Deslizamento: 21:02)
Deixe-nos agora ir em frente e olhar para a aplicação real. Primeiramente vamos criar, a partir do nosso aplicativo de linha puramente de comando, uma versão HTML nua de nossa aplicação. Por HTML bare, euquero dizer, nosso aplicativo só irá saída completamente apenas em termos de HTML. Tendo feito isso, nósiremos então para a próxima etapa em que adicionaremos informações de styling via folhas de estilo.Vamos usar folhas de estilo de maneira bem simples para ilustrar como as mudanças, como a mudança de stylingocorre apenas usando folhas de estilo. Assim, novamente, estaremos indo por primeiro mudando deum aplicativo de linha de comando puro para um aplicativo HTML bare. E então vamos adicionar, como uma próxima etapa, folhas de estilo. O comentário final aqui é eu gostaria que você note que o nosso fair share comandoline application é um estilo procedimental de usar Java.E estaremos mudando essa mesma peça de código para criar um HTML ou HTML bare, seja qual for o caso deque ele possa ser. Vamos alterar o mesmo aplicativo de linha de comando. Você pode querermudar de fato a versão orientada a objetos do aplicativo tal que ele gera HTML eHTML com folhas de estilo.Este pode ser um bom ponto para fazer uma pausa.
(Video Starts: 23:13)Agora abriremos o prompt de comando. Nós já temos escrito os programas Java que precisamos.E aqui está o aplicativo FairShare. Temos exatamente o mesmo programa que tínhamos visto na última hora, quando na verdade fizemos em detalhes a versão de linha de comando deste programa. Como podemos ver queo programa será iniciado a partir do ‘ main ’, e então passou a fazer setup e linhas de comando de processos,argumentos e assim por diante.Vamos compilar este programa e criar um arquivo de classe. O compilador Java ‘ javac.exe ’ que temosusado foi instalado no ponto que mostramos em nossa tela. Por favor, use seu nome de caminhopara o seu compilador Java, isso muda porque ele depende de onde você instalou seu sistema JavaJDK. Então, onde quer que você tenha instalado o seu sistema Java JDK dentro dessa pasta, vá para a pastabin e então você verá o seu compilador Java.Então, aqui vamos nós. Voila, ela compilou com sucesso! Vamos agora executar isso. Novamente, o caminho exatoirá variar para cada um de vocês, pois ele depende de onde você teria instalado sua JVMJava. A forma como utilizamos o aplicativo de compartilhamento justo é usando qualquer um dos 3 comandos do usuário masbastante naturalmente iniciaremos registrando nossos amigos f1, f2, f3 e f4. Digamos que 4 delesestão lá. Voila, cadastrou 4 amigos!Deixe-nos ter algumas despesas de amostra. Vamos dizer se gastamos cerca de 200 rúpias. Escrevemos os comandos adequadosno prompt para adicionar as despesas.Então, adicionamos a seguir eventos:• f3 gastou 200 rúpias para todo o conjunto de colegas de quarto é gravado por nossa aplicação• f1 gasta 100• f4 gasta 250Então, neste momento tivemos 3 eventos e pagos pelos colegas de quarto que acabamos de ver. O roommatef3, f1 e f4 pagaram algo para algum evento. f2 hasn ’ t pago para qualquer evento.Então, quando pedimos as reportagens para vários colegas de quarto, obtemos a seguinte:• vemos que f2 é necessário pagar 137 rúpias e 50 paisa a outros.
• f1 é necessário pagar 37 rúpias 50 paisa a outros.• f3 é receber 62 rúpias 55 paisa de outros• f4 é receber 112 rupias 50 paisa de outras.Não sei se este particular neste caso específico o invariante está satisfeito ou não. Eugostaria que você tenha certeza de que quaisquer que sejam os montantes calculados, eles estão corretos; deixamos para você paraverificar se eles estão corretos ou não.No entretanto, vamos prosseguir com o programa bear HTML. Então, o fair share, bare HTMLJava, é o programa que agora nós vamos compilar e executar. Depois de compilá-locom sucesso, vamos é claro executá-lo agora. Comecemos de novo registrando os amigos novamente. Quandoexecutamos o novo programa, ao contrário da versão de linha de comando deste programa, nosso comando deu para foramuita saída, ele na verdade é HTML. E como o nome fica, é uma linguagem de marcação.Então, por exemplo, <h2> marca o início do cabeçalho nível 2, e </h2> marca o fim deesse cabeçalho. Então, seja qual for a informação em entre é marcado por HTML para ser nível de cabeçalho 2.Agora, quando este HTML atingir o navegador, o navegador será então decidir como renderizar o cabeçalhonível 2. Em outras palavras, ele poderia renderá-lo por exemplo, tornando-o um telefone arrojado, ou sublinhandoit, ou talvez mudando a cor, seja qual for o usuário dos desejos do navegador.Nosso programa gerou essa saída sob saída padrão. Vamos capturar isso em um arquivo HTML.E deixe-nos abrir este arquivo em um navegador. A saída do nosso programa está agora em forma HTML, e o navegadorque pode mostrá-lo. Observe que este foi apenas registro, portanto, disse que está registrandocolegas de quarto, há 4 deles. Diz que encontrou 4 colegas de quarto, e que o registro é feito.Não foi pedido para fazer nenhuma despesa nem foi pedido para fazer qualquer relatório.No que diz respeito às informações do banco de dados, ele diz que sim, há um arquivo lá desse tipo mas eleé um recomeço e por isso não há dados nele. Voltemos à nossa linha de comando e adiciamos alguns dadoso que significa os dados sobre despesas. Por isso, digamos que o amigo f1 gastou cerca de 250 rúpias. Ele novamentedeu saída HTML e o que deveríamos ter feito foi redirecionando essa saída para um arquivo HTML.
Deixe-nos por clareza saquê, mantenha os 2 arquivos HTML separados. Então, o arquivo que foi gerado pelo nosso programa, quando fez registros, deixe-nos manter isso separado do arquivo que ele gera sempre quenós fazemos despesas. Também manteremos o terceiro arquivo sempre que fizermos relatórios. Vamos pegar uma nova abae abrir o arquivo quando fizemos despesas nesta nova aba. Compare com coisas por aqui ele diz“ roommate registrations ”. Agora diz o “ colegas de quarto registrados são ”, seguido por qualquer que eles sejam.E agora há uma informação de despesas que foram adicionadas como eventos. Nessa posição, foiescrito “ nenhum relatório solicitado ” na versão anterior. E se nós rolamos para baixo, vemos agora que láé um banco de dados. Já encontrou 2 eventos. Há 4 colegas de quarto, e aqui estão os eventos.
Observe que porque executamos o programa duas vezes, ele mostra dois eventos por f1. Ok, você tem 3 eventos,número de entradas no banco de dados é 3, por aqui o f3 gastou 450 rúpias. Este evento foi adicionadoe outro display é o mesmo de antes. Neste ponto deixe-nos pedir relatórios e, como disse antes,coletamos os resultados em um arquivo separado. Partimos do f2, por isso, peçamos um relatório para o f2. Deixe-nosprocurar o arquivo mais recente que nós salvamos e depois abri.it.Como antes ele nos informa sobre os colegas de quarto registrados. Ela diz que não foram registradas novas despesasregistradas. A quantidade f2 deve é de 237 rúpias 50 paisa. Se entrarmos no banco de dados, o banco de dadosnão tem eventos extras do que antes. Então, o número de eventos é de 3. E um número de entradas no banco de dadosainda é 3.
Nosso amigo f2, já que ele ou ela não contribuiu até agora é agora supostamente pagar toda a contribuição. Então, isso nos diz, isso nos mostra como funciona o programa de arquivos bare HTML. Deixe-nos agorair em frente e fazer o mesmo com a versão final.
(Consulte O Tempo De Deslizamento: 39:35)
Este é um ponto em que você pode parar, rever o material e depois voltar.Deixe-nos saber seguir adiante com a versão CSS. Nisso nós vamos adicionar código CSS à nossa parte HTML. Como antes, vamos simplesmente examiná-lo. Ok, temos a nossa versão HTML e CSS por aqui.Deixe-nos como antes compilá-lo usando nosso compilador Java, que é tipicamente em alguma parte da sua instalação.
Vamos precisar registrar colegas de quarto; isso novamente dá saída. E como de costume, devemos realmente capturara saída em algum arquivo. Vamos preservar os arquivos anteriores para nossa própria referência.E assim, vamos levá-lo em vez de um b c, vamos dizer x y z, que é x.html y.html e z.html. Assim,x.html contará com a versão de registro. Vamos em frente com algumas despesas como antes, vamossimplesmente estar adicionando algumas despesas de amostra.E, novamente como antes, vamos levar um relatório para um f3. Nós tínhamos ignorado o f3, então vamos ter um relatório para f3.O que eu fiz durante este tempo é eu primeiro coletei toda a saída HTML para todo o programa, e então agora vamos abri-lo em um navegador e ver como ele parece. Antes de mais nada, eu deveria abrirx.html porque isso representa o registro, mas desta vez com CSS. Vamos ver como fica.Depois de colar o arquivo CSS no mesmo diretório que o arquivo HTML, se recarregarmos, devemos obter o
versão estilada do nosso HTML anteriormente bare. Assim, ele é o mesmo arquivo bare HTML, mas desta vez elefoi tocado pelo CSS e a apresentação foi alterada.A parte de registro é destacada em azul. Todos os detalhes são separados para fora: despesas, relatórios, informações do banco de dadose o fato de ser um recomeço, que é um novo banco de dados. Então, vamos olhar parao registro de despesas que estava em y.html. Lá vai você. Mas percebem a diferença. A parte do roommatenão está mais em azul, e o registro de despesas do registro – está em azul. Mas o relatório do registro –parte não está em azul.
Em outras palavras, a banda azul é usada para chamar a atenção do usuário final para qualquer que seja o comando do usuárioo aplicativo de compartilhamento justo está respondendo. Vamos verificar isso olhando para a versão final do relatóriodo mesmo comando. Vamos usar o aplicativo de compartilhamento justo, tivemos que usar o aplicativo fair sharepara gerar relatório para um dos colegas de quarto. Devemos agora ver a área de reportagem em uma banda azul, e lá você está.Então, nós usamos folhas de estilo de uma maneira muito diferente, o que era puramente apenas uma informaçãoque foi dada por HTML tem agora, apenas usando o sistema de styling, nos fornece uma melhor apresentaçãoe nos ajuda a nos concentrar no que exatamente está sendo respondido.Se nosso programa de aplicativos, FairShare, estiver respondendo a uma solicitação de registro, então essa parte é dadaum fundo azul. Se o nosso programa está respondendo a solicitação de despesa, então o bloco de despesas édado um fundo azul. Se o nosso programa está respondendo a uma solicitação de relatório, então isso é dado um fundo azul. Em cada ponto, as informações reais do banco de dados também são exibidas para fora.Se você observar, essa informação do banco de dados parece semelhante à forma como a planilha olha. Mas lásão algumas coisas que estão permanecendo, por exemplo, as linhas verticais aqui. Mas que separam as colunasda tabela e as linhas horizontais que separam as linhas da tabela não forammostradas.
Um dos exercícios de prática que sugerimos que você faça é tentar escrever CSS tais que essas colunase linhas, as linhas, separadores verticais e separadores horizontais também sejam vistas. Essa seria umaboa maneira de realmente chegar em aprender CSS e HTML.(Video Ends: 47:07)Com isso chegamos ao final desta sessão. Vimos apenas como uma versão HTML + CSS iráclassificar de look. Na próxima sessão, vamos realmente pegar o código e ver como ele difere do aplicativo da linha de comando simples.Quando vemos as diferenças, esperamos que você possa ver como o código da linha de comando foi alteradoincrementalmente para obter a versão HTML, ou versão HTML + CSS do código. A etapa incremental doé simples, não difícil, mas ainda assim é tediosa.Veja você na próxima sessão.