1987 capítulos
  Título Autor Editora Formato Comprar item avulso Adicionar à Pasta
Medium 9788577808076

Capítulo 11 - Trabalho em equipe

Mike Cohn Grupo A PDF Criptografado

CAPÍTULO 11

Trabalho em equipe

O

trabalho em equipe faz parte da essência de qualquer processo ágil. O

Manifesto Ágil proclama que devemos preferir “pessoas e interações a processos e ferramentas” (Beck et al., 2001), ou seja, software bom vem de boas equipes. O próprio Scrum ganhou seu nome da ideia de que uma equipe de desenvolvimento de produtos deve se comportar de maneira parecida a de um time de rugby – um grupo de pessoas movendo a bola pelo campo de forma coesa. Considerando-se a importância central das equipes para um desenvolvimento ágil bem-sucedido, você não deve ficar surpreso ao encontrar um capítulo chamado “Trabalho em equipe”.

As equipes Scrum são bem-sucedidas em conjunto e falham em conjunto. Não há “meu trabalho” e “seu trabalho” em uma equipe Scrum; há apenas

“nosso trabalho”. Essa é uma maneira radicalmente diferente de trabalhar para a maioria das pessoas, principalmente as acostumadas a trabalhar em áreas de especialização isoladas ou as que adquiriram o hábito de só fazer o que lhes é pedido. As equipes que se libertam dessa mentalidade sem dúvida sentem satisfação e realização. Muitas equipes, no entanto, param de melhorar no ponto em que começam a funcionar como uma unidade, perdendo muitas das vantagens que o Scrum pode trazer. Tornar-se realmente uma equipe Scrum de alto desempenho requer um esforço conjunto em direção ao aprendizado e à melhoria contínuos.

Ver todos os capítulos
Medium 9788577808076

Capítulo 5 - Seus primeiros projetos

Mike Cohn Grupo A PDF Criptografado

CAPÍTULO 5

Seus primeiros projetos

A

menos que você esteja trabalhando de modo sigiloso, todos os olhos se Consulte também voltarão para o primeiro projeto a experimentar o Scrum, principalmente A transição sigilosa foi durante as primeiras sprints. A seleção correta do projeto e da equipe é introduzida no Capítulo crucial. Seu projeto inicial de Scrum deve ser considerado importante e significa- 3, “Padrões para adoção do Scrum”. tivo para que os resultados não sejam minimizados, mas não tão grande a ponto de não ter retorno. Os membros da equipe devem ser selecionados considerando-se não só sua compatibilidade, mas também sua vontade de tentar algo novo.

No começo da primeira sprint, as expectativas sobre as vantagens que o

Scrum trará podem ser muito altas. Às vezes, isso é resultado de um otimismo generalizado; outras vezes, de fanatismo por parte dos primeiros adeptos do desenvolvimento ágil em uma empresa, cujo exagero leva as outras pessoas a acharem que o Scrum curará todos os males. Você deve definir e gerenciar corretamente essas expectativas; caso contrário, um projeto inicial que deveria ser visto como muito bem-sucedido será considerado uma falha desanimadora quando não corresponder a expectativas exageradas.

Ver todos os capítulos
Medium 9788577808076

Capítulo 15 - Planejamento

Mike Cohn Grupo A PDF Criptografado

CAPÍTULO 15

Planejamento

Somos ágeis; não planejamos” e “Terminaremos quando terminarmos” eram declarações comuns nos primeiros anos após a publicação do Manifesto Ágil.

Suspeito que muitas pessoas de algumas das primeiras equipes ágeis que assumiram essa postura sabiam que estavam deixando de lado algo importante ao descartar o planejamento. Mas essa era uma reação natural às culturas em que trabalhavam. Muitos desenvolvedores odiavam planejar porque o planejamento nunca trazia qualquer benefício pessoal para eles, e com frequência era usado contra os desenvolvedores: “Você disse que terminaria em junho; já estamos em junho. Cumpra o que prometeu”.

Da mesma forma que era inapropriado usar planos como armas, também o era descartar inteiramente o planejamento. Como ex-vice-presidente de engenharia de algumas empresas em que o desenvolvimento ágil foi essencial para nosso sucesso, também sabia que as equipes Scrum podiam e deviam planejar.

