]> gitweb.fluxo.info Git - boaspraticas.git/commitdiff
Define projeto de exemplo
authorSilvio Rhatto <rhatto@riseup.net>
Tue, 10 Nov 2015 04:06:54 +0000 (02:06 -0200)
committerSilvio Rhatto <rhatto@riseup.net>
Tue, 10 Nov 2015 04:06:54 +0000 (02:06 -0200)
Makefile
aulas/ambientes.rst
aulas/licencas.rst
aulas/metodologias.rst
aulas/reinventando.rst
aulas/versionamento.rst

index 9b526a541e49aa3ec23dc31f1d4af3a14542c486..cb829a8d922963ae0da51c05c2d8b82ddef639c3 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -164,3 +164,5 @@ doc: web
        @pandoc ementa.rst -o _build/pdf/ementa.pdf
        @pandoc ementa.rst -o _build/odt/ementa.odt
        @pandoc ementa.rst -o _build/docx/ementa.docx
+
+publish: web web_deploy
index 828f5b27ee1190b0c094829162ec7d1cb627bc54..d4c63a975cb9a4659406129a8dfa6d330ac41b63 100644 (file)
 - Organização de pastas.
 - Backups.
 
+Roteiro do screencast:
+
+::
+
+    # Criando uma pasta para projetos
+    mkdir ~/projetos
+
+    # Criando a pasta do nosso projeto
+    mkdir ~/projetos/blogatico
+
+    # Criando a estrutura básica do seu projeto
+    cd ~/projetos/blogatico
+    touch README.md ChangeLog TODO.md
+
 2.4 - Scripts e templates
 ~~~~~~~~~~~~~~~~~~~~~~~~~
 
index cd3e678a68bec91857a3945af4f3eae28cf8436b..d56b8af5e76371805cf4de5c2deace0ab686f955 100644 (file)
@@ -128,6 +128,12 @@ Exemplo: `licença desta documentação </LICENSE.html>`_.
 * Você pode criar sua própria licença!
 * Você pode licenciar o seu trabalho sob múltiplas licenças.
 
+Roteiro do screencast:
+
+::
+
+    wget https://www.gnu.org/licenses/gpl.txt -O LICENSE.txt
+
 3.6 Atividades
 --------------
 
index 53f665d098b2c486c2b92ef110dac5b393a8524d..a5efb2c92c89a286157b3db24ce2cc1cc5da9eeb 100644 (file)
@@ -107,16 +107,57 @@ Queremos:
 1.7 - Começando um projeto
 --------------------------
 
-- Brainstorm! O que é o projeto?
-- Exemplo: um pequeno website.
-- Pesquisa do que já existe.
+1.7 - Etapas
+~~~~~~~~~~~~
+
+- Etapa 0: descoberta, brainstorm e levantamento de escopo!
+
+    - Qual ou quais problemas a serem atacados?
+    - Como definir o projeto e seu escopo? O que é e o que não é?
+    - Quais soluções possíveis? Qual a escolhida?
+    - A ser realizado em conjunto pel equipe de desenvolvimento e quaisquer partes envolvidas (clientes, por exemplo).
+    - Descrição em alto nível.
+
+- Etapa 1: pesquisa do que já existe: quais projetos abarcam os problemas? No que deixam a desejar?
+- Etapa 2: planejamento inicial: bootstrap, provas de conceito, etc.
+- Etapa 3: aplicar um conjunto de metodologias mas principalmente *realizar* o projeto.
+
+Imagens:
+
+* Diagramas jocosos de problema/solução.
+
+1.8 - Projeto de exemplo
+~~~~~~~~~~~~~~~~~~~~~~~~
+
+0. Descoberta:
+  * Problema: garantir que o aluno, ao concluir este curso, possua um blog simples para relatar suas descobertas em desenvolvimento de software (knowledge base / bagagem de conhecimento pessoal).
+  * Escopo:
+
+    * O blog deve ser construido de acordo com as ferramentas abordadas neste curso.
+    * Quanto mais simples, melhor: fácil de construir e confortável para manter e consultar (afinal, não queremos gastar tempo no futuro mantendo esse projeto).
+    * Que dificilmente se torne tecnologicamente obsoleto: sem base de dados, com o mínimo de programação e formato de edição simples.
+    * Que dependa o mínimo de bibliotecas e aplicações externas.
+    * Que seja fácil de hospedar em qualquer local, fácil de fazer backup e que possa facilmente ser transformado noutros formatos (livro).
+  * Soluções:
+    * Criar um blog em qualquer lugar e fazer backups na unha? Pouco elegante e não atende a todos os requisitos.
+    * Criar um blog em HTML simples e subir manualmente para um servidor? Não, queremos algo entre a web 1.0 e a web contemporânea.
+    * Que tal criarmos um blog gerado estaticamente, isto é, um conjunto de arquivos simples de editar e que são compilados num site que possa ser facilmente enviado para um servidor como qualquer outra aplicação web?
+
+1. Pesquisa: pesquise pesquise pesquise! O que você encontrou?
+2. Bootstrap: por hora precisamos apenas de um nome e o resto será abordado durante o curso! Curiosamente, nomear um projeto é a etapa mais difícil, mas hoje estamos criativos e chamaremos de "blogático", um blog prático :P
+3. Realização: quer ver como o projeto pode ser realizado? Continue com o curso! :P
 
 1.8 - Atividades
 ----------------
 
 #. Adote a técnica Pomodoro numa tarefa grande e importante do seu dia. Você pode usar qualquer cronômetro disponível -- do seu computador, do telefone, do relógio de pulso ou mesmo um timer de cozinha. Permaneça apenas realizando a tarefa importante em cada bloco de 25 minutos. Avalie a eficácia do método: ele te ajudou?
 
