Skip to content

work environment

Pedro Felix edited this page Feb 24, 2020 · 1 revision

Ambiente de trabalho

Requisitos

Localizações

Git

Os sistemas de controlo de versões, tal como o Git, têm por objectivo:

  • Servir de ponto de armazenamento para os ficheiros produzidos em múltiplos computadores.
  • Manter o historial de criação, alteração e remoção destes ficheiros.

Adicionalmente, os sistemas de controlo de versão distribuídos, tais como o Git têm como vantagem adicional:

  • Suportar diferentes pontos de armazenamento.
  • Não existir um ponto único de falha .
  • Funcionar sem rede.

As vantagens da utilização destes sistemas são:

  • Simplificar a realização de projectos por múltiplos programadores, por exemplo garantido que a versão dos ficheiros utilizada é a mais actual.
  • Manter todo o historial da evolução do projecto.
  • Criar e gerir ramos de desenvolvimento paralelo.

Aconselha-se a leitura do livro Pro Git, nomeadamente os dois primeiros capítulos.

Gradle

O Gradle é uma ferramenta para a automatização dos processos associados à construção de software, tais como: compilação, execução de testes, criação de arquivos ".jar" e a geração de documentação a partir dos ficheiros fonte. Esta ferramenta é constituída por uma biblioteca Java e um script para execução na linha de comando ("gradlew.bat").

As tarefas automatizadas pelo Gradle são descritas em ficheiros .gradle, designados de configuration scripts, e tipicamente com o nome "build.gradle".

A utilização do Gradle, ou de ferramentas similares, apresenta as seguintes vantagens:

  • Simplificação da realização das tarefas, como a compilação ou a execução dos testes, através da automatização da sua realização. Este aspecto é especialmente importante em tarefas que envolvem a execução de mais do que um comando por uma ordem bem definida.
  • Consistência de processos e redução de erros, ao minimizar a intervenção humana na realização da tarefa.
  • Integração com ferramentas externas, como por exemplo em cenários de integração contínua.
  • Simplificação da geração da aplicação em múltiplos computadores, nomeadamente diferentes daqueles onde é desenvolvida.
  • No contexto da unidade curricular de Laboratório de Software, é requisito que o projecto desenvolvido seja completamente construído, instalado e testado através da execução de tasks Gradle.

Organização de pastas e ficheiros

Propõem-se a utilização duma organização normalizada para os ficheiros e pastas do projecto. A adopção desta organização normalizada reflecte boas práticas no desenvolvimento de projectos software (e.g. Maven) e tem por objectivo:

  • Facilitar a compreensão e localização dos ficheiros produzidos, por parte de discentes e docentes.
  • Simplificar a automatização de tarefas, como a compilação, geração da documentação ou a produção de arquivos ".jar".
  • Permitir a mobilidade das pastas de projecto entre máquinas diferentes.

Pasta raiz

A pasta raiz apenas contém o ficheiro "build.gradle", com a descrição das tarefas ("tasks") associados à construção do artefactos associados ao projecto. O restante conteúdo do projecto está presente em pastas internas.

Pasta "src/"

A pasta "src/" contém todos os ficheiros com ficheiros "fonte", ou seja, ficheiros criados pela equipa de desenvolvimento. Esta pasta divide-se nas pastas:

  • "src/main/" com os ficheiros contendo as funcionalidades implementadas no projecto;
  • "src/test/" com os ficheiros para o teste do projecto.

Cada uma destas pastas subdivide-se nas seguintes pastas:

  • ".../java" com os ficheiros fonte Java
  • ".../sql" com ficheiros contendo scripts SQL

A estrutura interna das pastas ".../java" corresponde à estrutura de "packages" adoptada.

Pasta "build/"

A pasta "build/" contém todos os ficheiros produzidos de forma automática a partir dos ficheiros fonte, nomeadamente: ficheiros ".class" e ".jar" com as classes Java; ficheiros ".html" com a documentação produzida pelo JavaDoc.

Pasta "vendor/"

A pasta "vendor/" contém ficheiros adicionais, não produzidos pela equipa de desenvolvimento nem gerados a partir destes. São exemplo os ficheiros ".jar" com bibliotecas de classes externas, presentes na pasta interna "vendor/main" e "vendor/test" (e.g. junit-4.8.1.jar).

Clone this wiki locally