Gabriel Schade cardoso apresenta sobre programação funcional usando C# e F#. Ele discute conceitos como value containers, option types, modelagem de domínio e extração de dados externos como planilhas do Excel e dados do World Bank.
Estrutura de repetição com Ruby[AULA-3]Ricardo Silva
O documento discute estruturas de repetição em Ruby como for, while e until. Ele explica como cada uma funciona e dá exemplos de como contar de 1 a 100 usando cada uma. O documento também lista três exercícios para praticar estruturas de repetição, como contar de um número inicial a um final escolhido pelo usuário de 2 em 2 e perguntar ao usuário se ele quer continuar até que ele digite "não".
O documento apresenta exemplos de códigos em C sobre incremento, decremento, operadores relacionais e lógicos. Também fornece exercícios para praticar esses conceitos envolvendo estruturas de decisão como if/else e comparações.
O documento apresenta exemplos de uso do laço for em C para imprimir tabuadas e múltiplos de números. Explica que o laço for permite definir condições iniciais, de parada e incremento/decremento de variáveis de controle.
Logica de programação. introdução[AULA-1]Ricardo Silva
1) O documento apresenta os conceitos básicos de lógica de programação com a linguagem Ruby, incluindo variáveis, tipos de dados, algoritmos e a estrutura básica de um programa;
2) É apresentado um breve resumo profissional do autor e dicas para programadores;
3) São explicados exemplos simples de programas em Ruby com variáveis, entrada de dados, interpolação e exercícios.
1. O documento fornece instruções para construção de algoritmos, incluindo entender o problema, identificar entradas e saídas, processamento necessário e separar etapas. 2. É descrito um método para verificar algoritmos manualmente, simulando sua execução passo a passo. 3. São dados exemplos de algoritmos e suas verificações manuais.
C é uma linguagem de programação compilada, estruturada e procedural criada em 1972 por Dennis Ritchie para desenvolver o sistema operacional Unix. C influenciou muitas outras linguagens como C++ e é uma das mais populares, existindo compiladores para quase todas as arquiteturas.
Descritiva Narrativa (Lógica de Programação)Gercélia Ramos
Existem diversas formas de se representar um algoritmo, neste slide estaremos falando sobre a Descritiva Narrativa onde descrevemos o passo-a-passo de um algoritmo.[Aula para curso técnico]
O documento discute estruturas de repetição em VBA para Excel, incluindo Do Loops, Do While Loops, For Loops e For Each Loops. É explicado quando usar cada tipo de loop e exemplos de código são fornecidos para ilustrar cada uma.
Estrutura de repetição com Ruby[AULA-3]Ricardo Silva
O documento discute estruturas de repetição em Ruby como for, while e until. Ele explica como cada uma funciona e dá exemplos de como contar de 1 a 100 usando cada uma. O documento também lista três exercícios para praticar estruturas de repetição, como contar de um número inicial a um final escolhido pelo usuário de 2 em 2 e perguntar ao usuário se ele quer continuar até que ele digite "não".
O documento apresenta exemplos de códigos em C sobre incremento, decremento, operadores relacionais e lógicos. Também fornece exercícios para praticar esses conceitos envolvendo estruturas de decisão como if/else e comparações.
O documento apresenta exemplos de uso do laço for em C para imprimir tabuadas e múltiplos de números. Explica que o laço for permite definir condições iniciais, de parada e incremento/decremento de variáveis de controle.
Logica de programação. introdução[AULA-1]Ricardo Silva
1) O documento apresenta os conceitos básicos de lógica de programação com a linguagem Ruby, incluindo variáveis, tipos de dados, algoritmos e a estrutura básica de um programa;
2) É apresentado um breve resumo profissional do autor e dicas para programadores;
3) São explicados exemplos simples de programas em Ruby com variáveis, entrada de dados, interpolação e exercícios.
1. O documento fornece instruções para construção de algoritmos, incluindo entender o problema, identificar entradas e saídas, processamento necessário e separar etapas. 2. É descrito um método para verificar algoritmos manualmente, simulando sua execução passo a passo. 3. São dados exemplos de algoritmos e suas verificações manuais.
C é uma linguagem de programação compilada, estruturada e procedural criada em 1972 por Dennis Ritchie para desenvolver o sistema operacional Unix. C influenciou muitas outras linguagens como C++ e é uma das mais populares, existindo compiladores para quase todas as arquiteturas.
Descritiva Narrativa (Lógica de Programação)Gercélia Ramos
Existem diversas formas de se representar um algoritmo, neste slide estaremos falando sobre a Descritiva Narrativa onde descrevemos o passo-a-passo de um algoritmo.[Aula para curso técnico]
O documento discute estruturas de repetição em VBA para Excel, incluindo Do Loops, Do While Loops, For Loops e For Each Loops. É explicado quando usar cada tipo de loop e exemplos de código são fornecidos para ilustrar cada uma.
This document discusses experiences with Test Driven Development (TDD) in a corporate environment. It describes challenges with current development practices that lead to bugs and difficulties, benefits of TDD like secure development and reduced bugs, and a case study of successful TDD adoption on a large project. Common myths about TDD are also addressed.
1) Linguagens de programação permitem dar instruções precisas ao computador para executar tarefas;
2) Java é uma linguagem de programação que utiliza classes, métodos e outros recursos para criar programas;
3) O documento fornece detalhes sobre variáveis, entrada e saída de dados, e exemplos básicos de código Java.
O documento apresenta os conceitos básicos de Java e Orientação a Objetos, incluindo: 1) Java é uma linguagem de programação orientada a objetos desenvolvida pela Sun Oracle; 2) Orientação a Objetos modela o mundo real através de classes, herança, polimorfismo e encapsulamento; 3) Para ser desenvolvedor Java Júnior é necessário conhecimento de variáveis, controle de fluxo, classes, interfaces entre outros conceitos fundamentais.
Este documento apresenta os principais conceitos de algoritmos e lógica de programação. É dividido em 4 temporadas abordando tópicos como conceitos básicos de algoritmos, variáveis, tipos de dados, estruturas de controle de fluxo e operadores lógicos. O leitor é incentivado a resolver exercícios e aprofundar os estudos consultando a bibliografia fornecida.
TDC2018SP | Trilha .Net - Programacao Funcional com C#tdc-globalcode
O documento discute programação funcional usando C# e apresenta três tópicos principais: (1) Apresenta o conceito de programação funcional e como ele é diferente da programação orientada a objetos; (2) Discutem value containers como Option e Either e como eles podem ser usados para lidar com valores nulos de forma segura; (3) Apresenta um exemplo de refatoração de código usando value containers para lidar com erros de forma funcional.
O documento resume uma apresentação sobre programação funcional usando C#. Apresenta conceitos como value containers e como lidar com resultados e erros de forma funcional usando tipos como Option e Either. Demonstra como refatorar código imperativo para um estilo mais funcional com esses tipos.
O documento apresenta uma aula introdutória sobre programação orientada a objetos em Java ministrada pelo professor Dal Prá. O objetivo é ensinar conceitos básicos de OO como herança, polimorfismo e encapsulamento utilizando Java como linguagem de exemplo. O professor também explica sobre variáveis, operadores, desvios condicionais e fluxo de execução para familiarizar os alunos com a sintaxe da linguagem.
O documento descreve a história inicial do desenvolvimento do Java. Em 1990, a ideia era criar um dispositivo wireless sensível ao toque para controlar diversos dispositivos, mas o projeto não foi adiante. Em 1995, a equipe decidiu criar um navegador capaz de rodar a linguagem Java, chamado de HotJava. Posteriormente, o Java ganhou popularidade por sua portabilidade, sendo usado em diversas áreas como desenvolvimento web, sistemas Android e desktop.
Este documento apresenta os seguintes tópicos:
1) Revisão de algoritmos, estruturas de dados e pseudocódigo;
2) Estrutura básica de algoritmos em pseudocódigo, incluindo entrada, processamento e saída de dados;
3) Operadores aritméticos e teste de mesa para depuração de algoritmos.
O documento discute Design Patterns, estruturas de projeto reutilizáveis em programação orientada a objetos. Apresenta o que são Design Patterns, incluindo sua popularização após o livro "Design Patterns" de 1994, e lista 23 padrões comuns. Exemplos de Factory Method, Adapter e Observer são explicados detalhadamente ilustrando suas características e aplicações.
O documento discute a criação de uma API RESTful para uma lista de tarefas (todo list) utilizando Node.js, MongoDB e Docker. Ele apresenta os conceitos de front-end, back-end e REST, além de definir os objetivos da API e os passos para desenvolvê-la.
Este documento apresenta um curso introdutório à linguagem C. O curso é composto por módulos em PDF e vídeos que ensinam conceitos básicos como variáveis, constantes, vetores unidimensionais e bidimensionais, e uso de vetores como parâmetros de funções. O objetivo é que os alunos adquiram noções fundamentais de C para depois aprenderem Java de forma autônoma.
Palestra sobre algumas novidades do C# 8 e do ML.NET para o evento de lançamento do Visual Studio 2019.
Todas as implementações do ML.NET foram feitas em F#
#vs19
O documento discute conceitos básicos de lógica de programação, incluindo ferramentas como Portugol e Scratch, estruturas de decisão e repetição, variáveis, constantes e operadores. Explica como algoritmos usam lógica para resolver problemas através de sequências de instruções.
O documento discute padrões de projeto para software orientado a objetos. Ele explica que padrões de projeto podem ajudar desenvolvedores a criar software mais flexível e reutilizável, definindo soluções comuns para problemas recorrentes de projeto. O documento também descreve alguns padrões específicos como Singleton, Facade e Abstract Factory.
Desenvolva rapidamente
utilizando o framework
Desenvolva rapidamente utiliz...Renato Shirakashi
O documento discute o framework CakePHP para desenvolvimento rápido de aplicações web utilizando PHP. O CakePHP é baseado nos padrões MVC e ActiveRecord e fornece recursos como geração automática de código, validações e templates para facilitar o desenvolvimento. O documento também demonstra como utilizar ferramentas do CakePHP como o "bake" para gerar modelos, views e controllers rapidamente.
1) O documento discute o Domain-Driven Design (DDD), uma abordagem focada no domínio e na lógica de negócios.
2) As duas principais premissas do DDD são desenvolver um modelo que reflita o domínio e usar uma linguagem ubíqua compartilhada entre os especialistas de negócios e a equipe de desenvolvimento.
3) O DDD enfatiza a separação de camadas com base no domínio, utilizando conceitos como entidades, valores, agregações, serviços, fábricas e repositó
O documento discute vários aspectos importantes do teste de software, incluindo: (1) escrever testes antes de codificar para melhorar o design e a testabilidade do código; (2) evitar acoplamentos que dificultam os testes, como dependências externas e referências estáticas; (3) dividir responsabilidades em unidades menores para facilitar a criação de cenários de teste.
Este documento fornece um resumo introdutório sobre a linguagem de programação C#. As 3 principais informações são:
1) C# foi desenvolvida pela Microsoft e apresentada junto com a plataforma .NET;
2) C# é uma linguagem orientada a objetos que possui características como tipagem estática e dinâmica, coletor de lixo e suporte ao framework .NET;
3) O documento apresenta os primeiros passos para começar a programar em C#, desde a criação de um projeto no Visual C# até a exec
Explorando a Integração com .NET com o Magic xpa – Magic Sem Segredos – S01E07Magic Software Brasil
O documento discute como integrar o Magic xpa com o .NET, permitindo que controles e bibliotecas .NET sejam usados em aplicações Magic xpa. Ele explica como definir variáveis .NET, controlar propriedades, usar métodos e eventos, lidar com exceções, e vincular dados entre o Magic xpa e controles .NET.
O documento apresenta uma introdução sobre inteligência artificial e machine learning, discutindo o que são essas tecnologias e como elas podem ser usadas. Ele também descreve as três principais etapas do processo de machine learning - pré-processamento, treinamento e avaliação - e apresenta o Custom Vision como uma plataforma que facilita a criação de modelos de classificação de imagens.
O documento apresenta os principais conceitos da programação funcional usando a linguagem F#, como imutabilidade, funções como valores, tipos fortemente tipados, pipelines e composição. O palestrante destaca recursos da linguagem como Option, unidades de medida e type providers para carregar dados dinamicamente.
This document discusses experiences with Test Driven Development (TDD) in a corporate environment. It describes challenges with current development practices that lead to bugs and difficulties, benefits of TDD like secure development and reduced bugs, and a case study of successful TDD adoption on a large project. Common myths about TDD are also addressed.
1) Linguagens de programação permitem dar instruções precisas ao computador para executar tarefas;
2) Java é uma linguagem de programação que utiliza classes, métodos e outros recursos para criar programas;
3) O documento fornece detalhes sobre variáveis, entrada e saída de dados, e exemplos básicos de código Java.
O documento apresenta os conceitos básicos de Java e Orientação a Objetos, incluindo: 1) Java é uma linguagem de programação orientada a objetos desenvolvida pela Sun Oracle; 2) Orientação a Objetos modela o mundo real através de classes, herança, polimorfismo e encapsulamento; 3) Para ser desenvolvedor Java Júnior é necessário conhecimento de variáveis, controle de fluxo, classes, interfaces entre outros conceitos fundamentais.
Este documento apresenta os principais conceitos de algoritmos e lógica de programação. É dividido em 4 temporadas abordando tópicos como conceitos básicos de algoritmos, variáveis, tipos de dados, estruturas de controle de fluxo e operadores lógicos. O leitor é incentivado a resolver exercícios e aprofundar os estudos consultando a bibliografia fornecida.
TDC2018SP | Trilha .Net - Programacao Funcional com C#tdc-globalcode
O documento discute programação funcional usando C# e apresenta três tópicos principais: (1) Apresenta o conceito de programação funcional e como ele é diferente da programação orientada a objetos; (2) Discutem value containers como Option e Either e como eles podem ser usados para lidar com valores nulos de forma segura; (3) Apresenta um exemplo de refatoração de código usando value containers para lidar com erros de forma funcional.
O documento resume uma apresentação sobre programação funcional usando C#. Apresenta conceitos como value containers e como lidar com resultados e erros de forma funcional usando tipos como Option e Either. Demonstra como refatorar código imperativo para um estilo mais funcional com esses tipos.
O documento apresenta uma aula introdutória sobre programação orientada a objetos em Java ministrada pelo professor Dal Prá. O objetivo é ensinar conceitos básicos de OO como herança, polimorfismo e encapsulamento utilizando Java como linguagem de exemplo. O professor também explica sobre variáveis, operadores, desvios condicionais e fluxo de execução para familiarizar os alunos com a sintaxe da linguagem.
O documento descreve a história inicial do desenvolvimento do Java. Em 1990, a ideia era criar um dispositivo wireless sensível ao toque para controlar diversos dispositivos, mas o projeto não foi adiante. Em 1995, a equipe decidiu criar um navegador capaz de rodar a linguagem Java, chamado de HotJava. Posteriormente, o Java ganhou popularidade por sua portabilidade, sendo usado em diversas áreas como desenvolvimento web, sistemas Android e desktop.
Este documento apresenta os seguintes tópicos:
1) Revisão de algoritmos, estruturas de dados e pseudocódigo;
2) Estrutura básica de algoritmos em pseudocódigo, incluindo entrada, processamento e saída de dados;
3) Operadores aritméticos e teste de mesa para depuração de algoritmos.
O documento discute Design Patterns, estruturas de projeto reutilizáveis em programação orientada a objetos. Apresenta o que são Design Patterns, incluindo sua popularização após o livro "Design Patterns" de 1994, e lista 23 padrões comuns. Exemplos de Factory Method, Adapter e Observer são explicados detalhadamente ilustrando suas características e aplicações.
O documento discute a criação de uma API RESTful para uma lista de tarefas (todo list) utilizando Node.js, MongoDB e Docker. Ele apresenta os conceitos de front-end, back-end e REST, além de definir os objetivos da API e os passos para desenvolvê-la.
Este documento apresenta um curso introdutório à linguagem C. O curso é composto por módulos em PDF e vídeos que ensinam conceitos básicos como variáveis, constantes, vetores unidimensionais e bidimensionais, e uso de vetores como parâmetros de funções. O objetivo é que os alunos adquiram noções fundamentais de C para depois aprenderem Java de forma autônoma.
Palestra sobre algumas novidades do C# 8 e do ML.NET para o evento de lançamento do Visual Studio 2019.
Todas as implementações do ML.NET foram feitas em F#
#vs19
O documento discute conceitos básicos de lógica de programação, incluindo ferramentas como Portugol e Scratch, estruturas de decisão e repetição, variáveis, constantes e operadores. Explica como algoritmos usam lógica para resolver problemas através de sequências de instruções.
O documento discute padrões de projeto para software orientado a objetos. Ele explica que padrões de projeto podem ajudar desenvolvedores a criar software mais flexível e reutilizável, definindo soluções comuns para problemas recorrentes de projeto. O documento também descreve alguns padrões específicos como Singleton, Facade e Abstract Factory.
Desenvolva rapidamente
utilizando o framework
Desenvolva rapidamente utiliz...Renato Shirakashi
O documento discute o framework CakePHP para desenvolvimento rápido de aplicações web utilizando PHP. O CakePHP é baseado nos padrões MVC e ActiveRecord e fornece recursos como geração automática de código, validações e templates para facilitar o desenvolvimento. O documento também demonstra como utilizar ferramentas do CakePHP como o "bake" para gerar modelos, views e controllers rapidamente.
1) O documento discute o Domain-Driven Design (DDD), uma abordagem focada no domínio e na lógica de negócios.
2) As duas principais premissas do DDD são desenvolver um modelo que reflita o domínio e usar uma linguagem ubíqua compartilhada entre os especialistas de negócios e a equipe de desenvolvimento.
3) O DDD enfatiza a separação de camadas com base no domínio, utilizando conceitos como entidades, valores, agregações, serviços, fábricas e repositó
O documento discute vários aspectos importantes do teste de software, incluindo: (1) escrever testes antes de codificar para melhorar o design e a testabilidade do código; (2) evitar acoplamentos que dificultam os testes, como dependências externas e referências estáticas; (3) dividir responsabilidades em unidades menores para facilitar a criação de cenários de teste.
Este documento fornece um resumo introdutório sobre a linguagem de programação C#. As 3 principais informações são:
1) C# foi desenvolvida pela Microsoft e apresentada junto com a plataforma .NET;
2) C# é uma linguagem orientada a objetos que possui características como tipagem estática e dinâmica, coletor de lixo e suporte ao framework .NET;
3) O documento apresenta os primeiros passos para começar a programar em C#, desde a criação de um projeto no Visual C# até a exec
Explorando a Integração com .NET com o Magic xpa – Magic Sem Segredos – S01E07Magic Software Brasil
O documento discute como integrar o Magic xpa com o .NET, permitindo que controles e bibliotecas .NET sejam usados em aplicações Magic xpa. Ele explica como definir variáveis .NET, controlar propriedades, usar métodos e eventos, lidar com exceções, e vincular dados entre o Magic xpa e controles .NET.
Ähnlich wie Programação Funcional usando C# e F# (20)
O documento apresenta uma introdução sobre inteligência artificial e machine learning, discutindo o que são essas tecnologias e como elas podem ser usadas. Ele também descreve as três principais etapas do processo de machine learning - pré-processamento, treinamento e avaliação - e apresenta o Custom Vision como uma plataforma que facilita a criação de modelos de classificação de imagens.
O documento apresenta os principais conceitos da programação funcional usando a linguagem F#, como imutabilidade, funções como valores, tipos fortemente tipados, pipelines e composição. O palestrante destaca recursos da linguagem como Option, unidades de medida e type providers para carregar dados dinamicamente.
O documento discute arquitetura de software limpa, explicando que ela separa a lógica principal de negócios de detalhes externos como interface do usuário e banco de dados. Apresenta o conceito de adaptadores que conectam o domínio principal à camada externa e demonstra uma aplicação que armazena dados de usuários usando essa abordagem.
Machine Learning: Classificação de Comentários com Azure ML & PythonGabriel Schade Cardoso
Slides utilizados no evento InterOP para demonstrar a criação de um modelo utilizando tanto Python quanto o Azure Machine Learning Studio.
Além disso, os slides dão uma boa noção do conceito geral.
Slides sobre Machine Learning e Inteligência Artificial utilizando como ferramenta o Azure Machine Learning Studio, ferramenta gratuita utilizada em Nuvem.
Através desta ferramenta podemos fazer o exemplo completo, desde a utilização de uma base de dados de exemplo, até a publicação do modelo como um serviço web.
Palestra sobre programação funcional para a trilha no TDC SP 2018.
Nesta palestra é possível encontrar slides sobre a utilização de programação funcional em C# e F#, mesclando as duas linguagens na mesma aplicação para uma solução híbrida.
O documento discute a arquitetura limpa para desenvolvimento de software. Apresenta os conceitos de arquitetura hexagonal, ports and adapters e como a arquitetura limpa separa a lógica do núcleo da aplicação de detalhes como a interface do usuário, banco de dados e linguagem. Demonstra uma aplicação que armazena dados de usuários usando essa abordagem arquitetural.
Gabriel Schade Cardoso é um mestre em computação aplicada, desenvolvedor, professor e autor de livros. Sua apresentação discute como utilizar inteligência artificial (IA) e aprendizado de máquina (machine learning) por meio de serviços cognitivos da Microsoft, demonstrando como gerar legendas para fotos e reconhecer informações sobre pessoas.
O documento apresenta uma palestra sobre programação funcional e refatoração de código usando abordagens funcionais. A palestra discute como o paradigma funcional pode ajudar a resolver problemas comuns como null exceptions, apresenta conceitos como value containers e high order functions, e mostra como refatorar uma função de atualização de usuário usando esses conceitos para melhor tratar erros e encadear operações.
Machine learning é um tema muito popular, mas ainda é muito comum ter uma série de dúvidas.
O objetivo desta apresentação é desmistificar este tema, mostrando uma série de informações sobre os dados e com um exemplo prático.
Nesta palestra mostrei os problemas das exceções e do gerenciamento de erros e validações em aplicação de modo geral. Introduzindo um conceito de railway simples em C#, criando uma espécie de promise para o .NET.
O documento apresenta Gabriel Schade Cardoso, um desenvolvedor e professor especializado em programação funcional. Ele discute os conceitos básicos de programação funcional, incluindo vincular valores em vez de atribuição, funções, currying, aplicação parcial e funções de alta ordem. Exemplos são fornecidos para ilustrar esses conceitos.
O documento discute a importância da programação funcional e fornece exemplos de seus principais conceitos, como: 1) funções como membros de primeira ordem; 2) expressões e composições para criar códigos; 3) tipos para expressar códigos de forma clara.
Palestra ministrada no Meetup "DDD - Domain-Driven Design - Balneário Camboriú". - Acessível em: https://www.meetup.com/qualyteam/events/243888032/
Nesta apresentação abordo os temas linguagem ubíqua e código expressivo. Utilizando conceitos de programação funcional mistos com programação orientada à objetos.
Gabriel Schade Cardoso apresenta seu trabalho com desenvolvimento utilizando o Microsoft Kinect. Ele tem experiência com C# e .NET, além de ser autor de livros sobre Kinect e Windows Phone. O documento explica como o Kinect funciona para reconhecimento de voz, mãos e postura através de sensores e fluxos de esqueleto, bem como técnicas para detecção de gestos.
Gabriel Schade Cardoso é um desenvolvedor .NET com experiência em interfaces naturais como o Kinect. O documento descreve as principais funcionalidades do Kinect SDK, incluindo captura de profundidade, reconhecimento de esqueletos, streams de áudio, cores e profundidade. Algoritmos como a lei dos cossenos e produto escalar são usados para detecção de poses e gestos.
A linguagem C# aproveita conceitos de muitas outras linguagens,
mas especialmente de C++ e Java. Sua sintaxe é relativamente fácil, o que
diminui o tempo de aprendizado. Todos os programas desenvolvidos devem
ser compilados, gerando um arquivo com a extensão DLL ou EXE. Isso torna a
execução dos programas mais rápida se comparados com as linguagens de
script (VBScript , JavaScript) que atualmente utilizamos na internet
As classes de modelagem podem ser comparadas a moldes ou
formas que definem as características e os comportamentos dos
objetos criados a partir delas. Vale traçar um paralelo com o projeto de
um automóvel. Os engenheiros definem as medidas, a quantidade de
portas, a potência do motor, a localização do estepe, dentre outras
descrições necessárias para a fabricação de um veículo
10. Vamos ao problema do null
Veja este método:
O que ele tem de errado?
# msptechday
11. Vamos ao problema do null
Ele é um método mentiroso
A assinatura dele me diz que ele irá retornar um
usuário, mas e se o id informado for inválido?
# msptechday
12. Vamos ao problema do null
Veja este método:
O que é um User option?
# msptechday
13. Vamos ao problema do null
Este é um método honesto, ele indica que talvez ele
retorne um usuário;
Ok, mas e nossa vida, no que muda?
# msptechday
14. Vamos ao problema do null
Mas isso não é só um null check obrigatório?
Quase, mas causa erro de compilação.
O erro acontece porque o tipo option é um value
container de algum tipo e não o tipo em si.
# msptechday
16. Value Container
Um container pode ser visto como um envelope ou
uma caixa que circunda um objeto/valor, colocando-o
em algum contexto específico.
Lidamos com este tipo de valor o tempo todo:
List;
Task;
Nullable.
# msptechday
17. Value Container
Imagine o seguinte cenário: você possui um dado do
tipo inteiro e precisa somá-lo com o valor 3.
# msptechday
18. Value Container
E se este mesmo número estiver em um array? Mesmo
que sozinho...
# msptechday
19. Value Container
Não podemos realizar a soma diretamente com o
valor, por conta do contexto que o cerca.
Por isso, comumente temos uma função para remover
o valor de seu contexto.
# msptechday
20. Value Container
No caso do array podemos utilizar o indexador para
extrair um elemento do contexto:
# msptechday
21. Value Container
E para o caso onde precisamos aplicar a operação
para o array inteiro?
# msptechday
22. Value Container
E para o caso onde precisamos aplicar a operação
para o array inteiro?
# msptechday
23. Value Container
E para o caso onde precisamos aplicar a operação
para o array inteiro?
# msptechday
24. Value Container
Geralmente utilizamos as funções ou comparação de
padrões (pattern matching) para alterar o contexto dos
valores.
Podemos nos aproveitar deste conceito para criar
novos objetos e classes que armazenam valores sob
um determinado contexto.
# msptechday
25. Value Container
Que tal criar um Option para o C#?
1. O tipo não pode assumir o valor null;
2. Precisamos de uma maneira de extrair a informação do
contexto;
3. Não deixaremos o programador acessar a informação,
caso ela esteja no estado inválido;
# msptechday
36. modelagem de Domínio
# msptechday
O F# também compreende multiplicação entre
unidades:
37. Extração de dados externos
# msptechday
Importação de tabelas do Excel;
Explorando o mundo com o World Bank;
Leitura de dados de uma página HTML;
38. Extração de dados – Excel
# msptechday
Importar informações para um sistema desenvolvido
em C#