aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSilvio Rhatto <rhatto@riseup.net>2015-11-10 02:06:54 -0200
committerSilvio Rhatto <rhatto@riseup.net>2015-11-10 02:06:54 -0200
commitadf8498e2a624c1d5bd86ed459a1a1d7efeadb85 (patch)
treeb17e192caf7165a3ef562d0d044073751ec2c508
parent6d994419c4e38d1f61bf7683d7bf23b616e97e7b (diff)
downloadboaspraticas-adf8498e2a624c1d5bd86ed459a1a1d7efeadb85.tar.gz
boaspraticas-adf8498e2a624c1d5bd86ed459a1a1d7efeadb85.tar.bz2
Define projeto de exemplo
-rw-r--r--Makefile2
-rw-r--r--aulas/ambientes.rst14
-rw-r--r--aulas/licencas.rst6
-rw-r--r--aulas/metodologias.rst49
-rw-r--r--aulas/reinventando.rst1
-rw-r--r--aulas/versionamento.rst67
6 files changed, 131 insertions, 8 deletions
diff --git a/Makefile b/Makefile
index 9b526a5..cb829a8 100644
--- 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
diff --git a/aulas/ambientes.rst b/aulas/ambientes.rst
index 828f5b2..d4c63a9 100644
--- a/aulas/ambientes.rst
+++ b/aulas/ambientes.rst
@@ -40,6 +40,20 @@
- 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
~~~~~~~~~~~~~~~~~~~~~~~~~
diff --git a/aulas/licencas.rst b/aulas/licencas.rst
index cd3e678..d56b8af 100644
--- a/aulas/licencas.rst
+++ b/aulas/licencas.rst
@@ -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
--------------
diff --git a/aulas/metodologias.rst b/aulas/metodologias.rst
index 53f665d..a5efb2c 100644
--- a/aulas/metodologias.rst
+++ b/aulas/metodologias.rst
@@ -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
-----------
diff --git a/aulas/reinventando.rst b/aulas/reinventando.rst
index 6303ba1..c7aa0cb 100644
--- a/aulas/reinventando.rst
+++ b/aulas/reinventando.rst
@@ -4,6 +4,7 @@
6.1 - Patterns
--------------
+* Desacoplamento.
* Filosofia UNIX:
* Pequenos softwares/bibliotecas.
* Que fazem uma coisa bem.
diff --git a/aulas/versionamento.rst b/aulas/versionamento.rst
index 056c779..6277c1e 100644
--- a/aulas/versionamento.rst
+++ b/aulas/versionamento.rst
@@ -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)
-----------------------------------------