aboutsummaryrefslogtreecommitdiff
path: root/aulas
diff options
context:
space:
mode:
authorSilvio Rhatto <rhatto@riseup.net>2015-11-16 14:49:03 -0200
committerSilvio Rhatto <rhatto@riseup.net>2015-11-16 14:49:03 -0200
commit7570d940537891cb398f51cfc7bce0d1b5e36e9e (patch)
tree063dab60495ab7a29e6ebdbd638284b99e73804b /aulas
parentdfa05a268b3640ddbe0b906ea174453144bce283 (diff)
downloadboaspraticas-7570d940537891cb398f51cfc7bce0d1b5e36e9e.tar.gz
boaspraticas-7570d940537891cb398f51cfc7bce0d1b5e36e9e.tar.bz2
Adiciona imagens e template de ikiwiki
Diffstat (limited to 'aulas')
-rw-r--r--aulas/ambientes.rst10
-rw-r--r--aulas/clientes.rst25
-rw-r--r--aulas/encerramento.rst10
-rw-r--r--aulas/reinventando.rst27
-rw-r--r--aulas/seguranca.rst4
-rw-r--r--aulas/versionamento.rst6
6 files changed, 50 insertions, 32 deletions
diff --git a/aulas/ambientes.rst b/aulas/ambientes.rst
index d9b8629..8755967 100644
--- a/aulas/ambientes.rst
+++ b/aulas/ambientes.rst
@@ -175,7 +175,7 @@ Roteiro do screencast:
2.3 - Arquivos básicos
~~~~~~~~~~~~~~~~~~~~~~
-* README: em Markdown (.md), reStructuredText (.rst), texto simples (.txt), etc.
+* README: em Markdown (.md ou .mdwn), reStructuredText (.rst), texto simples (.txt), etc.
* ChangeLog: opcional e pode ser gerado automaticamente.
* Makefile ou outro arquivo dependendo do método de construção do software (Rakefile, setup.py, etc).
@@ -185,8 +185,8 @@ Roteiro do screencast:
# Criando a estrutura básica do seu projeto
cd ~/projetos/blogatico
- touch README.md ChangeLog TODO.md
- gedit README.md
+ touch README.mdwn ChangeLog TODO.mdwn
+ gedit README.mdwn
2.3 - Markdown e texto estruturado
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
@@ -207,7 +207,7 @@ Roteiro do screncast:
::
- gedit TODO.md
+ gedit TODO.mdwn
Imagens:
@@ -247,7 +247,7 @@ Roteiro do screencast:
# Criando o conteúdo inicial
mkdir www
cd www
- touch index.md
+ touch index.mdwn
# Testando!
../bin/build
diff --git a/aulas/clientes.rst b/aulas/clientes.rst
index ccf7416..01f69ae 100644
--- a/aulas/clientes.rst
+++ b/aulas/clientes.rst
@@ -4,7 +4,7 @@
8.1 - Fazendo e apresentando uma proposta comercial
---------------------------------------------------
-8.1 - Items essenciais de uma proposta
+8.1 - Itens essenciais de uma proposta
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
* Descrição das necessidades do cliente.
@@ -27,13 +27,16 @@
* A forma e o teor da proposta que dirão se o preço que você pede faz sentido.
8.2 - Estimando o trabalho necessário
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+-------------------------------------
* É uma ciência inerentemente inexata.
* A experiência do(a) desenvolvedor(a) é fundamental para ganhar intuição. É justamente da sua experiência passada de uso de tempo que você consegue estimar melhor o tempo de cada tarefa.
* Programadores(as) em geral são otimistas nas estimativas. Considere sempre um tempo a mais não-alocado para o inesperado.
-8.2 - Como cobrar
+8.3 - Como e quanto cobrar
+--------------------------
+
+8.3 - Como cobrar
~~~~~~~~~~~~~~~~~
Por hora corrida ou por projeto?
@@ -41,42 +44,42 @@ Por hora corrida ou por projeto?
* Por hora corrida: melhor para projetos cujo escopo é pouco definido.
* Por projeto: só recomendo cobrar um valor fixo pelo projeto quando o escopo tiver alguma definição, do contrário você pode ser levado a trabalhar muito mais do que o imaginado e a qualidade do seu trabalho tenderá a ser mais baixa, criando uma espiral de problemas.
-8.2 - Quanto cobrar
+8.3 - Quanto cobrar
~~~~~~~~~~~~~~~~~~~
* Calcule o valor/hora dos seus honorários.
* Apresente para o cliente uma tabela com cada tarefa ou grupo de tarefas (design, implementação, controle de qualidade, documentação, etc) com o tempo estimado e o valor da etapa com base no seu valor/hora. Isso facilita muito a negociação e é uma forma de manter um canal aberto de diálogo com o cliente.
-8.3 - Quebrando o mercado
+8.4 - Quebrando o mercado
-------------------------
-8.3 - Competição
+8.4 - Competição
~~~~~~~~~~~~~~~~
-A competição no mercado pode forçar a redução do valor/hora. Porém, a redução do preço vem dos seguintes fatores:
+A competição no mercado pode forçar a redução do valor cobrado. Porém, a redução do preço vem dos seguintes fatores:
* Redução da qualidade: a concorrência pode apresentar uma proposta mais barata que sua, mas você sabe que o produto entregue será muito pior. Certifique-se de indicar na sua proposta o nível de qualidade e manutenção futuras necessárias no seu produto.
* Redução de funcionalidade: a concorrência oferece uma proposta mais simples. Isso pode ser mitigado também com o detalhamento da sua solução proposta: crie uma proposta modular: produto básico, intermediário ou avançado, agrupando funcionalidades prioritárias, não-prioritárias e opcionais, com a opção dos módulos serem construídos de forma incremental.
* Aumento de eficiência: a concorrência consegue oferecer uma proposta equivalente à sua mas precisa de muito menos horas técnicas para concluí-la.
-8.3 - Cooperação
+8.4 - Cooperação
~~~~~~~~~~~~~~~~
* Associações de profissionais de uma mesma área são iniciativas que ajudam a diminuir a concorrência desleal.
* Instituem de tabelas de preços e faixas salarias de referência.
* Faixas comuns: júnior, pleno e sênior.
-8.4 - Formalizando sua relação
+8.5 - Formalizando sua relação
------------------------------
* MEI: até R$60 mil por ano e apenas R$50 mensais de despesas (dados de 2015).
* Simples Nacional: sua empresa cresceu!
* CLT e CLT Flex: preferível quando você tiver uma relação estável com um empregador, porém depende do cliente oferecer essa opção.
-8.5 - Atividades
+8.6 - Atividades
----------------
-8.6 - Referências
+8.7 - Referências
-----------------
* `Portal do Empreendedor <http://www.portaldoempreendedor.gov.br/>`_.
diff --git a/aulas/encerramento.rst b/aulas/encerramento.rst
index 7218703..2dd1e75 100644
--- a/aulas/encerramento.rst
+++ b/aulas/encerramento.rst
@@ -4,19 +4,19 @@
9.1 - Metodologias e técnicas de produtividade
----------------------------------------------
-* Organização para fluidez.
+* Organização almeja fluidez.
* Busque uma metodologia pessoal.
* Saiba se adaptar a diversas metodologias em equipe.
-9.2 - Ambientes de desenvolvimento eficientes
----------------------------------------------
+9.2 - Ambientes de desenvolvimento
+----------------------------------
* Deixe seu ambiente de desenvolvimento afinado com o seu trabalho.
* Descubra quais são as ferramentas fundamentais para você.
* Mantenha templates e scripts de produtividade para facilitar a prototipagem de novos projetos e a execução de tarefas cotidianas.
-9.3 - Licenças de software
---------------------------
+9.3 - Licenciamento de software
+-------------------------------
* Qualquer conteúdo é protegido por copyright por padrão.
* Licenças de software livre e aberto abrandam o copyright, aproximando seu software do copyleft.
diff --git a/aulas/reinventando.rst b/aulas/reinventando.rst
index c599aaf..8bb2b3f 100644
--- a/aulas/reinventando.rst
+++ b/aulas/reinventando.rst
@@ -1,7 +1,7 @@
7. Quando (não) reinventar a roda
=================================
-6.1 - Patterns
+7.1 - Patterns
--------------
* Separando código de dados, sobretudo dados sigilosos!
@@ -11,28 +11,43 @@
* Que fazem uma coisa bem.
* E que podem ser facilmente combinados.
-6.2 - Antipatterns
+7.2 - Antipatterns
------------------
* Hype: cuidado com o ciclo dos modismos!
* Linearidade: o mito da pessoa-mês (Lei de Brooks).
-* Inferno de dependências
+* Inferno de dependências.
+* Bitrot: decaimento natural do código!
-6.4 - Inventando, reinventando e desinventando
+7.3 - Inventando, reinventando e desinventando
----------------------------------------------
Hora de converter nosso projeto blogático para uma plataforma com mais funcionalidades!
-6.5 - Documentação: lendo e escrevendo
+Roteiro do screencast:
+
+::
+
+ cd ~/projetos/blogatico
+ cp -r ../boaspraticas/_templates/ikiwiki/* .
+ make
+
+7.4 - Documentação: lendo e escrevendo
--------------------------------------
+* Quanto mais próxima a documentação está do código, mais difícil dela se desatualizar.
+* Docblocs / heredocs.
+
Roteiro do screencast:
::
sudo apt-get install ttyrec
-6.7 - Referências
+7.5 - Atividades
+----------------
+
+7.6 - Referências
-----------------
* `Versionamento Semântico 2.0.0 <http://semver.org/lang/pt-BR/>`_.
diff --git a/aulas/seguranca.rst b/aulas/seguranca.rst
index 2872035..fa78651 100644
--- a/aulas/seguranca.rst
+++ b/aulas/seguranca.rst
@@ -7,7 +7,7 @@
* Criptografia é só uma parte das práticas seguras.
* Modelagem de ameaças e testes de penetração: inverta os papéis: e se você fosse o/a atacante?
* A dificuldade de se encontrar vulnerabilidades.
-* Segurança por isolamento.
+* Segurança por isolamento ajuda, mas botar a aplicação dentro de um cordão sanitário protege mais o ambiente de hospedagem do que a aplicação.
6.2 - Use bibliotecas criptográficas consolidadas!
--------------------------------------------------
@@ -20,7 +20,7 @@
6.3 - Princípio das permissões mínimas
--------------------------------------
-* Exemplo básico.
+* Comece o desenvolvimento com o mínimo de permissões necessárias para a sua aplicação e libere o acesso conforme necessário.
* Permissões de arquivos são propriedades no sistema de arquivo!
* Elas não são necessariamente preservadas com a cópia de arquivos entre sistemas!
diff --git a/aulas/versionamento.rst b/aulas/versionamento.rst
index 2dce464..c0592f4 100644
--- a/aulas/versionamento.rst
+++ b/aulas/versionamento.rst
@@ -109,13 +109,13 @@ Roteiro do screencast:
cd ~/projetos/blogatico
git status
- git add README.md
+ git add README.mdwn
git status
- gedit README.md
+ gedit README.mdwn
git status
git diff
git commit -m "Primeira revisão"
- git add README.md # mudanças recentes adicionadas ao estágio de lançamento
+ git add README.mdwn # mudanças recentes adicionadas ao estágio de lançamento
git commit -m "Segunda revisão"
git add .
git commit -m "Adiciona demais arquivos" # coloca todas as mudanças no estágio e comete