Na verdade, além das equipes ágeis e de Scrum poderem planejar, de acordo com uma pesquisa de Kjetil Moløkken-Østvold e Magne Jørgensen, geralmente as equipes ágeis planejam com mais precisão do que equipes que usam um processo sequencial (2005).

Ver todos os capítulos
Medium 9788577808076

Capítulo 12 - Liderando uma equipe auto-organizada

Mike Cohn Grupo A PDF Criptografado

CAPÍTULO 12

Liderando uma equipe auto-organizada

U

m dos primeiros modelos de mudança organizacional foi proposto por

Kurt Lewin nos anos 40. No modelo de Lewin, a mudança é um processo de três etapas: “descongelar” a situação atual para que a mudança possa ocorrer, fazer a transição para um novo estado, e então “congelar” o novo estado para que ele persista. Muitos modelos de mudança organizacional que vieram depois são semelhantes ao de Lewin ao apresentar longos períodos de relativa estabilidade interrompidos por breves períodos de transição.

Embora o mundo de Lewin fosse assim no início do século XX, o mundo de hoje é muito diferente. A mudança não ocorre mais em espasmos curtos que interrompem longos períodos de relativa estabilidade. Em vez de passarem de um estado de equilíbrio para outro, as empresas do século XXI operam sob condições bem distantes do equilíbrio. Apesar do tumulto e do ritmo frenético, há vantagens nisso. Uma empresa em equilíbrio, e que procura voltar ao equilíbrio quando tirada dele, é aquela que resiste à mudança (Goldstein, 1994, 15). Empresas que operam longe do equilíbrio são mais adaptadas à mudança contínua.

Ver todos os capítulos
Medium 9788577808076

Capítulo 4 - Iterando em direção à agilidade

Mike Cohn Grupo A PDF Criptografado

CAPÍTULO 4

Iterando em direção

à agilidade

H

istoricamente, quando uma empresa precisava mudar, ela adotava um

“programa de mudança”. A mudança era projetada, tinha um começo e um fim identificáveis e era imposta pelas camadas hierárquicas superiores. Isso funcionava bem em uma área em que a mudança só era necessária uma vez em um período de alguns anos. Christopher Avery escreveu: “Acho que nos anos 60 e 70 essa abordagem provavelmente funcionava melhor do que nos anos 90 e hoje porque a frequência das mudanças se intensificou à medida que a competição se tornou global e o modelo ruiu” (2005, 18). Avery continua seu raciocínio dizendo que, “se as mudanças estão ocorrendo tão rápida e impetuosamente a ponto de a mudança programada não funcionar, talvez tenhamos que nos adaptar (organizacionalmente falando) para assimilar, continuamente, um número muito maior de mudanças menores” (2005, 20).

Independentemente de estar apenas começando a adotar o Scrum ou de estar no momento em que está pronto para fazer ajustes em sua maneira de usá-lo, você deve gerenciar o esforço de uma maneira ágil. Seguir um processo de transição iterativo – fazer pequenas mudanças continuamente – é um modo lógico de adotar um processo de desenvolvimento que seja, ele próprio, iterativo. Esse curso de ação terá muito mais probabilidades de resultar em uma transição bem-sucedida e sustentável. Por isso acho que o esforço de adotar o

Ver todos os capítulos
Medium 9788577808496

Capítulo 29 - Criando e utilizando um Web service

John Sharp Grupo A PDF Criptografado

Capítulo 29

Criando e utilizando um

Web service

Neste capítulo, você vai aprender a:

■ Criar Web services SOAP e REST que expõem métodos Web simples.

■ Exibir a descrição de um Web service SOAP utilizando o Internet Explorer.

■ Projetar classes que podem ser passadas como parâmetros a um método Web e retorna-

das de um método Web.

■ Criar proxies para Web services SOAP e REST em um aplicativo cliente.

■ Chamar um método Web REST por meio do Internet Explorer.

■ Chamar métodos Web a partir de um aplicativo cliente.

