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.
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 discute conceitos de qualidade de código como sistemas legados, refatoração, bad smells, nomenclatura, comentários, métodos, testes e métricas. A palestrante Gisele Zomer Rossi fala sobre como melhorar a estrutura e legibilidade do código através de refatorações.
TDC 2012 TDD e 20 coisas que você precisa saberCamilo Lopes
[1] O documento discute TDD (Test Driven Development) e fornece 20 lições aprendidas sobre TDD. [2] Apresenta Camilo Lopes, o palestrante, e seu background com desenvolvimento ágil. [3] Explica os benefícios de TDD como melhor qualidade de código, estimativas mais precisas e entregas mais rápidas.
O documento apresenta as principais novidades do C# 6, incluindo using static, auto-property initializers, expression-bodied members, null-conditional operator, string interpolation, exception filters e operador nameof. O palestrante também discute chamadas assíncronas em blocos try-catch-finally e demonstra essas funcionalidades comparando códigos com e sem o C# 6.
O lançamento do Visual Studio 2015 veio acompanhado, aliás, muito bem acompanhado, pelo C#6! Com isso temos vários recursos novos para auxiliar o desenvolvimento e deixar a linguagem bem mais completa, além de ser compilado em Roslyn que é feito em C#, deixando a compilação mais performática, ele veio com várias novidades que serão abordadas nessa apresentação.
O documento discute princípios de código limpo, incluindo: 1) tratar erros com exceções em vez de códigos de retorno; 2) limitar dependências de código de terceiros; 3) escrever testes de unidade limpos e automatizados para guiar o desenvolvimento. Ele também aborda tópicos como classes pequenas com responsabilidade única, separação de construção e uso de sistemas, e refinamento contínuo aplicando boas práticas.
O documento apresenta uma introdução sobre a complexidade cognitiva, medida de qualidade de software que avalia a dificuldade de entendimento de código. Ele define a complexidade cognitiva, compara-a com a complexidade ciclomática e fornece um exemplo prático de cálculo. O documento também discute a metodologia de cálculo da complexidade cognitiva e suas vantagens em relação à complexidade ciclomática.
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 discute conceitos de qualidade de código como sistemas legados, refatoração, bad smells, nomenclatura, comentários, métodos, testes e métricas. A palestrante Gisele Zomer Rossi fala sobre como melhorar a estrutura e legibilidade do código através de refatorações.
TDC 2012 TDD e 20 coisas que você precisa saberCamilo Lopes
[1] O documento discute TDD (Test Driven Development) e fornece 20 lições aprendidas sobre TDD. [2] Apresenta Camilo Lopes, o palestrante, e seu background com desenvolvimento ágil. [3] Explica os benefícios de TDD como melhor qualidade de código, estimativas mais precisas e entregas mais rápidas.
O documento apresenta as principais novidades do C# 6, incluindo using static, auto-property initializers, expression-bodied members, null-conditional operator, string interpolation, exception filters e operador nameof. O palestrante também discute chamadas assíncronas em blocos try-catch-finally e demonstra essas funcionalidades comparando códigos com e sem o C# 6.
O lançamento do Visual Studio 2015 veio acompanhado, aliás, muito bem acompanhado, pelo C#6! Com isso temos vários recursos novos para auxiliar o desenvolvimento e deixar a linguagem bem mais completa, além de ser compilado em Roslyn que é feito em C#, deixando a compilação mais performática, ele veio com várias novidades que serão abordadas nessa apresentação.
O documento discute princípios de código limpo, incluindo: 1) tratar erros com exceções em vez de códigos de retorno; 2) limitar dependências de código de terceiros; 3) escrever testes de unidade limpos e automatizados para guiar o desenvolvimento. Ele também aborda tópicos como classes pequenas com responsabilidade única, separação de construção e uso de sistemas, e refinamento contínuo aplicando boas práticas.
O documento apresenta uma introdução sobre a complexidade cognitiva, medida de qualidade de software que avalia a dificuldade de entendimento de código. Ele define a complexidade cognitiva, compara-a com a complexidade ciclomática e fornece um exemplo prático de cálculo. O documento também discute a metodologia de cálculo da complexidade cognitiva e suas vantagens em relação à complexidade ciclomática.
O documento discute princípios de clean code em C#, incluindo nomes significativos, métodos simples, baixo acoplamento entre classes e redução de duplicação de código. O Visual Studio fornece ferramentas como Code Metrics para medir a qualidade do código e identificar áreas que precisam de refatoração.
O documento discute os tipos primitivos e referenciais em Java, incluindo byte, char, int e String. Também aborda literais, variáveis, operadores e outros fundamentos da linguagem.
Facilitando o desenvolvimento orientado a testes em aplicações PHPPedro Chaves
Palestra sobre Desenvolvimento Orientado a Testes (TDD) em PHP utilizando o framework de testes Codeception. Apresentada no iMasters Developer Week de Belo Horizonte, ocorrido entre 26 e 28 de maio de 2015
O documento resume as principais características da linguagem Java, incluindo sua história, características como orientação a objetos e portabilidade, funcionamento da máquina virtual Java, compilação e execução de código Java, e boas práticas de programação.
O documento discute os fundamentos da orientação a objetos em Java, incluindo classes, atributos, métodos, encapsulamento, construtores e inicialização de objetos. Explica que classes são abstrações de objetos do mundo real, com atributos representando características e métodos representando ações. Discute os níveis de visibilidade como private, protected e public.
O documento discute padrões de projeto de software, incluindo o Gang of Four que descreveu 23 padrões. Ele explica brevemente cinco padrões: template method, strategy, observer, singleton e iterator.
Este documento apresenta conceitos de código limpo em exemplos de código. Apresenta 4 partes: 1) Filosofia, 2) Teoria, 3) Prática com exemplos de código, 4) Laboratório de refatoração. Fornece conceitos como DDD, SRP, DRY, testes, refatoração e regras de simplicidade aplicados a exemplos de código.
UFCG.JCert Reunião 1 - Declarações e Controle de AcessoAnderson Ledo
O documento discute conceitos importantes sobre declaração de classes e interfaces em Java, incluindo: (1) identificadores permitidos e não permitidos em Java, (2) modificadores de acesso como público e privado, e (3) como declarar classes, interfaces e constantes.
O documento discute a importância da refatoração de código para mantê-lo limpo, de fácil manutenção e entendimento. Apresenta conceitos como Clean Code, Object Calisthenics, princípios SOLID e padrões de projeto que auxiliam na refatoração, além de discutir técnicas como identificar código que precisa ser refatorado, manter a interface inalterada e testar durante o processo.
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 discute o dilema entre focar na qualidade do código versus entregar novas funcionalidades rapidamente. Ele argumenta que é melhor não diminuir a qualidade para atender prazos, e sim buscar qualidade para maior produtividade no longo prazo. Técnicas como pair programming, TDD, refactoring, testes automatizados e código limpo ajudam a manter boa qualidade.
O documento apresenta um resumo da palestra "Refatorar é Preciso! Uma visão Técnica e Filosófica" de Daniel Archer na PHP Conference 2015. A palestra discute a importância do refactoring para manter códigos limpos, reutilizáveis e de fácil entendimento. O palestrante também apresenta princípios como S.O.L.I.D e padrões de projeto como estratégias para melhorar a qualidade do código.
Coding Dojo é um treino coletivo de programação onde duplas se alternam resolvendo problemas usando Test Driven Development (TDD) e passos pequenos. O processo envolve escrever testes antes de implementar novas funcionalidades e só avançar quando os testes são aprovados, enquanto a platéia não pode se manifestar exceto quando solicitada. O objetivo é treinar boas práticas de programação e aprender novas habilidades de forma divertida e eficiente.
Desenvolvimento Orientado a Documentação? Utilizando doctests para tornar seu...Adam Victor Brandizzi
O documento discute o módulo doctest em Python, que executa exemplos de código em docstrings para verificar se os resultados são os esperados. Isso permite que a documentação seja executável e sempre atualizada. Doctests podem encontrar erros ao atualizar código para novas versões do Python. Embora haja pequenos problemas, como detalhes irrelevantes que quebram exemplos, doctest pode melhorar a clareza do código e manter a documentação atualizada.
TDC2018SP | Trilha Arq .Net - Performance e featuretdc-globalcode
O documento discute otimização de performance em desenvolvimento de software. Em 3 frases ou menos, o documento enfatiza que otimização prematura pode ter impactos negativos, que performance depende do contexto e que é importante entender detalhadamente como o código funciona. O palestrante também lista diversas ferramentas e abordagens de programação para analisar seu impacto na performance.
Como melhoramos a performance dos testes automatizados com py.test e factoryboyLeonardo Galani
O documento discute como a equipe melhorou os testes automatizados usando py.test e factoryboy. Inicialmente, os testes eram desenvolvidos separadamente da equipe de desenvolvimento e erros só eram encontrados no Jenkins. Posteriormente, a equipe adotou py.test e factoryboy para gerar dados de teste e dependências de forma dinâmica, permitindo testes mais completos e integrados ao desenvolvimento. Isso melhorou a qualidade dos testes e facilitou a adoção de padrões de teste na equipe.
O documento discute a API Roslyn do .NET, que permite o acesso ao pipeline de compilação do C# e VB.NET. Isso torna possível implementar ferramentas de código como syntax highlighting, intellisense e refactoring sem precisar reimplementar a análise sintática e semântica. A API Roslyn também permite a geração e análise de código em tempo de execução, facilitando o desenvolvimento de ferramentas de software.
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.
Combatendo o Código Procedural - TDC 2012 Florianópolis - Trilha PHPRodrigo Dos Santos
O documento discute princípios de programação procedural versus programação orientada a objetos. Ele enfatiza a importância de separar as responsabilidades do código através de modelagem, uso de padrões e testes para produzir software de melhor qualidade e mais fácil de manter.
O documento discute princípios de clean code em C#, incluindo nomes significativos, métodos simples, baixo acoplamento entre classes e redução de duplicação de código. O Visual Studio fornece ferramentas como Code Metrics para medir a qualidade do código e identificar áreas que precisam de refatoração.
O documento discute os tipos primitivos e referenciais em Java, incluindo byte, char, int e String. Também aborda literais, variáveis, operadores e outros fundamentos da linguagem.
Facilitando o desenvolvimento orientado a testes em aplicações PHPPedro Chaves
Palestra sobre Desenvolvimento Orientado a Testes (TDD) em PHP utilizando o framework de testes Codeception. Apresentada no iMasters Developer Week de Belo Horizonte, ocorrido entre 26 e 28 de maio de 2015
O documento resume as principais características da linguagem Java, incluindo sua história, características como orientação a objetos e portabilidade, funcionamento da máquina virtual Java, compilação e execução de código Java, e boas práticas de programação.
O documento discute os fundamentos da orientação a objetos em Java, incluindo classes, atributos, métodos, encapsulamento, construtores e inicialização de objetos. Explica que classes são abstrações de objetos do mundo real, com atributos representando características e métodos representando ações. Discute os níveis de visibilidade como private, protected e public.
O documento discute padrões de projeto de software, incluindo o Gang of Four que descreveu 23 padrões. Ele explica brevemente cinco padrões: template method, strategy, observer, singleton e iterator.
Este documento apresenta conceitos de código limpo em exemplos de código. Apresenta 4 partes: 1) Filosofia, 2) Teoria, 3) Prática com exemplos de código, 4) Laboratório de refatoração. Fornece conceitos como DDD, SRP, DRY, testes, refatoração e regras de simplicidade aplicados a exemplos de código.
UFCG.JCert Reunião 1 - Declarações e Controle de AcessoAnderson Ledo
O documento discute conceitos importantes sobre declaração de classes e interfaces em Java, incluindo: (1) identificadores permitidos e não permitidos em Java, (2) modificadores de acesso como público e privado, e (3) como declarar classes, interfaces e constantes.
O documento discute a importância da refatoração de código para mantê-lo limpo, de fácil manutenção e entendimento. Apresenta conceitos como Clean Code, Object Calisthenics, princípios SOLID e padrões de projeto que auxiliam na refatoração, além de discutir técnicas como identificar código que precisa ser refatorado, manter a interface inalterada e testar durante o processo.
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 discute o dilema entre focar na qualidade do código versus entregar novas funcionalidades rapidamente. Ele argumenta que é melhor não diminuir a qualidade para atender prazos, e sim buscar qualidade para maior produtividade no longo prazo. Técnicas como pair programming, TDD, refactoring, testes automatizados e código limpo ajudam a manter boa qualidade.
O documento apresenta um resumo da palestra "Refatorar é Preciso! Uma visão Técnica e Filosófica" de Daniel Archer na PHP Conference 2015. A palestra discute a importância do refactoring para manter códigos limpos, reutilizáveis e de fácil entendimento. O palestrante também apresenta princípios como S.O.L.I.D e padrões de projeto como estratégias para melhorar a qualidade do código.
Coding Dojo é um treino coletivo de programação onde duplas se alternam resolvendo problemas usando Test Driven Development (TDD) e passos pequenos. O processo envolve escrever testes antes de implementar novas funcionalidades e só avançar quando os testes são aprovados, enquanto a platéia não pode se manifestar exceto quando solicitada. O objetivo é treinar boas práticas de programação e aprender novas habilidades de forma divertida e eficiente.
Desenvolvimento Orientado a Documentação? Utilizando doctests para tornar seu...Adam Victor Brandizzi
O documento discute o módulo doctest em Python, que executa exemplos de código em docstrings para verificar se os resultados são os esperados. Isso permite que a documentação seja executável e sempre atualizada. Doctests podem encontrar erros ao atualizar código para novas versões do Python. Embora haja pequenos problemas, como detalhes irrelevantes que quebram exemplos, doctest pode melhorar a clareza do código e manter a documentação atualizada.
TDC2018SP | Trilha Arq .Net - Performance e featuretdc-globalcode
O documento discute otimização de performance em desenvolvimento de software. Em 3 frases ou menos, o documento enfatiza que otimização prematura pode ter impactos negativos, que performance depende do contexto e que é importante entender detalhadamente como o código funciona. O palestrante também lista diversas ferramentas e abordagens de programação para analisar seu impacto na performance.
Como melhoramos a performance dos testes automatizados com py.test e factoryboyLeonardo Galani
O documento discute como a equipe melhorou os testes automatizados usando py.test e factoryboy. Inicialmente, os testes eram desenvolvidos separadamente da equipe de desenvolvimento e erros só eram encontrados no Jenkins. Posteriormente, a equipe adotou py.test e factoryboy para gerar dados de teste e dependências de forma dinâmica, permitindo testes mais completos e integrados ao desenvolvimento. Isso melhorou a qualidade dos testes e facilitou a adoção de padrões de teste na equipe.
O documento discute a API Roslyn do .NET, que permite o acesso ao pipeline de compilação do C# e VB.NET. Isso torna possível implementar ferramentas de código como syntax highlighting, intellisense e refactoring sem precisar reimplementar a análise sintática e semântica. A API Roslyn também permite a geração e análise de código em tempo de execução, facilitando o desenvolvimento de ferramentas de software.
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.
Combatendo o Código Procedural - TDC 2012 Florianópolis - Trilha PHPRodrigo Dos Santos
O documento discute princípios de programação procedural versus programação orientada a objetos. Ele enfatiza a importância de separar as responsabilidades do código através de modelagem, uso de padrões e testes para produzir software de melhor qualidade e mais fácil de manter.
O documento apresenta os principais conceitos da programação funcional usando a linguagem F#, como imutabilidade, funções como valores, composição de funções, type providers e features como Option e unidades de medida. O objetivo é mostrar como F# oferece um paradigma diferente de programação e como seus recursos podem ser usados no desenvolvimento .NET.
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.
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.
TDC2016POA | Trilha .NET - O que esperar do C# 7tdc-globalcode
O documento resume as principais novidades do C# 7, incluindo melhorias no desempenho, simplificação de código e consumo de dados. As principais features apresentadas são pattern matching, tuples, desconstruction, local functions, ref return e locals e out var.
O documento discute as vantagens do Java Server Faces (JSF) para desenvolvimento de interfaces web. O JSF permite a divisão de responsabilidades entre modelo, visão e controle através do padrão MVC, facilitando a manutenção e organização do código. Ele também suporta integração com diversas tecnologias como CSS, JavaScript e Ajax, além de recursos como validação de dados, conversão e recuperação de objetos.
TDC 2015 - Trilha PHP - Testes e Ambiente de Integração Contínua PHP para o D...Bruno Tanoue
Este documento discute testes e ambientes de integração contínua para desenvolvimento ágil em PHP. Ele apresenta a pirâmide de testes, explica testes de unidade isolados versus colaborativos, e discute otimizações para execução de testes e configuração de ambientes de integração contínua usando ferramentas como Jenkins.
O documento apresenta o Spring Roo, uma ferramenta RAD para criação de aplicações Java. O Spring Roo aumenta a produtividade, elimina burocracia de projetos Java, e gera código de qualidade adotando padrões da comunidade Java. Ele permite criar rapidamente um projeto com estrutura de pastas, configuração do Maven, definição da camada de persistência e geração de entidades, atributos e controladores.
O documento discute as diferenças entre as linguagens de programação F# e C#. Ele explica que F# foi desenvolvido pela Microsoft Research para ser funcional em primeiro lugar e ter tipos algébricos, ao contrário de C# que tem raízes em C e é orientado a objetos. Ele também destaca que F# tem inferência de tipos, composição funcional e imutabilidade como padrão.
[TDCPOA2018] Desmistificando a eXtreme Programming para desenvolvedores "não ...Vinicius Campos Silva
Nossos desenvolvedores conhecem práticas ágeis propostas por eXtreme Programming? Se sim, eles estão realmente aplicando-as de forma que os ajudem a entregar software de valor? Caso contrário, os desenvolvedores estão desacreditados quanto a agilidade? O Scrum team sendo responsável pela qualidade técnica do que está sendo entregue para o cliente, pode e deve utilizar práticas da eXtreme Programming para obter melhores resultados!
Construir aplicativos para web é uma das principais demandas do mercado. O Java EE define uma série de componentes para essa área, um deles é o JavaServer Faces (JSF). O JSF é um framework que adota o modelo de arquitetura MVC (Model View Controller), com o objetivo de aumentar a produtividade da construção de interfaces gráficas web baseadas em templates e disponibilizando um conjunto de componentes visuais reutilizáveis. Os componentes visuais do JSF encapsulam a escrita de código HTML, CSS e JavaScript, muitos delessuportam Ajax. Outra caracteristica importante do JSF é permitir o uso de bibliotecas de componentes visuais fornecidas por terceiros, trazendo mais opções de escolha aos desenvolvedores. Esta apresentação descreverá como o JSF pode ser uma tecnologia interessante para o desenvolvimento de aplicações web com Java EE.
TDC Florianópolis 2019. Trilha Java - Arquitetura de TestesSandro Giacomozzi
O documento discute a importância de se construir uma arquitetura de testes para garantir a qualidade e velocidade de entrega de software. Ele apresenta boas práticas de testes como a utilização de frameworks como JUnit, estrutura de pastas e nomenclatura de testes. Além disso, exemplifica testes de unidade, integração e integração com mock utilizando ferramentas como Spring Boot Test, RestAssured e MockServer.
Migração de Banco de Dados - Oracle para MongoDB - TDC2014Jonathan Prates
O documento discute a migração da plataforma de vídeos da Terra Networks de C# e Oracle para Python e MongoDB. Apresenta os desafios enfrentados como sincronizar as bases de dados, manter ou não as mesmas entidades e garantir que os dados sejam iguais, além de tratar de atualizações, ambientes limpos e deploy. Explica como essas questões foram resolvidas utilizando ferramentas como serviços de mensageria, drivers para MongoDB, virtualenv e integração contínua.
TDC2016SP - Desenvolvendo uma linguagem maker inclusiva em Pythontdc-globalcode
O documento discute o desenvolvimento de uma linguagem maker inclusiva em Python chamada Linguagem Fazedores, que visa tornar a programação acessível para todos ensinando conceitos básicos de programação de uma maneira simples e passo a passo por meio de projetos práticos com dispositivos eletrônicos e placas como Intel Edison. A linguagem utiliza o framework Django e recursos básicos de Python como listas, dicionários e try/except para permitir que iniciantes programem dispositivos. Desafios e melhorias futuras também são discut
Introduzindo StimulusJS: o novo Framework JavaScript para Ruby On Rails.Sergio Lima
O documento introduz o framework JavaScript StimulusJS e discute como ele pode ser usado com Ruby on Rails. O palestrante descreve sua experiência usando StimulusJS em artigos e projetos, explica o que é StimulusJS e seus benefícios, como funciona usando o padrão Controller-Target-Action, e demonstra sua implementação em um projeto Rails.
Testes de aceitação automatizados com robotium utilizando a técnica bdd TDC...Rafael Chiavegatto
O documento apresenta uma palestra sobre testes de aceitação automatizados para aplicativos Android utilizando a técnica de desenvolvimento guiado por comportamento (BDD). O palestrante discute a automação de testes com Robotium e a especificação de casos de teste como cenários de funcionalidades usando Cucumber.
Jorge Oleques é um desenvolvedor de software com experiência em PHP e Java. Ele possui graduação em Análise e Desenvolvimento de Sistemas e está cursando pós-graduação em Engenharia de Software. O documento fornece detalhes sobre sua formação acadêmica e experiência profissional, além de contatos como e-mail, Twitter, blog e GitHub.
A apresentação discute a importância da depuração para desenvolvedores, fornecendo um guia rápido em 8 etapas para depuração eficiente e como utilizar as ferramentas de depuração no Visual Studio Code.
Semelhante a Abordagem Funcional para Gerenciamento de Erros em .NET (20)
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.
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
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.
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.
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.
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.
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.
Gestão de dados: sua importância e benefíciosRafael Santos
O gerenciamento de dados abrange todos os aspectos do gerenciamento de dados ao longo de seu ciclo de vida — desde a criação até a exclusão ou arquivamento. Isso inclui atividades como entrada de dados, transformação de dados, armazenamento de dados, gerenciamento de metadados e governança de dados.
Esses tópicos de gerenciamento de dados são extremamente importantes. Pense no gerenciamento de dados como a infraestrutura — a espinha dorsal das organizações — permitindo que você tome decisões acertadas com base em dados confiáveis.
PRATICANDO O SCRUM Scrum team, product owneranpproferick
Scrum: Uma Estrutura Ágil para Projetos Complexos
Scrum é uma estrutura ágil amplamente utilizada para gerenciar e concluir projetos complexos. Sua abordagem iterativa e incremental permite que equipes multifuncionais colaborem de forma eficaz, respondam a mudanças e entreguem produtos de alta qualidade que atendam às necessidades dos clientes.
Princípios Fundamentais do Scrum
Transparência: Todos os aspectos do projeto, incluindo metas, progresso e desafios, são visíveis para todos os membros da equipe e partes interessadas.
Inspeção: O trabalho em andamento é revisado regularmente para identificar desvios do plano e oportunidades de melhoria.
Adaptação: As mudanças necessárias são feitas com base nas informações coletadas durante a inspeção, garantindo que o projeto permaneça no caminho certo.
Papéis no Scrum
Product Owner: Responsável por definir a visão do produto, priorizar as funcionalidades e garantir que o produto entregue valor ao cliente.
Scrum Master: Facilita a implementação do Scrum, remove obstáculos e garante que a equipe siga os princípios e práticas do Scrum.
Equipe de Desenvolvimento: Um grupo multifuncional responsável por entregar um incremento de produto "Pronto" potencialmente utilizável ao final de cada Sprint.
Eventos do Scrum
Sprint: Um período de tempo fixo (normalmente de 1 a 4 semanas) durante o qual um incremento de produto utilizável é criado.
Sprint Planning: Uma reunião no início de cada Sprint para definir as metas da Sprint e planejar o trabalho a ser realizado.
Daily Scrum: Uma breve reunião diária de 15 minutos onde os membros da equipe discutem o progresso, os desafios e o plano para o dia seguinte.
Sprint Review: Uma reunião no final de cada Sprint para apresentar o incremento de produto às partes interessadas e obter feedback.
Sprint Retrospective: Uma reunião após a Sprint Review para que a equipe reflita sobre o processo e identifique oportunidades de melhoria.
Artefatos do Scrum
Product Backlog: Uma lista ordenada de tudo o que é necessário para desenvolver e entregar o produto.
Sprint Backlog: Uma lista de itens do Product Backlog selecionados para serem concluídos durante a Sprint.
Incremento de Produto: Um resultado concreto do trabalho realizado durante a Sprint, que deve ser utilizável e agregar valor ao produto.
Benefícios do Scrum
Maior adaptabilidade a mudanças: O Scrum permite que as equipes respondam rapidamente às mudanças nas necessidades do cliente ou do mercado.
Melhora na qualidade do produto: A ênfase na entrega de incrementos de produto utilizáveis em cada Sprint garante que o produto seja testado e validado regularmente.
Maior satisfação do cliente: O envolvimento do cliente em todo o processo de desenvolvimento garante que o produto final atenda às suas necessidades e expectativas.
Maior produtividade da equipe: O Scrum promove a colaboração, a comunicação e a autonomia da equipe, resultando em maior produtividade e motivação.
Redução de riscos: A abordagem iterativa e incrementa
Teoria de redes de computadores redes .docanpproferick
O documento "Teoria de redes de computadores redes" oferece uma visão abrangente dos princípios e elementos fundamentais das redes de computadores. Começando com uma introdução sobre o que constitui uma rede, seus componentes e mecanismos de comunicação, o texto explora a diversidade de redes existentes, desde as redes pessoais de curto alcance (PAN) até as extensas redes de longa distância (WAN), incluindo redes metropolitanas (MAN) e redes de armazenamento (SAN).
Além disso, o documento aprofunda a análise dos tipos de redes cliente-servidor e ponto a ponto, elucidando suas vantagens e desvantagens em diferentes cenários. A transmissão de dados é outro ponto crucial abordado no texto, que detalha os meios físicos de transmissão, como cabos de par trançado, cabos coaxiais e fibra óptica, além das tecnologias sem fio que permitem a comunicação sem a necessidade de cabos.
O documento também apresenta os principais equipamentos de rede, como repetidores, modems, hubs, switches, roteadores, bridges e gateways, detalhando suas funções e a importância de cada um para o funcionamento eficiente de uma rede. Adicionalmente, o texto introduz o conceito de comutação de pacotes, um mecanismo essencial para a transmissão de dados em redes modernas, que permite que múltiplos usuários compartilhem recursos de rede de forma eficiente.
Em resumo, o documento "Teoria de redes de computadores redes" serve como um guia completo para entender os conceitos básicos e os componentes essenciais das redes de computadores, desde os diferentes tipos de redes até os equipamentos que as compõem e os protocolos que regem a comunicação entre dispositivos.O documento "Teoria de redes de computadores redes" oferece uma visão abrangente dos princípios e elementos fundamentais das redes de computadores. Começando com uma introdução sobre o que constitui uma rede, seus componentes e mecanismos de comunicação, o texto explora a diversidade de redes existentes, desde as redes pessoais de curto alcance (PAN) até as extensas redes de longa distância (WAN), incluindo redes metropolitanas (MAN) e redes de armazenamento (SAN).
Além disso, o documento aprofunda a análise dos tipos de redes cliente-servidor e ponto a ponto, elucidando suas vantagens e desvantagens em diferentes cenários. A transmissão de dados é outro ponto crucial abordado no texto, que detalha os meios físicos de transmissão, como cabos de par trançado, cabos coaxiais e fibra óptica, além das tecnologias sem fio que permitem a comunicação sem a necessidade de cabos.
O documento também apresenta os principais equipamentos de rede, como repetidores, modems, hubs, switches, roteadores, bridges e gateways, detalhando suas funções e a importância de cada um para o funcionamento eficiente de uma rede. Adicionalmente, o texto introduz o conceito de comutação de pacotes, um mecanismo essencial para a transmissão de dados em redes modernas, que permite que múltiplos usuários compartilhem recursos de rede de forma eficiente.
Ferramentas e Técnicas para aplicar no seu dia a dia numa Transformação Digital!Annelise Gripp
Você vai encontrar nessa apresentação ferramentas e técnicas que podem ser usadas em todo o processo de Engenharia de Software ponta a ponta, com seu time.
Como fui de 0 a lead na gringa em 3 anos.pptxtnrlucas
Esse documento conta a história do autor em sua jornada na área de Desenvolvimento de Software e como ele conseguiu chegar numa vaga de liderança numa empresa internacional em um curto período de tempo.
2. Globalcode – Open4education
Mestre em computação aplicada
Microsoft Certified Solutions Associate (MCSA)
Desenvolvedor, Professor e Revisor
Autor dos livros
Gabriel Schade Cardoso
5. Globalcode – Open4education
Problemas comuns
Quem aqui sabe o que é isso?
ArgumentNullException
DomainException
Essa nem existe na linguagem, mas eu já vi TANTO
6. Globalcode – Open4education
Como essas duas coisas estão
conectadas?
Programação funcional é bem diferente de
programação orientada à objetos;
É um paradigma diferente;
7. Globalcode – Open4education
Como essas duas coisas estão
conectadas?
Ao aprender um novo paradigma, você aprende uma
nova forma de ver os problemas.
9. Globalcode – Open4education
Vamos ao problema do null
Ele é um método mentiroso;
A assinatura dele me garante que ele irá retornar um
usuário, mas se o Id for inválido?
11. Globalcode – Open4education
Vamos ao problema do null
O método avisa que talvez ele retorne um usuário;
Mas como isso muda nossa implementação?
12. Globalcode – Open4education
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,
encapsulando qualquer tipo.
14. Globalcode – Open4education
Um container pode ser visto como um envelope ou uma caixa
que circunda um dado, incluindo-o em algum contexto
específico.
Lidamos com este tipo de valor o tempo todo:
List;
Array;
Task;
Nullable.
Value Containers
15. Globalcode – Open4education
Imagine o seguinte cenário: você possui um dado do tipo
inteiro e precisa somá-lo com o valor 3.
Value Containers
17. Globalcode – Open4education
Não podemos realizar a soma com o mesmo valor, isso por
conta do contexto que o cerca.
Por isso, comumente temos uma função para remover o valor
de seu contexto.
Value Containers
19. Globalcode – Open4education
No caso do option utilizamos o pattern matching ao invés do
indexador.
Podemos nos aproveitar deste conceito para criar novos
objetos e classes que armazenam valores sob um determinado
contexto.
Que tal criar um Option para o C#?
Value Containers
20. Globalcode – Open4education
Option<T>
O tipo não pode ser nulo nunca;
Precisamos de um pattern matching;
Não deixaremos o programador acessar a informação, caso ela
esteja no estado inválido;
25. Globalcode – Open4education
Option<T>
O toque final é criar o cast implícito, com isso nem precisamos
criar manualmente o tipo Option.
Dentro da struct Option:
27. Globalcode – Open4education
Option<T>
O toque final é criar o cast implícito, com isso nem precisamos
criar manualmente o tipo Option.
Dentro da struct Option:
28. Globalcode – Open4education
Value Containers
E se precisássemos de validações mais complexas?
Existem mais value containers além do Option!
Either<TLeft, TRight>
...
Vamos refatorar uma funcionalidade que atualiza um usuário
37. Globalcode – Open4education
Atualizando um usuário
Como as exceções não estão sendo tratadas, acabamos
sempre retornando um erro 500.
Este HTTP code não deve ser utilizado para isso, precisamos
retornar um 400 (bad request).
Onde colocar esse tratamento?
41. Globalcode – Open4education
Atualizando um usuário
Precisamos continuar enviando o resultado para frente, mesmo
se algo deu errado, dessa forma não quebramos o fluxo de
código.
Vamos fazer mais um container, dessa vez para representar um
resultado para a continuação de uma operação.
43. Globalcode – Open4education
Atualizando um usuário
Notem que as propriedades de nossa classe só possuem um
método get, ou seja, todas elas são readonly;
Precisamos de construtores!
45. Globalcode – Open4education
Com nosso novo container já é possível retornar um resultado!
Vamos começar adaptando a função Update!
Criando um novo tipo
46. Globalcode – Open4education
Return em dois locais diferentes?
Ainda usamos try-catch?
Existem erros que podem
acontecer no banco;
O usuário pode não existir no
banco;
Criando um novo tipo
52. Globalcode – Open4education
Agora vamos resolver os problemas do método Validate;
Primeiro vamos utilizar a própria linguagem para gerar a lista
de erros:
Criando um novo tipo
60. Globalcode – Open4education
Atualizando um usuário
Parece uma composição!
Só que ruim.
A solução ainda está bem estranha, com vários If’s e
comparações.
E se encapsulássemos isso de uma forma que a composição
faça mais sentido?
61. Globalcode – Open4education
Atualizando um usuário
Vamos criar os métodos Then e Catch;
Eles recebem uma função por parâmetro e retornam uma
estrutura de continuação!
66. Globalcode – Open4education
Atualizando um usuário
Neste ponto você já deve ter percebido que estamos sempre
atualizando o continuation, certo?
Mas como o próprio método já o retorna, podemos utilizar
uma sintaxe encadeada!