Produtividade em C# Obtenha mais resultado com menos esforço
Cláudio RalhaConteú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.
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