Use o código e tenha 10% de desconto!

🎁 Dezembro é especial na Casa do Código e vamos presentear você! Confira o regulamento aqui

Produtividade em C# Obtenha mais resultado com menos esforço

Cláudio Ralha

*Você terá acesso às futuras atualizações do livro.

Conteúdo

Alcançar alta produtividade no mercado de desenvolvimento de softwares é uma tarefa desafiadora especialmente se levarmos em consideração a velocidade em que as mudanças acontecem e a diversidade de plataformas e sistemas operacionais disponíveis. Utilizar uma linguagem de programação mais concisa e legível como o C#, que a cada novo lançamento revoluciona a maneira de criar softwares, pode ser o caminho para resolver velhos problemas de formas inteiramente novas e mais vantajosas.

Neste livro, Cláudio Ralha ensina como criar códigos mais elegantes e de alta qualidade, enquanto pratica a máxima do "menos é mais" tão em voga atualmente. Você verá que unir a linguagem C# a uma poderosa IDE como o Visual Studio pode trazer muitos benefícios para seus projetos com muito menos esforço do que imagina. Esta obra traz o que há de mais útil e produtivo em todas as versões já lançadas desse compilador e mostra passagens secretas "salvadoras de tempo" desconhecidas até mesmo por profissionais com larga experiência. Produtividade em C# é um guia essencial para quem pretende programar de forma profissional e fazer a diferença em um mercado de trabalho cada vez mais competitivo.

Saiba o que você vai aprender

 

