Giter Club home page Giter Club logo

cs-2019-01's Introduction

Build Status

cs-2019-01

Repositório para a matéria de Construção de Software - INF/UFG

Aula 01 Implementação de 21 algoritmos em Java e JavaScript

Aula 02 Contexto da disciplina no curso

Aula 03 Refatoração de condições e nomes

Aula 04 Refatoração dos algoritmos em JavaScript, com documentação, análise estática e testes

Aula 05 Organização do diretório dos algoritmos em Java

Aula 06 Refatoração dos algoritmos em Java, com documentação, testes, qualidade e segurança

Aula 07 Implementação de algoritmos usando vetor em Java e JavaScript

Aula 08 Implementação de algoritmos com arquivos

cs-2019-01's People

Contributors

vnduda avatar kyriosdata avatar dependabot[bot] avatar

cs-2019-01's Issues

Remova index.html

Não tem finalidade (nem conformidade) com o que foi requisitado. Em tempo, já vimos como criar testes de unidade. Se a intenção é outra, então deposite o arquivo em diretório próprio, mas não "misture".

Trate constantes como constantes

Já fiz esta observação, inclusive via pull request. Por exemplo, abaixo, em vez de let deveria ser const.

    let j = d[0] + d[1] + d[2] + d[3] + d[4] + d[5] + d[6] + d[7] + d[8];
    let k = d[1] + d[2] + d[3] + d[4] + d[5] + d[6] + d[7] + d[8] + d[9];
    let dj = (j % 11) % 10;
    let dk = (k % 11) % 10;

Em vez de...

Em branch lê-se "testes para propriedade3025", "testes para ...". Em vez desta estratégia, melhor é criar Propriedade3025Test e assim por diante, ou seja, classes específicas para cada método.

Math.floor em vez de parseInt

Math.floor possui exatamente a semântica esperada em alguns casos presentes no seu código. Embora parseInt também tenha efeito similar, a semântica é muito importante, pois parseInt redireciona nosso cérebro para pensar em algo um pouco diferente do bem mais específico Math.floor, nestes casos.

Visibilidade das suas funções

Uma forma de dividir o código em JavaScript é como está fazendo, contudo, para que a função seja visível externamente, em outros módulos, uma possibilidade é acrescentar

module.exports = propriedade153;

ao final do arquivo, neste caso, Ex02.js.
Esta recomendação tem alguma relação com #4

Documentação (melhorias)

A linha

@returns {boolean} caso verdadeiro retorna true, caso contrário false

seria melhor se reescrita...

@returns {boolean} O valor verdadeiso se o argumento fornecido satisfaz a propriedade 3025 e, o valor falso, caso contrário. 

Esclarecimentos

Tendo em vista que:

  • aprendizado é um processo que demanda dedicação e esforço consideráveis, além de constantes;
  • falhas fazem parte do processo, de fato, no meu entendimento, são inevitáveis;
  • falhas e dificuldades, embora inevitáveis, não podem impedir o progresso, o aprendizado, o contínuo aprimoramento; e que
  • a turma dedica-se às atividades e há progresso claro (parabéns pelo esforço),

esclareço que:

  • Em vez de duas atividades para serem concluídas até o dia primeiro de julho, teremos apenas uma única atividade, ao contrário do que foi apresentado no dia de ontem (11/06/2019).
  • A data limite permanece primeiro de julho. Ou seja, a atividade a ser realizada conta com um período de três semanas inteiras para a sua realização, além de 7 horas em atividades supervisionadas.
  • Nossa aula do dia 27 de junho será não presencial. Ou seja, você terá tempo adicional para concluir suas atividades sem o ônus de se deslocar até o laboratório. Em consequência, dia 25 de junho é o último dia para você esclarecer dúvidas com o professor. Ou seja, você tem duas semanas inteiras para esclarecer suas dúvidas sobre o que deve ser feito, sobre o critério de avaliação, sobre as suas issues, sobre os pull requests, sobre a qualidade do que você está produzindo, sobre os tópicos pertinentes à construção de software, enfim, sobre as suas dúvidas que só você pode apresentar.
  • As datas acima são limites, tudo pode ser concluído antes.
  • Os critérios de avaliação permanecem, assim como a forma de definição da nota. Se você está em dúvida, então entre em contato com o professor. De forma resumida, deve-se concluir o que foi pedido (não parcialmente), atender issues e pull requests, e com a qualidade definida por várias ferramentas para que a sua nota seja pelo menos 6,0. Há risco significativo aqui se não houver interação com o professor. Mais uma vez, esclareça suas dúvidas especificamente para o seu repositório (elemento de avaliação contínua da disciplina).
  • A atividade a ser realizada, dado que antes eram duas, e agora apenas uma, predefinida pelo docente, é aquela da "Ordem de Serviço" (programa para identificar o dia da semana de uma data). Esta atividade foi identificada como pertencente ao tópico aula-10 (veja portal da disciplina).
  • Você pode optar pela outra atividade, aquela atribuída ao tópico aula-09, o que cabe a você escolher, em vez do tópico aula-10, predefinido pelo docente. Caso queira optar pela atividade da aula-09, então deverá fazer o registro correspondente no arquivo README.md do seu repositório até as 19h59min do dia 13/06/2019, conforme ilustrado abaixo.

Minha preferência

Atividade documentada no tópico aula-10 (veja portal da disciplina).

Estas mudanças visam assegurar que nosso foco na “formação de profissionais aptos a contribuir efetivamente com a produção de softwares de qualidade seguindo princípios éticos e postura profissional” (objetivo do curso de Engenharia de Software), não seja prejudicado.

Ex21.java (CPF2)

Nas linhas 21 e 22 são definidas duas CONSTANTES, não são variáveis. Em Java você terá que usar o final antes do int para indicar que são constantes. Isto é o mesmo que #10, que já foi observado antes.

Também altere o nome dos arquivos, Ex21.java deveria ser CpfAlternativo.java, se não preferir outro nome. Isto tem relação com #7.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.