-#. Para este curso, definimos o nosso projeto de exemplo como sendo um website bem simples. Você pode fazer o mesmo ou então escolher qualquer projeto que queira fazer usando qualquer linguagem de programação e adaptar as atividades propostas nas aulas seguintes de acordo com o seu caso. Sugerimos apenas que você escolhe um nome para o seu projeto, mesmo que temporário! Mas lembre-se: nomes tem poder! :)
+#. Para este curso, definimos o nosso projeto de exemplo como sendo um website/blog bem simples. Você pode fazer o mesmo ou então escolher qualquer projeto que queira fazer usando qualquer linguagem de programação e adaptar as atividades propostas nas aulas seguintes de acordo com o seu caso. Sugerimos apenas que você escolhe um nome para o seu projeto, mesmo que temporário! Mas lembre-se: nomes tem poder! :)
+
+# Pesquise geradores de site estáticos (static site generators). O que você encontrou?
+
+# Bônus: pense num nome para seu projeto ou, se preferir, adote o que nós escolhemos.
 
 Referências
 -----------
index 6303ba109c942fd3c67f23e02a724139b25f428e..c7aa0cbf62d3dd0e889e44cbfa5d82a22b797b13 100644 (file)
@@ -4,6 +4,7 @@
 6.1 - Patterns
 --------------
 
+* Desacoplamento.
 * Filosofia UNIX:
   * Pequenos softwares/bibliotecas.
   * Que fazem uma coisa bem.
index 056c77993f0e4eeb16663b9bcdfd0014bd1fb8d1..6277c1e31121e10efbbdc5c06ee97e4b0182bb0f 100644 (file)
@@ -73,8 +73,11 @@ Imagens:
 A única exigência é especificar um nome e email (de preferência funcional ;)
 ara constar nas informações de revisão.
 
+Roteiro do screencast:
+
 ::
 
+  cd ~/projetos/blogatico
   git config --global user.name  "Seu Nome"
   git config --global user.email "seu@email"
 
@@ -82,21 +85,25 @@ ara constar nas informações de revisão.
 ~~~~~~~~~~~~~~~~~~
 
 * Repositórios: "pastas geridas pelo git".
-* Iniciando um projeto no git:
+* Pasta ".git" criada no repositório: não polui seu projeto.
+
+Roteiro do screencast:
 
 ::
 
-    mkdir projeto
-    cd projeto
+    # Adicionando nosso projeto no git
+    cd ~/projetos/blogatico
     git init
 
-* Pasta ".git" criada no repositório: não polui seu projeto.
+    # Clonando um projeto existente
 
 4.3 - Trabalhando no projeto
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
 * Três estágios de mudanças: cometidas (commited), marcadas para commit (staged) e modificadas (changed).
 
+Roteiro do screencast:
+
 ::
 
     atom README.md    # edite seu arquivo
@@ -123,6 +130,8 @@ Imagens:
 * Cada "revisão" do histórico representa um estado do repositório (snapshot).
 * ID da revisão: hash SHA-1.
 
+Roteiro do screencast:
+
 ::
 
     git log
@@ -139,6 +148,8 @@ Imagens:
 
 * Você pode fazer um novo commit na unha ou usar o ferramental do git.
 
+Roteiro do screencast:
+
 ::
 
     git commit --amend
@@ -148,9 +159,39 @@ Imagens:
 4.5 - Ramificações (branches e merges)
 --------------------------------------
 
+* Existem vários "ramos" na história de um software.
+* Os ramos, ou branches, divergem e convergem.
+* A convergência nem sempre é suave, porém o git auxilia com várias estratégias.
+
+Roteiro do screencast:
+
+::
+
+    git branch develop
+    git checkout develop
+    git commit
+    git checkout master
+    git merge develop
+
 4.6 - Usando o git-flow
 -----------------------
 
+* O git-flow é um plugin para o git.
+* Ele força um fluxo de trabalho integrado.
+* Branches básicos (nomes podem ser customizados):
+
+  * master: branch principal com o código que é submetido para a produção.
+  * develop: branch de desenvolvimento onde funcionalidades são integradas e seu conjunto testado.
+  * features/: prefixo para branches onde funcionalidades são desenvolvidas.
+  * hotfix/: prefixo para branches de correções rápidas (bugfixes).
+
+Roteiro do screencast:
+
+::
+
+    git flow init
+    git flow feature start doc
+
 4.7 - Submódulos
 ----------------
 
@@ -158,6 +199,24 @@ Imagens:
 * Trava em revisões específicas.
 * "Sistema de empacotamento" simples e integrado ao git.
 
+Roteiro do screencast:
+
+::
+
+    # No repositorio
+    git submodule add https://github.com/dhg/Skeleton skeleton
+    git commit -a -m "Adiciona skeleton"
+
+    # Clonando o repositorio noutro local
+    cd ..
+    git clone projeto projeto-clonado
+    cd projeto-clonado
+    git submodule update --init
+
+    # Ou:
+    cd ..
+    git clone --recursive projeto projeto-clonado
+
 4.8 - Social coding (gitlab, github, etc)
 -----------------------------------------