Sumário

  • 1 Strings
  • 1.1 Criando strings mais legíveis
  • 1.2 Convertendo strings
  • 1.3 Formatando strings
  • 1.4 Sorteando uma string de um array ou lista
  • 1.5 Gerando uma string randômica
  • 1.6 Utilizando comentários especiais para sinalizar o código
  • 1.7 Utilizando expressões regulares para validar dados
  • 2 Operadores
  • 2.1 Usando os operadores de incremento ++ e de decremento --
  • 2.2 Usando os operadores especiais de atribuição
  • 2.3 Usando o operador condicional nulo ?
  • 2.4 Usando o operador de coalescência nula ??
  • 2.5 Usando o operador ternário ?:
  • 2.6 Usando o operador lógico is not
  • 2.7 Empregando a sobrecarga de operadores
  • 3 Estruturas condicionais e de repetição
  • 3.1 Criando estruturas condicionais e de repetição usando code snippets
  • 3.2 Utilizando laços for
  • 3.3 Utilizando laços while e do while
  • 3.4 Utilizando laços foreach
  • 3.5 Utilizando estruturas switch
  • 3.6 Empregando correspondência de padrões
  • 3.7 Melhorias na correspondência de padrões do C# 9.0
  • 3.8 Compactando instruções switch usando expressões switch
  • 4 Tipos e membros
  • 4.1 Criando tipos e membros usando code snippets
  • 4.2 Utilizando a sintaxe simplificada em tipos anuláveis
  • 4.3 Utilizando literais binárias e separadores de dígitos
  • 4.4 Criando múltiplos construtores de instância para uma classe
  • 4.5 Declarando uma propriedade autoimplementada como somente leitura ou somente escrita
  • 4.6 Iterando sobre um enumerado
  • 4.7 Utilizando inicializadores de objetos e de coleções
  • 4.8 Utilizando parâmetros opcionais e parâmetros nomeados
  • 4.9 Utilizando métodos de extensão para estender uma classe
  • 4.10 Utilizando o tipo dynamic para retornar objetos diferentes
  • 4.11 Utilizando yield em vez de criar coleções temporárias
  • 4.12 Utilizando declarações using para sinalizar objetos descartáveis
  • 4.13 Utilizando métodos de interface padrão
  • 4.14 Inicializando objetos usando new expressions
  • 4.15 Utilizando registros para criar tipos de referência imutáveis
  • 5 Tuplas
  • 5.1 Retornando múltiplos valores de um método usando uma tupla
  • 5.2 Passando múltiplos valores para um método usando tuplas
  • 5.3 Desconstruindo os elementos de uma tupla
  • 5.4 Desconstruindo os elementos de uma classe
  • 5.5 Descartando retornos de métodos e parâmetros out
  • 6 Generics
  • 6.1 Criando tipos genéricos
  • 6.2 Utilizando constraints em tipos genéricos
  • 6.3 Utilizando constraints em métodos genéricos
  • 6.4 Driblando limitações de cálculos em métodos genéricos
  • 6.5 Criando interfaces genéricas
  • 6.6 Utilizando tipos genéricos existentes no framework
  • 7 LINQ
  • 7.1 Filtrando dados usando LINQ
  • 7.2 Empregando operadores de elementos com retorno único
  • 7.3 Empregando Distinct para obter resultados únicos
  • 7.4 Empregando Union para combinar duas fontes de dados
  • 7.5 Empregando diferentes tipos de junções
  • 7.6 Ordenando o resultado das consultas
  • 8 Exceções
  • 8.1 Criando blocos de tratamento de exceções usando code snippets
  • 8.2 Tratando exceções usando filtros de exceções
  • 8.3 Efetuando log de erros usando filtros de exceções
  • 8.4 Inspecionando a pilha de chamadas
  • 8.5 Preservando a pilha de chamadas
  • 8.6 Utilizando throw em contextos que requerem uma expressão
  • 8.7 Utilizando o operador await em blocos catch e finally
  • 8.8 Interrompendo a execução quando uma exceção for gerada
  • 8.9 Capturando exceções do próprio framework e de bibliotecas de terceiros
  • 8.10 Consultando a pseudovariável $exception
  • 8.11 Criando classes de exceção personalizadas
  • 9 Geração de código
  • 9.1 Gerando classes a partir de JSON e XML
  • 9.2 Gerando classes e structs a partir do seu uso
  • 9.3 Gerando propriedades e campos a partir do seu uso
  • 9.4 Gerando métodos a partir do seu uso
  • 9.5 Gerando construtores a partir do seu uso
  • 9.6 Gerando enumerados a partir do seu uso
  • 9.7 Usando snippets de código em seus projetos
  • 9.8 Criando os seus próprios snippets de código
  • 9.9 Documentando o código-fonte com comentários XML
  • 9.10 Baixando templates de projeto do Visual Studio Marketplace
  • 9.11 Criando os seus próprios templates de projeto
  • 10 Limpeza de código-fonte
  • 10.1 Entendendo analisadores, correções de código e refatorações
  • 10.2 Impondo regras de estilo de código aos projetos
  • 10.3 Executando limpeza de código
  • 10.4 Visualizando os resultados das métricas de código
  • 10.5 Instalando extensões de inspeção de código e refatoração
  • 11 Ações rápidas e refatoração
  • 11.1 Dividindo o código de uma classe extensa em múltiplos arquivos
  • 11.2 Convertendo um tipo anônimo em uma classe
  • 11.3 Promovendo um membro de uma classe a uma interface ou tipo base
  • 11.4 Convertendo campos em propriedades
  • 11.5 Promovendo funções locais a métodos
  • 11.6 Reordenando os parâmetros de um método
  • 11.7 Adicionando nomes de argumentos
  • 11.8 Adicionando checagem de nulos para parâmetros
  • 11.9 Usando o comando de extração de método
  • 11.10 Convertendo string.Format em string interpolada
  • 11.11 Convertendo um loop for em um loop foreach
  • 11.12 Convertendo um loop foreach em um loop for
  • 11.13 Convertendo um loop foreach em LINQ ou expressões lambda
  • 11.14 Convertendo estruturas condicionais if em switch
  • 11.15 Adicionando cláusulas case ausentes em um switch
  • 11.16 Utilizando inicializadores de objetos
  • 11.17 Utilizando inicializadores de coleções
  • 12 Depuração
  • 12.1 Forçando o modo de interrupção do depurador
  • 12.2 Definindo pontos de interrupção no seu código
  • 12.3 Utilizando pontos de interrupção condicionais
  • 12.4 Utilizando pontos de interrupção de dados
  • 12.5 Utilizando pontos de interrupção de função
  • 12.6 Enviando informações para a janela de saída usando tracepoints
  • 12.7 Navegando pelo código em modo de interrupção
  • 12.8 Visualizando os dados durante a depuração
  • 12.9 Explorando DataTips
  • 13 Atributos de depuração
  • 13.1 Empregando os atributos de depuração StepThrough, Hidden e NonUserCode
  • 13.2 Controlando a exibição com o atributo de depuração Display
  • 13.3 Definindo o que será exibido com o atributo de depuração Browsable
  • 13.4 Melhorando a visualização dos dados durante a depuração com o atributo de depuração TypeProxy
  • 14 Compilação condicional
  • 14.1 Utilizando definições de símbolos e diretivas de pré-processador condicional
  • 14.2 Utilizando as diretivas de diagnóstico #error e #warning
  • 14.3 Utilizando a constante DEBUG
  • 14.4 Empregando blocos de código para versões específicas do Framework
  • 14.5 Usando o atributo Conditional em um método
  • 14.6 Ativando o suporte a tipos de referência anuláveis
  • 14.7 Agrupando os membros das classes em regiões
  • 15 Referências

Autor

Cláudio Ralha

Cláudio Ralha é cientista de dados, arquiteto de software e palestrante nas áreas de desenvolvimento de software e inteligência investigativa. Com 35 anos de experiência e várias certificações Microsoft e IBM, o autor já atuou como colunista de informática do jornal O GLOBO, editor técnico e colaborador de revistas como Infomania, CPU, Geek, Hackers e PC Brasil, além de articulista em portais como Macoratti.NET e Linha de Código. Como desenvolvedor, consultor e instrutor, Cláudio palestrou pela Microsoft (plataforma .NET e SQL Server) e IBM (plataforma IBM i2) e prestou serviços para grandes consultorias como Accenture, Stefanini, IBM, InforMaker, Relacional, Value Team, Softtek, Provider IT, SAAB Medav (Alemanha), CECAM e 3S Tecnologia em clientes como Petrobras, Shell, Esso, Furnas, Brascan, CVM, ONS, Organizações Globo, Rede Globo, Jornal O GLOBO, Brasil Veículos, Elsevier e Exército Brasileiro. Apaixonado por tecnologia, acredita que o conhecimento só tem valor quando é compartilhado!

Dados do produto

Número de páginas:
461
ISBN:
978-65-86110-70-8
Data publicação:
05/2021

Compartilhe!

Compartilhe no Facebook Compartilhe no Twitter