Os capítulos anteriores demonstraram como construir aplicativos desktop, que podem executar diversas tarefas. Entretanto, nos dias atuais, raros sistemas operam isoladamente. Uma organização realiza operações comerciais e, para isso, costuma ter aplicativos com suporte para essa funcionalidade empresarial. Uma necessidade cada vez mais comum é construir novas soluções que possam reutilizar grande parte dessa funcionalidade e proteger o investimento da organização na construção ou na compra dos componentes de software subjacentes. Esses componentes e serviços podem ser construídos por meio de diferentes tecnologias e linguagens de programação, e funcionar em uma coleção de computadores interconectados por rede. Além disso, como estamos na era da Internet, uma organização pode compor soluções que incorporem diversos serviços de terceiros. O desafio é estabelecer o modo de combinação desses componentes para que possam se comunicar e colaborar de modo harmônico.

Ver todos os capítulos
Medium 9788577808496

Capítulo 12 - Trabalhando com herança

John Sharp Grupo A PDF Criptografado

Capítulo 12

Trabalhando com herança

Neste capítulo, você vai aprender a:

■ Criar uma classe derivada que herda recursos de uma classe base.

■ Controlar a ocultação e sobrecarga de métodos utilizando as palavras-chave new, virtual

e override.

■ Limitar a acessibilidade dentro de uma hierarquia de heranças utilizando a palavra-chave

protected.

■ Definir métodos de extensão como um mecanismo alternativo ao uso de herança.

Herança é um conceito-chave no mundo da orientação a objetos. Você pode usá-la como uma ferramenta para evitar a repetição ao definir classes diferentes com várias características em comum e que estão muito claramente relacionadas entre si. Talvez sejam classes diferentes do mesmo tipo, cada uma delas com sua característica própria e distinta – por exemplo, gerentes, operários e todos os empregados de uma fábrica. Se você estiver escrevendo um aplicativo para simular a fábrica, como especificaria que os gerentes e operários têm várias características comuns, mas também são diferentes? Por exemplo, todos têm um número de referência de funcionário, mas os gerentes têm responsabilidades diferentes e executam tarefas diferentes dos operários.

Ver todos os capítulos
Medium 9788577808496

Capítulo 6 - Gerenciando erros e exceções

John Sharp Grupo A PDF Criptografado

Capítulo 6

Gerenciando erros e exceções

Neste capítulo, você vai aprender a:

■ Tratar exceções utilizando as instruções try, catch e finally.

■ Controlar o overflow de números inteiros utilizando as palavras-chave checked e unchecked.

■ Levantar exceções a partir de seus métodos utilizando a palavra-chave throw.

■ Garantir que o código sempre execute, mesmo após a ocorrência de uma exceção, utili-

zando um bloco finally.

Você viu até agora as principais instruções do Microsoft Visual C# necessárias para escrever métodos, declarar variáveis, utilizar operadores para criar valores, escrever instruções if e switch para executar um código seletivamente e escrever as instruções while, for e do para executar o código repetidamente. Mas os capítulos anteriores não consideraram a possibilidade (ou probabilidade) de algo dar errado. É muito difícil garantir que o código sempre funcione conforme o esperado. As falhas podem ocorrer por vários motivos, muitos dos quais estão além do seu controle como programador.

Ver todos os capítulos
Medium 9788577808496

Capítulo 26 - Exibindo e editando dados com o Entity Framework e vinculação de dados

John Sharp Grupo A PDF Criptografado

Capítulo 26

Exibindo e editando dados com o Entity Framework e vinculação de dados

Neste capítulo, você vai aprender a:

■ Utilizar o ADO.NET Entity Framework para gerar classes de entidade.

■ Utilizar vinculação de dados em um aplicativo Windows Presentation Foundation (WPF)

para exibir e manter os dados recuperados de um banco de dados.

■ Atualizar um banco de dados utilizando o Entity Framework.

■ Detectar e resolver atualizações conflitantes feitas por múltiplos usuários.

No Capítulo 25, “Consultando informações em um banco de dados”, você aprendeu os conceitos básicos da utilização do Microsoft ADO.NET e a LINQ to SQL para fazer consultas em um banco de dados. O principal objetivo da LINQ to SQL é fornecer uma interface LINQ para o Microsoft SQL Server. Entretanto, o modelo subjacente utilizado pela LINQ to SQL é extensível, e alguns fornecedores de produtos de terceiros construíram provedores de dados que podem acessar outros sistemas de gerenciamento de bancos de dados.

