tendências e dicas para o desenvolvimento de software
DESCRIPTION
Apresentação das boas práticas e novas tendências para o desenvolvimento de software.TRANSCRIPT
![Page 2: Tendências e Dicas para o Desenvolvimento de Software](https://reader035.vdocuments.site/reader035/viewer/2022081512/5590dd501a28ab39578b45c0/html5/thumbnails/2.jpg)
Tópicos
• Apresentação.• Porque desenvolver software é tão dificil?• Motivos de falha no processo de desenvolvimento
de software.• Linguagens.• Boas Práticas.• Tendências.• Dicas.• Perguntas.
![Page 3: Tendências e Dicas para o Desenvolvimento de Software](https://reader035.vdocuments.site/reader035/viewer/2022081512/5590dd501a28ab39578b45c0/html5/thumbnails/3.jpg)
Porque desenvolver software é tão difícil?
![Page 4: Tendências e Dicas para o Desenvolvimento de Software](https://reader035.vdocuments.site/reader035/viewer/2022081512/5590dd501a28ab39578b45c0/html5/thumbnails/4.jpg)
Desenvolver software é uma atividade criativa e colaborativa que envolve técnicas, ferramentas e processos para produzir valor para um grupo de pessoas.
![Page 5: Tendências e Dicas para o Desenvolvimento de Software](https://reader035.vdocuments.site/reader035/viewer/2022081512/5590dd501a28ab39578b45c0/html5/thumbnails/5.jpg)
#FAIL
![Page 6: Tendências e Dicas para o Desenvolvimento de Software](https://reader035.vdocuments.site/reader035/viewer/2022081512/5590dd501a28ab39578b45c0/html5/thumbnails/6.jpg)
Motivos de Falha nos Projetos de Desenvolvimento de Software
• Achar que sabemos mais do negócio do cliente que o próprio cliente.
• Ausência de uma metodologia de desenvolvimento.• Falta de uma boa gestão das habilidades dos membros
da equipe do projeto.• Descomprometimento com a qualidade do software
entregue.• Desconhecimento de boas práticas de engenharia de
software.• Falta de um processo de garantia de qualidade do
software.
![Page 7: Tendências e Dicas para o Desenvolvimento de Software](https://reader035.vdocuments.site/reader035/viewer/2022081512/5590dd501a28ab39578b45c0/html5/thumbnails/7.jpg)
LINGUAGENS
![Page 8: Tendências e Dicas para o Desenvolvimento de Software](https://reader035.vdocuments.site/reader035/viewer/2022081512/5590dd501a28ab39578b45c0/html5/thumbnails/8.jpg)
Linguagens
Java(JSF,JPA,CDI,EJB3,Spring Framework,Hibernate)..Net(C#,VB.net,Entity Framework, NHibernate, Asp.Net MVC).Ruby(Rails, Sinatra).Python(Django).Objective-C.Javascript(Jquery,Node.js, Backbone.js).PHP(Zend Framework, Syphony, Cake, Code Igniter).http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html
![Page 9: Tendências e Dicas para o Desenvolvimento de Software](https://reader035.vdocuments.site/reader035/viewer/2022081512/5590dd501a28ab39578b45c0/html5/thumbnails/9.jpg)
BOAS PRÁTICAS
![Page 10: Tendências e Dicas para o Desenvolvimento de Software](https://reader035.vdocuments.site/reader035/viewer/2022081512/5590dd501a28ab39578b45c0/html5/thumbnails/10.jpg)
BOAS PRÁTICAS
GERÊNCIA DE CONFIGURAÇÃO DE
SOFTWARE
![Page 11: Tendências e Dicas para o Desenvolvimento de Software](https://reader035.vdocuments.site/reader035/viewer/2022081512/5590dd501a28ab39578b45c0/html5/thumbnails/11.jpg)
Gerência de Configuração de Software
É o processo de versionamento, controle de mudança e auditoria dos itens de configuração de um software.
Item de Configuração = documentos, configurações, scripts, casos de teste, requisitos,regras de negócio , classes e etc…
![Page 12: Tendências e Dicas para o Desenvolvimento de Software](https://reader035.vdocuments.site/reader035/viewer/2022081512/5590dd501a28ab39578b45c0/html5/thumbnails/12.jpg)
Gerência de Configuração de Software
Principais Ferramentas de GCS(SCM):
CVSSubversionSource SafeMercurial
GIT
![Page 13: Tendências e Dicas para o Desenvolvimento de Software](https://reader035.vdocuments.site/reader035/viewer/2022081512/5590dd501a28ab39578b45c0/html5/thumbnails/13.jpg)
Gerência de Configuração de Software
O Fenômeno GitHub:
- Popularizou o versionamento de código de projetos open source e o compartilhamento do código entre os membros da comunidade desses projetos.
- Permitiu que os desenvolvedores mostrem as suas soluções para outros desenvolvedores.
- Institui a prática do código social(social coding).- Grandes empresas como Facebook, NetFlix e Twitter possuem projetos
versionados em repósitórios públicos e privados.- Reposítório escolhido para versionar o código fonte do Linux e do Eclipse.
www.github.com
![Page 14: Tendências e Dicas para o Desenvolvimento de Software](https://reader035.vdocuments.site/reader035/viewer/2022081512/5590dd501a28ab39578b45c0/html5/thumbnails/14.jpg)
Gerência de Configuração de Software
Dicas:
- Ao finalizar uma funcionalidade do sistema que está trabalhando marque com uma TAG, o pacote que será implantado(deployment).
- Ao finalizar um grupo de funcionalidades que compõem uma release para testes marque todos os artefatos com uma BASELINE.
- Ao validar um grupo de funcionalidades com o seu cliente marque esse grupo de funcionalidades com uma RELEASE que será implantada no ambiente de produção.
- Para cada manutenção a ser realizada em uma versão em produção crie uma BRANCH e ao final realize MERGE com a versão de produção.
![Page 15: Tendências e Dicas para o Desenvolvimento de Software](https://reader035.vdocuments.site/reader035/viewer/2022081512/5590dd501a28ab39578b45c0/html5/thumbnails/15.jpg)
BOAS PRÁTICAS
TESTES
![Page 16: Tendências e Dicas para o Desenvolvimento de Software](https://reader035.vdocuments.site/reader035/viewer/2022081512/5590dd501a28ab39578b45c0/html5/thumbnails/16.jpg)
Testes
Testes Unitários(Unit Test) – Testam os comportamentos possíveis para os
métodos de uma classe(unidade de teste). Junit, Nunit, TestUnit, Rspec, EasyMock,
Mockito, PowerMock.Testes de Integração- Testam todas as
partes envolvidas em uma funcionalidade do software.
Selenium + HamCrest.
![Page 17: Tendências e Dicas para o Desenvolvimento de Software](https://reader035.vdocuments.site/reader035/viewer/2022081512/5590dd501a28ab39578b45c0/html5/thumbnails/17.jpg)
Testes
Testes de Aceitação – Testes realizados com o cliente para validar se uma funcionalidade está de acordo com o que ele esperava para mesma.Jbehave e Cucumber.Testes de Carga(Stress)- Testes realizados
contra o sistema para verificar se ele é capaz de atender dentro dos padrões esperados um determinado número de requisições.
JMeter.
![Page 18: Tendências e Dicas para o Desenvolvimento de Software](https://reader035.vdocuments.site/reader035/viewer/2022081512/5590dd501a28ab39578b45c0/html5/thumbnails/18.jpg)
Testes
TDD(Test Driven Design):
Técnica criada por Kent Beck e incorporada as práticas do XP(Extreme Programming).
![Page 19: Tendências e Dicas para o Desenvolvimento de Software](https://reader035.vdocuments.site/reader035/viewer/2022081512/5590dd501a28ab39578b45c0/html5/thumbnails/19.jpg)
Testes
TDD(Test Driven Design):- Os testes guiam a criação das funcionalidades
do software(classes, métodos e relacionamentos).
- Baby Steps(Pequenos passos para fazer os testes passarem e melhorar a qualidade do código escrito).
- RED – GREEN-REFACTORING CYCLES.
![Page 20: Tendências e Dicas para o Desenvolvimento de Software](https://reader035.vdocuments.site/reader035/viewer/2022081512/5590dd501a28ab39578b45c0/html5/thumbnails/20.jpg)
BOAS PRÁTICAS
INTEGRAÇÃO CONTÍNUA
![Page 21: Tendências e Dicas para o Desenvolvimento de Software](https://reader035.vdocuments.site/reader035/viewer/2022081512/5590dd501a28ab39578b45c0/html5/thumbnails/21.jpg)
Integração Contínua
Prática que gera uma versão funcional da sua aplicação todos os dias ou várias vezes ao dia.Essa prática envolve as seguintes funcionalidades:- Verifica se existem novas mudanças na
ferramenta de controle de versão.- Executa um script de build automatizado que
executa os testes da aplicação e caso todos sejam bem suscedidos gera uma nova versão e implanta no servidor de aplicação.
![Page 22: Tendências e Dicas para o Desenvolvimento de Software](https://reader035.vdocuments.site/reader035/viewer/2022081512/5590dd501a28ab39578b45c0/html5/thumbnails/22.jpg)
Integração Contínua
- Realiza a auditoria de qualidade no código gerado na versão e informa se as regras de programação foram infringidas.
- Informa a equipe do projeto se o deploy(implantação) foi ou não bem suscedido.
- Permite um feedback de qualidade e bugs em um pequeno intervalo de tempo que aumenta a qualidade do software entregue ao cliente.
![Page 23: Tendências e Dicas para o Desenvolvimento de Software](https://reader035.vdocuments.site/reader035/viewer/2022081512/5590dd501a28ab39578b45c0/html5/thumbnails/23.jpg)
Integração Contínua
PRINCIPAIS FERRAMENTAS:SCM(CVS, Subversion, Mercurial, GIT, Source Safe,Clear Case).Build Automatizado(ANT, Maven, Gradle, Rake).Auditoria de Código(Sonar).Repositório de Dependências(Archiva, Nexus).Containers de Integração Contínua(Hudson,Jenkins,Go).
![Page 24: Tendências e Dicas para o Desenvolvimento de Software](https://reader035.vdocuments.site/reader035/viewer/2022081512/5590dd501a28ab39578b45c0/html5/thumbnails/24.jpg)
Integração Contínua
![Page 25: Tendências e Dicas para o Desenvolvimento de Software](https://reader035.vdocuments.site/reader035/viewer/2022081512/5590dd501a28ab39578b45c0/html5/thumbnails/25.jpg)
BOAS PRÁTICAS
METODOLOGIAS ÁGEIS
![Page 26: Tendências e Dicas para o Desenvolvimento de Software](https://reader035.vdocuments.site/reader035/viewer/2022081512/5590dd501a28ab39578b45c0/html5/thumbnails/26.jpg)
Metodologias Ágeis
Foram concebidas a partir do Manifesto Ágil de Software(http://agilemanifesto.org) e mudaram a maneira da comunidade de software desenvolver software. São processos empíricos focados em melhoria contínua e entrega de valor.
![Page 27: Tendências e Dicas para o Desenvolvimento de Software](https://reader035.vdocuments.site/reader035/viewer/2022081512/5590dd501a28ab39578b45c0/html5/thumbnails/27.jpg)
Metodologias Ágeis
SCRUM: - Sprints.- Papéis bem definidos(PO, Scrum Master,
Time).- Stand Up Meetings(Reuniões Diárias).- Time Boxing.- Priorização de Tarefas.- Retrospectivas.
![Page 28: Tendências e Dicas para o Desenvolvimento de Software](https://reader035.vdocuments.site/reader035/viewer/2022081512/5590dd501a28ab39578b45c0/html5/thumbnails/28.jpg)
Metodologias Ágeis
KANBAN:- Tornar as tarefas visíveis(quadro kanban).- Definir um fluxo de trabalho(workflow).- Definir o número de tarefas em cada fase definida
no fluxo de trabalho(WIP=Work in Progress).- Tornar a política de realizações de domínio público.- Crescer através da experimentação.- Medir os resultados alcançados.
![Page 29: Tendências e Dicas para o Desenvolvimento de Software](https://reader035.vdocuments.site/reader035/viewer/2022081512/5590dd501a28ab39578b45c0/html5/thumbnails/29.jpg)
Metodologias Ágeis
LEAN SOFTWARE DEVELOPMENT:- Concebida a partir do sistema Toyota de Produção.- Eliminar o desperdício(KAIZEN).- Ampliar o conhecimento.- Decidir o mais cedo possível.- Entregar o mais rápido possível.- Construir a integridade do produto.- Capacitar a equipe.- Visualizar o todo.
![Page 30: Tendências e Dicas para o Desenvolvimento de Software](https://reader035.vdocuments.site/reader035/viewer/2022081512/5590dd501a28ab39578b45c0/html5/thumbnails/30.jpg)
Metodologias Ágeis
XP(Extreme Programming):- TDD.- Programação em Pares(Pair Programming).- Propriedade coletiva do código.- Pequenas Versões.- Refactoring.- Integração Contínua.- Users Stories.
![Page 31: Tendências e Dicas para o Desenvolvimento de Software](https://reader035.vdocuments.site/reader035/viewer/2022081512/5590dd501a28ab39578b45c0/html5/thumbnails/31.jpg)
Metodologias Ágeis
“Ser ágil não é apenas colar post-it em um quadro branco e trocar os mesmos de lugar.Ser ágil é entregar valor(software funcionando) ao final de cada iteração”.
![Page 32: Tendências e Dicas para o Desenvolvimento de Software](https://reader035.vdocuments.site/reader035/viewer/2022081512/5590dd501a28ab39578b45c0/html5/thumbnails/32.jpg)
TENDÊNCIAS
![Page 33: Tendências e Dicas para o Desenvolvimento de Software](https://reader035.vdocuments.site/reader035/viewer/2022081512/5590dd501a28ab39578b45c0/html5/thumbnails/33.jpg)
Tendências
CLOUD COMPUTING
![Page 34: Tendências e Dicas para o Desenvolvimento de Software](https://reader035.vdocuments.site/reader035/viewer/2022081512/5590dd501a28ab39578b45c0/html5/thumbnails/34.jpg)
Cloud Computing
Consiste na utilização de recursos computacionais(hardware e software ) para entrega de serviços através da internet.
A computação na nuvem foi impulsionada pela necessidade que a web 2.0 de escalar grandes aplicações web e permitir que estas estejam disponíveis a seus usuários a qualquer hora e em qualquer lugar.
![Page 35: Tendências e Dicas para o Desenvolvimento de Software](https://reader035.vdocuments.site/reader035/viewer/2022081512/5590dd501a28ab39578b45c0/html5/thumbnails/35.jpg)
Cloud Computing
![Page 36: Tendências e Dicas para o Desenvolvimento de Software](https://reader035.vdocuments.site/reader035/viewer/2022081512/5590dd501a28ab39578b45c0/html5/thumbnails/36.jpg)
Cloud Computing
Tipos de Serviço:
SaaS(Software as a Service) – O usuário pode acessar um serviço que está disponibilizado em um serviço de hospedagem na nuvem.Ex: Google Docs, Dropbox, Flickr, Google Apps
PaaS(Platform as a Service) – O usuário pode utilizar um conjunto de serviços e softwares para desenvolvimento e hospedagem das suas aplicações.Ex:Amazon Web Services, Heroku, Google App Engine,Cloud Foundry.
![Page 37: Tendências e Dicas para o Desenvolvimento de Software](https://reader035.vdocuments.site/reader035/viewer/2022081512/5590dd501a28ab39578b45c0/html5/thumbnails/37.jpg)
Cloud Computing
IaaS(Infrastructure as a Service) – O usuário recebe uma infra-estrutura computacional em um ambiente virtualizado onde possui acesso ao sistema operacional para configurar a sua estrutura de serviços como desejar(VPS).Ex: WebbyNode
Nuvem Privada- O usuário configura a sua infra-estrutura de hardware, software e serviços dentro da sua própria empresa.
![Page 38: Tendências e Dicas para o Desenvolvimento de Software](https://reader035.vdocuments.site/reader035/viewer/2022081512/5590dd501a28ab39578b45c0/html5/thumbnails/38.jpg)
Cloud Computing
Hospedar a sua aplicação em um serviço de cloud computing é vantajoso quando você deseja que ela tenha poder de escalabilidade e alta disponibilidade.Porém, é necessário considerar o quanto você precisa em termos de recursos. Porque esses serviços cobram pelo número de horas de uso desses recursos(elasticidade).
![Page 39: Tendências e Dicas para o Desenvolvimento de Software](https://reader035.vdocuments.site/reader035/viewer/2022081512/5590dd501a28ab39578b45c0/html5/thumbnails/39.jpg)
Tendências
NOSQL(Not Only SQL)
![Page 40: Tendências e Dicas para o Desenvolvimento de Software](https://reader035.vdocuments.site/reader035/viewer/2022081512/5590dd501a28ab39578b45c0/html5/thumbnails/40.jpg)
NOSQL
As soluções NOSQL são focadas em escalabilidade horizontal e performance, não usam tabelas fixas e não suportam operações de junções.
Escalabilidade Horizontal -> Dividir o fluxo de recuperação, inclusão e alteração de dados entre os diversos nós de uma rede.
![Page 41: Tendências e Dicas para o Desenvolvimento de Software](https://reader035.vdocuments.site/reader035/viewer/2022081512/5590dd501a28ab39578b45c0/html5/thumbnails/41.jpg)
NOSQL
As soluções NOSQL abrem mão de garantir as propriedades ACID dos tradicionais banco de dados relacionais para focar em performance a dados atualizados up to date.
Esse movimento foi motivado por soluções criadas por grandes empresas.
Amazon(Dynamo).Google(BigTable).Terracota(MemCached).
![Page 42: Tendências e Dicas para o Desenvolvimento de Software](https://reader035.vdocuments.site/reader035/viewer/2022081512/5590dd501a28ab39578b45c0/html5/thumbnails/42.jpg)
NOSQL
As soluções NOSQL são baseados no teorema CAP que diz:
Em um sistema computacional distribuído é impossível garantir simultaneamente essas três propriedades: consistência, disponibilidade e tolerância a partição.
As soluções NOSQL são mais indicadas quando podemos deixar de lado a consistência.
![Page 43: Tendências e Dicas para o Desenvolvimento de Software](https://reader035.vdocuments.site/reader035/viewer/2022081512/5590dd501a28ab39578b45c0/html5/thumbnails/43.jpg)
NOSQL
Modelo de Dados NOSQL:Família de Colunas(Hbase, Cassandra)Uso: Distribuição do Armazenamento de DadosQuem Usa: Facebook, Twitter.
Orientado a Documento(MongoDB,CouchDB)Uso: Aplicações WebQuem Usa: Dafiti, NetFlix.
![Page 44: Tendências e Dicas para o Desenvolvimento de Software](https://reader035.vdocuments.site/reader035/viewer/2022081512/5590dd501a28ab39578b45c0/html5/thumbnails/44.jpg)
NOSQL
Chave/Valor(Redis,MemCached)Uso:Cache de Dados.Quem Usa: GitHub, Flickr,StackOverflow.
Grafos(Neo4J,InfoGrid)Uso:Aplicações de Redes Sociais e Sistema de Recomendações.Quem Usa: Facebook, Mozilla Foundation.http://bigdatanerd.wordpress.com/2012/01/04/why-nosql-part-2-overview-of-data-modelrelational-nosql/
![Page 45: Tendências e Dicas para o Desenvolvimento de Software](https://reader035.vdocuments.site/reader035/viewer/2022081512/5590dd501a28ab39578b45c0/html5/thumbnails/45.jpg)
TENDÊNCIAS
DESENVOLVIMENTO MOBILE
![Page 46: Tendências e Dicas para o Desenvolvimento de Software](https://reader035.vdocuments.site/reader035/viewer/2022081512/5590dd501a28ab39578b45c0/html5/thumbnails/46.jpg)
Desenvolvimento Mobile
Desenvolvimento Nativo:
ANDROID(Google):- Menor curva de aprendizado.- Baseado em Java.- Dalvik SDK.- Eclipse + ADT.- As apps podem ser instaladas diretamente no celular.- Maior facilidade para publicar as apps no Google Play.- Grupo de usuários bastante grande no Brasil.
![Page 47: Tendências e Dicas para o Desenvolvimento de Software](https://reader035.vdocuments.site/reader035/viewer/2022081512/5590dd501a28ab39578b45c0/html5/thumbnails/47.jpg)
Desenvolvimento Mobile
Desenvolvimento Nativo:IOS(Apple):- Necessário ter um Mac para desenvolver.- Lion + Xcode 4.- Objective-C.- Maior curva de aprendizado.- Foi adotado pelo mercado corporativo.- Sua app passará por um comitê de padrões para poder ser
publicado na loja de aplicativos.- Para publicar um app no Itunes é necessário licença de
desenvolvedor(US$99,00) e um site corporativo para descrever o aplicativo.
![Page 48: Tendências e Dicas para o Desenvolvimento de Software](https://reader035.vdocuments.site/reader035/viewer/2022081512/5590dd501a28ab39578b45c0/html5/thumbnails/48.jpg)
Desenvolvimento Mobile
Desenvolvimento Híbrido:- Indicado para aplicativos que não necessitam
fazer uso de recursos específicos da plataforma Android ou IOS.
- HTML 5 + CSS3 + Biblioteca JS.- Baseado em aplicações Web.- A biblioteca JS é responsável por converter o
código do aplicativo para plataforma desejada.Ferramentas: Phone Gap, Sencha Touch, Titanium
![Page 49: Tendências e Dicas para o Desenvolvimento de Software](https://reader035.vdocuments.site/reader035/viewer/2022081512/5590dd501a28ab39578b45c0/html5/thumbnails/49.jpg)
TENDÊNCIAS
STARTUPS
![Page 50: Tendências e Dicas para o Desenvolvimento de Software](https://reader035.vdocuments.site/reader035/viewer/2022081512/5590dd501a28ab39578b45c0/html5/thumbnails/50.jpg)
Startups
Uma Startup consiste em empreender uma ideia e tranformá-la em uma aplicação web que visa resolver o problema de um conjunto de pessoas e que estas pessoas se propõem a pagar um valor para ter o seu problema resolvido pela sua aplicação.
![Page 51: Tendências e Dicas para o Desenvolvimento de Software](https://reader035.vdocuments.site/reader035/viewer/2022081512/5590dd501a28ab39578b45c0/html5/thumbnails/51.jpg)
Startups
- Baseam-se em hipóteses para a construção de soluções.
- É necessário conhecer bem o mercado onde a sua solução será inserida.
- Exige investimento em propaganda para captar um número de interessados.
- MVP(Conjunto mínimo de funcionalidades para validar o produto).
![Page 52: Tendências e Dicas para o Desenvolvimento de Software](https://reader035.vdocuments.site/reader035/viewer/2022081512/5590dd501a28ab39578b45c0/html5/thumbnails/52.jpg)
Startups
- Lançar a primeira versão o mais rápido possível.
- Após o primeiro feedback dos usuários decidir se permanece ou troca a hipótese(pivotar).
- Exige um conjunto de conhecimentos(gerência de produto, gerência de projeto, engenharia de software).
- Bootstraping/Aceleradora.
![Page 53: Tendências e Dicas para o Desenvolvimento de Software](https://reader035.vdocuments.site/reader035/viewer/2022081512/5590dd501a28ab39578b45c0/html5/thumbnails/53.jpg)
Startups
- A startup só deixa de ser uma startup a partir do momento que a sua receita paga os seus custos e produz lucro para o seu criador.
- O empreendedor não pode ter medo de falhar.- Business Model Canvas.- Lean Startup.Exs: DropBox, Cloud Foundry, Casa do Codigo, Craques.com, Mundi, Conta Cal, Cobre Grátis.
![Page 54: Tendências e Dicas para o Desenvolvimento de Software](https://reader035.vdocuments.site/reader035/viewer/2022081512/5590dd501a28ab39578b45c0/html5/thumbnails/54.jpg)
Outras Tendências
- Continous Deployment.- Responsive Web Design.- DevOps.- Web Service Rest.
![Page 55: Tendências e Dicas para o Desenvolvimento de Software](https://reader035.vdocuments.site/reader035/viewer/2022081512/5590dd501a28ab39578b45c0/html5/thumbnails/55.jpg)
DICAS
![Page 56: Tendências e Dicas para o Desenvolvimento de Software](https://reader035.vdocuments.site/reader035/viewer/2022081512/5590dd501a28ab39578b45c0/html5/thumbnails/56.jpg)
DICAS
#0
Aprenda Inglês.
![Page 57: Tendências e Dicas para o Desenvolvimento de Software](https://reader035.vdocuments.site/reader035/viewer/2022081512/5590dd501a28ab39578b45c0/html5/thumbnails/57.jpg)
Dicas
#1
Reserve 30 minutos do seu dia para ler blogs e sites técnicos.
![Page 58: Tendências e Dicas para o Desenvolvimento de Software](https://reader035.vdocuments.site/reader035/viewer/2022081512/5590dd501a28ab39578b45c0/html5/thumbnails/58.jpg)
Dicas
#2
Participe de comunidades, foruns e dojos de programação.
![Page 59: Tendências e Dicas para o Desenvolvimento de Software](https://reader035.vdocuments.site/reader035/viewer/2022081512/5590dd501a28ab39578b45c0/html5/thumbnails/59.jpg)
Dicas
#3
Tente ler de 2 a 3 livros técnicos por mês.
![Page 60: Tendências e Dicas para o Desenvolvimento de Software](https://reader035.vdocuments.site/reader035/viewer/2022081512/5590dd501a28ab39578b45c0/html5/thumbnails/60.jpg)
Dicas
#4Crie um blog pessoal para compartilhar seu conhecimento com outros companheiros de profissão.
![Page 61: Tendências e Dicas para o Desenvolvimento de Software](https://reader035.vdocuments.site/reader035/viewer/2022081512/5590dd501a28ab39578b45c0/html5/thumbnails/61.jpg)
Dicas
#5
Publique seus projetos de estudo no GitHub.
![Page 62: Tendências e Dicas para o Desenvolvimento de Software](https://reader035.vdocuments.site/reader035/viewer/2022081512/5590dd501a28ab39578b45c0/html5/thumbnails/62.jpg)
Dicas
#6
Seja fluente em sua linguagem de programação.
![Page 63: Tendências e Dicas para o Desenvolvimento de Software](https://reader035.vdocuments.site/reader035/viewer/2022081512/5590dd501a28ab39578b45c0/html5/thumbnails/63.jpg)
Dicas
#7
Conheça bem as ferramentas do seu ambiente de trabalho.
![Page 64: Tendências e Dicas para o Desenvolvimento de Software](https://reader035.vdocuments.site/reader035/viewer/2022081512/5590dd501a28ab39578b45c0/html5/thumbnails/64.jpg)
Dicas
#8
Faça TESTES em todas as suas aplicações. Mesmo que de forma clandestina.
![Page 65: Tendências e Dicas para o Desenvolvimento de Software](https://reader035.vdocuments.site/reader035/viewer/2022081512/5590dd501a28ab39578b45c0/html5/thumbnails/65.jpg)
Dicas
#9
Aprenda os comandos Linux , seus serviços e seus editores(VIM e VI).
![Page 66: Tendências e Dicas para o Desenvolvimento de Software](https://reader035.vdocuments.site/reader035/viewer/2022081512/5590dd501a28ab39578b45c0/html5/thumbnails/66.jpg)
Dicas
#10
Aprenda Javascript e suas bibliotecas.
![Page 67: Tendências e Dicas para o Desenvolvimento de Software](https://reader035.vdocuments.site/reader035/viewer/2022081512/5590dd501a28ab39578b45c0/html5/thumbnails/67.jpg)
Dicas
#11
Não deixe de corrigir erros durante o desenvolvimento do seu sistema(Teoria da Janela Quebrada).
![Page 68: Tendências e Dicas para o Desenvolvimento de Software](https://reader035.vdocuments.site/reader035/viewer/2022081512/5590dd501a28ab39578b45c0/html5/thumbnails/68.jpg)
Dicas
#12
Evite GoldPlating(Trazer para o desenvolvimento funcionalidades que nunca serão usadas).
![Page 69: Tendências e Dicas para o Desenvolvimento de Software](https://reader035.vdocuments.site/reader035/viewer/2022081512/5590dd501a28ab39578b45c0/html5/thumbnails/69.jpg)
Dicas
#13
Assista palestras dos assuntos do seu interesse e leia código de outros desenvolvedores.
![Page 70: Tendências e Dicas para o Desenvolvimento de Software](https://reader035.vdocuments.site/reader035/viewer/2022081512/5590dd501a28ab39578b45c0/html5/thumbnails/70.jpg)
Dicas
#14
Aprenda UML e Padrões de Projeto.
![Page 71: Tendências e Dicas para o Desenvolvimento de Software](https://reader035.vdocuments.site/reader035/viewer/2022081512/5590dd501a28ab39578b45c0/html5/thumbnails/71.jpg)
Dicas
#15
Nunca deixe de aprender e se atualizar.
![Page 72: Tendências e Dicas para o Desenvolvimento de Software](https://reader035.vdocuments.site/reader035/viewer/2022081512/5590dd501a28ab39578b45c0/html5/thumbnails/72.jpg)
Dicas
#EXTRA
Seja humilde em reconhecer que você não sabe tudo.Peça ajuda quando necessário.
![Page 73: Tendências e Dicas para o Desenvolvimento de Software](https://reader035.vdocuments.site/reader035/viewer/2022081512/5590dd501a28ab39578b45c0/html5/thumbnails/73.jpg)
PERGUNTAS