Ver todos os capítulos
Medium 9788577800575

4: Gerenciamento de memória

Andrew S. Tanenbaum ; Albert S. Woodhull Grupo A PDF Criptografado

4

GERENCIAMENTO DE MEMÓRIA

A memória é um recurso importante que deve ser cuidadosamente gerenciado. Embora, hoje em dia, um computador doméstico médio tenha duas mil vezes mais memória do que o IBM

7094 (o maior computador do mundo no início dos anos 60), os programas e os dados que eles devem manipular também cresceram tremendamente. Parafraseando a lei de Parkinson,

“os programas e seus dados aumentam de forma a ocupar toda a memória disponível para contê-los”. Neste capítulo, estudaremos o modo como os sistemas operacionais gerenciam a memória.

Teoricamente, o que todo programador gostaria é de uma memória infinitamente grande, infinitamente rápida e que também fosse não-volátil; isto é, que não perdesse seu conteúdo na falta de energia elétrica. E já que estamos nessa, por que não pedir também que fosse barata? Infelizmente, a tecnologia não consegue tornar esses sonhos uma realidade.

Conseqüentemente, a maioria dos computadores tem uma hierarquia de memória, com uma pequena quantidade de memória cache, volátil, muito rápida e cara; centenas de megabytes de memória principal volátil (RAM) de velocidade e preço médios; e dezenas ou centenas de gigabytes de armazenamento em disco, não-volátil, lento e barato. A tarefa do sistema operacional é coordenar a utilização desses diferentes tipos de memória.

Ver todos os capítulos
Medium 9788577808496

Capítulo 23 - Obtendo a entrada do usuário

John Sharp Grupo A PDF Criptografado

Capítulo 23

Obtendo a entrada do usuário

Neste capítulo, você vai aprender a:

■ Criar menus para aplicativos Microsoft Windows Presentation Foundation (WPF) utilizan-

do as classes Menu e MenuItem.

■ Realizar o processamento em resposta a eventos de menu quando um usuário clica em

um comando de menu.

■ Criar menus pop-up sensíveis ao contexto utilizando a classe ContextMenu.

■ Manipular menus por meio de código e criar menus dinâmicos.

■ Utilizar caixas de diálogo comuns do Windows em um aplicativo para solicitar ao usuário

o nome de um arquivo.

■ Construir aplicativos WPF que podem se beneficiar de diversas threads para melhorar a

capacidade de resposta.

No Capítulo 22, “Apresentando o Windows Presentation Foundation”, vimos como criar um aplicativo WPF simples composto de uma seleção de controles e eventos. Muitos aplicativos profissionais baseados em Microsoft Windows também fornecem menus contendo comandos e opções, dando ao usuário a capacidade de executar várias tarefas relacionadas ao aplicativo. Neste capítulo, você aprenderá a criar menus e adicioná-los aos formulários utilizando o controle Menu. Você verá como responder quando o usuário clica em um comando de um menu. Entenderá como criar menus pop-up cujos conteúdos variam de acordo com o contexto atual. Finalmente, compreenderá as classes de diálogo comuns fornecidas como parte da biblioteca WPF. Com essas classes de diálogo, você pode solicitar ao usuário itens frequentemente utilizados, como arquivos e impressoras, de maneira rápida, fácil e familiar.

Ver todos os capítulos
Medium 9788577808496

Capítulo 16 - Utilizando indexadores

John Sharp Grupo A PDF Criptografado

Capítulo 16

Utilizando indexadores

Neste capítulo, você vai aprender a:

■ Encapsular o acesso a um objeto com lógica de arrays utilizando indexadores.

■ Controlar o acesso de leitura a indexadores declarando métodos de acesso get.

■ Controlar o acesso de gravação a indexadores declarando os métodos de acesso set.

■ Criar interfaces que declaram indexadores.

■ Implementar indexadores em estruturas e classes que herdam de interfaces.

O capítulo anterior descreveu como implementar e usar as propriedades como um meio de fornecer acesso controlado aos campos em uma classe. As propriedades são úteis para espelhar campos que contenham um valor único. Mas os indexadores são inestimáveis se você quiser fornecer acesso aos itens que contenham múltiplos valores utilizando uma sintaxe natural e familiar.

O que é um indexador?

Considere um indexador um array inteligente quase como você considera uma propriedade um campo inteligente. Enquanto uma propriedade encapsula um único valor em uma classe, um indexador encapsula um conjunto de valores. A sintaxe que você utiliza para um indexador é a mesma utilizada para um array.

Ver todos os capítulos
Medium 9788577808496

Capítulo 21 - Sobrecarga de operadores

John Sharp Grupo A PDF Criptografado

Capítulo 21

Sobrecarga de operadores

Neste capítulo, você vai aprender a:

■ Implementar operadores binários para seus próprios tipos.

■ Implementar operadores unários para seus próprios tipos.

■ Escrever operadores de incremento e decremento para seus próprios tipos.

■ Entender a necessidade de implementar alguns operadores como pares.

■ Implementar operadores de conversão implícita para seus próprios tipos.

■ Implementar operadores de conversão explícita para seus próprios tipos.

Você já fez uso dos símbolos de operadores padrão (como + e –) para executar operações padrão

(como adição e subtração) em tipos (como int e double). Grande parte dos tipos predefinidos vem com seus comportamentos predefinidos para cada operador. Você também pode definir como os operadores das suas estruturas e classes devem se comportar, o que é o tópico deste capítulo.

Entendendo os operadores

Compensa rever alguns aspectos básicos dos operadores antes de examinar os detalhes de seu funcionamento e como sobrecarregá-los. Em resumo:

Ver todos os capítulos
Medium 9788582600931

Capítulo 10. Servidor LAMP

Marcelo Augusto Rauh Schmitt, André Peres, César Augusto Hass Loureiro Grupo A PDF Criptografado

capítulo 10

Servidor LAMP

A utilização de sistemas web dinâmicos permite que se executem sistemas inteiros em um servidor web. Isso significa que a entrada, o processamento e o armazenamento de dados ficam concentrados nesse servidor. Neste capítulo, você encontrará algumas informações sobre como proceder a instalação e a configuração de um servidor LAMP.

Objetivos deste capítulo

Realizar a instalação de um servidor LAMP

Configurar o servidor LAMP

Proceder a criação de um script

Introdução

DEFINIÇÃO

Os thinclients são computadores com baixa capacidade de processamento utilizados principalmente em ambientes empresariais e educacionais. Esses computadores são utilizados para acesso a servidores de desktop remotos como o serviço de Terminal Service da

Microsoft, XenApp da

Citrix, VNC, entre outros, e navegação web.

A utilização de sistemas web dinâmicos facilita a implantação de sistemas em rede uma vez que não é mais necessária a criação e instalação de programas executáveis no computador do usuário do sistema, ou seja, os usuários necessitam apenas de um navegador web. Isso facilita também o acesso ao sistema a partir de clientes com baixa capacidade de processamento, tais como dispositivos móveis como tablets e celulares, ou até mesmo computadores do tipo thinclients.

Ver todos os capítulos
Medium 9788582600931

Capítulo 5. DNS

Marcelo Augusto Rauh Schmitt, André Peres, César Augusto Hass Loureiro Grupo A PDF Criptografado

capítulo 5

DNS

Servidores de DNS (Domain Name System), também conhecidos como servidores de nome, são utilizados continuamente na internet. Sempre que você acessa uma página, envia um email, ou mesmo fala com alguém no Skype, servidores desse tipo estão sendo utilizados. Neste capítulo, você estudará o que é esse sistema, para que ele serve, como funciona, e aprenderá a instalá-lo no sistema operacional Linux.

Objetivos deste capítulo

Compreender o funcionamento do sistema denominado DNS

Configurar clientes DNS no Windows e no Linux

Instalar um servidor de DNS em ambiente Linux

Configurar servidores de DNS primários e secundários

Delegar a responsabilidade por subdomínio

Configurar um servidor de DNS reverso

Diagnosticar problemas de configuração de DNS

Introdução

O que é o DNS

Se traduzirmos a sigla DNS para o português, o resultado é algo do tipo “Sistema de Nomes de Domínio”. Essas três palavras indicam que a sigla trata de algo que

Ver todos os capítulos

Carregar mais