Renato Groffe tem mais de 15 anos de experiência em tecnologia e possui diversas certificações. Ele fornece treinamentos sobre testes unitários automatizados, TDD, BDD e mocking tests utilizando ferramentas como Moq e NSubstitute no .NET. Seus links profissionais incluem páginas no Facebook, LinkedIn e um canal sobre .NET.
O documento discute como o Zend Framework pode ser usado com testes automatizados através do PHPUnit. Apresenta os benefícios do desenvolvimento guiado por testes (TDD), explica a estrutura do Zend Framework e como integrá-lo com o PHPUnit para testar models, controllers e helpers. Também recomenda usar um banco de dados SQLite em memória para agilizar os testes.
O documento descreve o padrão de projeto Template Method em Groovy. O Template Method define os passos de um algoritmo e permite que subclasses implementem um ou mais desses passos. O exemplo mostra uma classe abstrata Accumulator com um método accumulate genérico e subclasses Sum e Product que implementam o método doAccumulate de forma diferente.
Django - A sua cápsula de soluções web em pythonPaula Grangeiro
Django é um framework web em Python que facilita o desenvolvimento de aplicações web. Ele inclui recursos como ORM, autenticação, administração e templates para reduzir a complexidade de desenvolvimento. A arquitetura MVT do Django organiza a aplicação em modelos, views e templates.
O documento discute os princípios de automação de testes de software usando o framework CakePHP. Ele descreve onde os testes automatizados são inseridos no processo de desenvolvimento, os tipos de testes suportados pelo CakePHP (unitários, de integração e de aceitação), e conceitos importantes como asserções, fixtures e mocks. Finalmente, aborda as maiores dificuldades na automação de testes, como testar modelos e o uso do CakeAutoTest.
O documento apresenta uma introdução sobre Test-Driven Development (TDD) em três etapas: (1) define TDD e seus princípios fundamentais; (2) discute os benefícios de se usar TDD, como código mais limpo e legível; (3) exemplifica a aplicação de TDD em Python usando o framework Pytest e o problema FizzBuzz.
Django Channels - Aplicações real time com DjangoPaula Grangeiro
Já ouviu falar de Channels? Não? Nesta talk vamos destrinchar um pouco mais dessa feature que permite requisições assíncronas no Django e que é perfeita para o desenvolvimento de aplicações real time.
Django é um framework web Python que segue o padrão MVC. Ele enfatiza reuso, modularidade e produtividade com código limpo e manutenível. Django possui recursos como mapeamento objeto-relacional, URL dispatcher, sistema de views e templates para produzir páginas dinâmicas usando bancos de dados.
Renato Groffe tem mais de 15 anos de experiência em tecnologia e possui diversas certificações. Ele fornece treinamentos sobre testes unitários automatizados, TDD, BDD e mocking tests utilizando ferramentas como Moq e NSubstitute no .NET. Seus links profissionais incluem páginas no Facebook, LinkedIn e um canal sobre .NET.
O documento discute como o Zend Framework pode ser usado com testes automatizados através do PHPUnit. Apresenta os benefícios do desenvolvimento guiado por testes (TDD), explica a estrutura do Zend Framework e como integrá-lo com o PHPUnit para testar models, controllers e helpers. Também recomenda usar um banco de dados SQLite em memória para agilizar os testes.
O documento descreve o padrão de projeto Template Method em Groovy. O Template Method define os passos de um algoritmo e permite que subclasses implementem um ou mais desses passos. O exemplo mostra uma classe abstrata Accumulator com um método accumulate genérico e subclasses Sum e Product que implementam o método doAccumulate de forma diferente.
Django - A sua cápsula de soluções web em pythonPaula Grangeiro
Django é um framework web em Python que facilita o desenvolvimento de aplicações web. Ele inclui recursos como ORM, autenticação, administração e templates para reduzir a complexidade de desenvolvimento. A arquitetura MVT do Django organiza a aplicação em modelos, views e templates.
O documento discute os princípios de automação de testes de software usando o framework CakePHP. Ele descreve onde os testes automatizados são inseridos no processo de desenvolvimento, os tipos de testes suportados pelo CakePHP (unitários, de integração e de aceitação), e conceitos importantes como asserções, fixtures e mocks. Finalmente, aborda as maiores dificuldades na automação de testes, como testar modelos e o uso do CakeAutoTest.
O documento apresenta uma introdução sobre Test-Driven Development (TDD) em três etapas: (1) define TDD e seus princípios fundamentais; (2) discute os benefícios de se usar TDD, como código mais limpo e legível; (3) exemplifica a aplicação de TDD em Python usando o framework Pytest e o problema FizzBuzz.
Django Channels - Aplicações real time com DjangoPaula Grangeiro
Já ouviu falar de Channels? Não? Nesta talk vamos destrinchar um pouco mais dessa feature que permite requisições assíncronas no Django e que é perfeita para o desenvolvimento de aplicações real time.
Django é um framework web Python que segue o padrão MVC. Ele enfatiza reuso, modularidade e produtividade com código limpo e manutenível. Django possui recursos como mapeamento objeto-relacional, URL dispatcher, sistema de views e templates para produzir páginas dinâmicas usando bancos de dados.
Testes unitários como ferramentas de design de códigoPaula Grangeiro
Este documento discute como testes unitários podem ser usados como ferramentas de design de código. Testes unitários ajudam a identificar responsabilidades de classes e reduzir acoplamento. Praticar TDD, manter testes pequenos e isolados, e pensar em fluxos alternativos melhora a coesão e estrutura do código.
Padrões para Desenvolvimento de Software Guiado por TestesEverton Rodrigues
Este documento fornece padrões e técnicas para desenvolvimento de software guiado por testes, incluindo escrever testes primeiro, usar dados de teste realistas, e isolar testes. Os padrões ajudam a responder perguntas como quanto testar e como escolher o que testar.
ABAP Code Retreat Brasil - Apagando tudo e começando novamente: Conhecendo o TDDRaphael Pacheco
O documento introduz o TDD (Test Driven Development), testes unitários e o framework ABAP Unit. Ele define testes unitários como métodos de testar unidades individuais de código, como métodos e módulos, para garantir que funcionem corretamente. O framework xUnit fornece uma solução automatizada para executar testes repetidamente sem precisar reescrevê-los. O TDD sugere escrever testes de unidade antes de escrever o código, para guiar o desenvolvimento.
Testando Aplicações Django: Quando, Como e Onde?Bernardo Fontes
Este documento fornece dicas sobre como testar aplicações Django de forma efetiva. Ele discute a importância de testes e como testar as principais partes de uma aplicação Django, incluindo views, forms e models. Além disso, fornece exemplos de código de teste e sugere ferramentas como o TestClient do Django e o model_mommy para ajudar a escrever bons testes automatizados.
TDD no Community Launch 2010 - Christian CunhaChristian Cunha
O documento discute Test Driven Development (TDD) e fornece detalhes sobre os passos e benefícios dessa técnica de desenvolvimento de software. Explica termos como Sistem Under Test, Dummy, Fake, Stubs e Mocks e fornece um exemplo de como criar um evento com inscrições limitadas usando TDD.
O documento resume as principais informações profissionais e experiência de Renato Groffe na área de tecnologia, incluindo mais de 15 anos de experiência, pós-graduação em engenharia de software, MBA em business intelligence, além de cursos e certificações técnicas. O documento também fornece instruções e links para instalação do Visual Studio 2015 CTP 5 em uma máquina virtual e resume os principais recursos novos do C# 6.0 e do Visual Studio 2015.
Boas práticas com TDD:
1) Crie apenas os testes necessários e evite acrescentar asserts desnecessários.
2) Dê nomes específicos e diretos aos métodos de teste e evite underscore.
3) Entenda a diferença entre objetos e primitivos para usar asserts corretamente.
O documento discute testes automatizados em Django usando UnitTest e Object Factory. Apresenta problemas com fixtures e propõe o Model Mommy como alternativa para popular bancos de dados de teste de forma dinâmica e extensível.
Introdução a testes unitários automatizados com JUnit e NUnitelliando dias
Este documento apresenta exemplos de testes unitários automatizados com JUnit e NUnit para validar uma classe de cálculo matemático. São mostrados testes para métodos positivos e negativos, assim como para exceções. Explica-se a estrutura básica de classes de teste com métodos como setup, teardown e asserts para validar resultados esperados.
O documento apresenta os principais conceitos e práticas do Desenvolvimento Orientado a Testes (TDD). Resume os tópicos da agenda, incluindo introdução ao TDD, tipos de testes, exemplos práticos do processo red-green-refactor, desafios como onde começar e benefícios como design emergente e menor acoplamento.
Testes automatizados de software são essenciais para garantir a qualidade do software e evitar prejuízos. Testes manuais são difíceis, demorados e cobrem poucos casos, enquanto testes automatizados rodam rápido, cobrem muitos casos e ajudam na manutenção do código e documentação. É importante começar a automatizar testes desde o início do projeto, para garantir a testabilidade do código.
O documento resume a trajetória profissional de Thiago Ghisi, desde sua formação inicial em 2003 até 2011, incluindo cursos, certificações e experiências de trabalho com foco em testes automatizados, programação ágil e qualidade de software.
O documento introduz os conceitos de generics na linguagem Java, incluindo: (1) como definir classes genéricas usando parâmetros de tipo entre colchetes; (2) como criar instâncias de classes genéricas especificando o tipo; (3) como definir limites para os tipos de parâmetros.
Mocks, Stubs e Fakes - Developers-SP - Julho-2017Renato Groff
Apresentação sobre o uso de mocks, stubs e objetos fakes na implementação de testes de software. Palestra realizada em 20/07/2017, em meetup promovido pelo grupo Developers-SP na cidade de São Paulo-SP.
Testes unitários como ferramentas de design de códigoPaula Grangeiro
A apresentação discute testes unitários como ferramentas de design de código, mostrando como testes podem ser usados para isolar componentes e validar fluxos de sucesso e falha. Ela também fornece dicas sobre nomear testes de forma descritiva e usar mocks para isolar dependências.
O documento descreve um curso sobre testes automatizados em Python. O curso aborda:
1) Testes unitários, de integração e funcionais com foco nos fundamentos de testes automatizados;
2) A prática do uso de testes automatizados no desenvolvimento guiado por testes (TDD);
3) As vantagens da abordagem TDD no curto e longo prazo e dos testes automatizados no longo prazo.
O documento discute testes automatizados de software, incluindo: (1) os tipos de testes automatizados como unitários, de integração e funcionais; (2) a importância da automação para garantir qualidade e evitar regressões; (3) o método de desenvolvimento guiado por testes (Test-Driven Development).
Aqui são apresentados as técnicas de Desenvolvimento Ágil: eXtreme Programming. Simples e prático.
/**Depois que entrei no mundo Java, começei a procurar por conteúdo na internet para estudar, então me deparei com um ótimo site, http://www.argonavis.com.br, de um grande cara chamado Helder Rocha, que disponibiliza este mesmo conteúdo em seu site também. Obrigado pela ajuda a comunidade.*/
Construção de Frameworks com Annotation e Reflection API em JavaFernando Camargo
Para acessar um método protected de uma superclasse usando reflection, precisamos desabilitar o mecanismo de verificação de visibilidade (acess check) antes de invocar o método. Isso pode ser feito chamando o método setAccessible(true) no objeto Method antes da invocação.
Testes unitários como ferramentas de design de códigoPaula Grangeiro
Este documento discute como testes unitários podem ser usados como ferramentas de design de código. Testes unitários ajudam a identificar responsabilidades de classes e reduzir acoplamento. Praticar TDD, manter testes pequenos e isolados, e pensar em fluxos alternativos melhora a coesão e estrutura do código.
Padrões para Desenvolvimento de Software Guiado por TestesEverton Rodrigues
Este documento fornece padrões e técnicas para desenvolvimento de software guiado por testes, incluindo escrever testes primeiro, usar dados de teste realistas, e isolar testes. Os padrões ajudam a responder perguntas como quanto testar e como escolher o que testar.
ABAP Code Retreat Brasil - Apagando tudo e começando novamente: Conhecendo o TDDRaphael Pacheco
O documento introduz o TDD (Test Driven Development), testes unitários e o framework ABAP Unit. Ele define testes unitários como métodos de testar unidades individuais de código, como métodos e módulos, para garantir que funcionem corretamente. O framework xUnit fornece uma solução automatizada para executar testes repetidamente sem precisar reescrevê-los. O TDD sugere escrever testes de unidade antes de escrever o código, para guiar o desenvolvimento.
Testando Aplicações Django: Quando, Como e Onde?Bernardo Fontes
Este documento fornece dicas sobre como testar aplicações Django de forma efetiva. Ele discute a importância de testes e como testar as principais partes de uma aplicação Django, incluindo views, forms e models. Além disso, fornece exemplos de código de teste e sugere ferramentas como o TestClient do Django e o model_mommy para ajudar a escrever bons testes automatizados.
TDD no Community Launch 2010 - Christian CunhaChristian Cunha
O documento discute Test Driven Development (TDD) e fornece detalhes sobre os passos e benefícios dessa técnica de desenvolvimento de software. Explica termos como Sistem Under Test, Dummy, Fake, Stubs e Mocks e fornece um exemplo de como criar um evento com inscrições limitadas usando TDD.
O documento resume as principais informações profissionais e experiência de Renato Groffe na área de tecnologia, incluindo mais de 15 anos de experiência, pós-graduação em engenharia de software, MBA em business intelligence, além de cursos e certificações técnicas. O documento também fornece instruções e links para instalação do Visual Studio 2015 CTP 5 em uma máquina virtual e resume os principais recursos novos do C# 6.0 e do Visual Studio 2015.
Boas práticas com TDD:
1) Crie apenas os testes necessários e evite acrescentar asserts desnecessários.
2) Dê nomes específicos e diretos aos métodos de teste e evite underscore.
3) Entenda a diferença entre objetos e primitivos para usar asserts corretamente.
O documento discute testes automatizados em Django usando UnitTest e Object Factory. Apresenta problemas com fixtures e propõe o Model Mommy como alternativa para popular bancos de dados de teste de forma dinâmica e extensível.
Introdução a testes unitários automatizados com JUnit e NUnitelliando dias
Este documento apresenta exemplos de testes unitários automatizados com JUnit e NUnit para validar uma classe de cálculo matemático. São mostrados testes para métodos positivos e negativos, assim como para exceções. Explica-se a estrutura básica de classes de teste com métodos como setup, teardown e asserts para validar resultados esperados.
O documento apresenta os principais conceitos e práticas do Desenvolvimento Orientado a Testes (TDD). Resume os tópicos da agenda, incluindo introdução ao TDD, tipos de testes, exemplos práticos do processo red-green-refactor, desafios como onde começar e benefícios como design emergente e menor acoplamento.
Testes automatizados de software são essenciais para garantir a qualidade do software e evitar prejuízos. Testes manuais são difíceis, demorados e cobrem poucos casos, enquanto testes automatizados rodam rápido, cobrem muitos casos e ajudam na manutenção do código e documentação. É importante começar a automatizar testes desde o início do projeto, para garantir a testabilidade do código.
O documento resume a trajetória profissional de Thiago Ghisi, desde sua formação inicial em 2003 até 2011, incluindo cursos, certificações e experiências de trabalho com foco em testes automatizados, programação ágil e qualidade de software.
O documento introduz os conceitos de generics na linguagem Java, incluindo: (1) como definir classes genéricas usando parâmetros de tipo entre colchetes; (2) como criar instâncias de classes genéricas especificando o tipo; (3) como definir limites para os tipos de parâmetros.
Mocks, Stubs e Fakes - Developers-SP - Julho-2017Renato Groff
Apresentação sobre o uso de mocks, stubs e objetos fakes na implementação de testes de software. Palestra realizada em 20/07/2017, em meetup promovido pelo grupo Developers-SP na cidade de São Paulo-SP.
Testes unitários como ferramentas de design de códigoPaula Grangeiro
A apresentação discute testes unitários como ferramentas de design de código, mostrando como testes podem ser usados para isolar componentes e validar fluxos de sucesso e falha. Ela também fornece dicas sobre nomear testes de forma descritiva e usar mocks para isolar dependências.
O documento descreve um curso sobre testes automatizados em Python. O curso aborda:
1) Testes unitários, de integração e funcionais com foco nos fundamentos de testes automatizados;
2) A prática do uso de testes automatizados no desenvolvimento guiado por testes (TDD);
3) As vantagens da abordagem TDD no curto e longo prazo e dos testes automatizados no longo prazo.
O documento discute testes automatizados de software, incluindo: (1) os tipos de testes automatizados como unitários, de integração e funcionais; (2) a importância da automação para garantir qualidade e evitar regressões; (3) o método de desenvolvimento guiado por testes (Test-Driven Development).
Aqui são apresentados as técnicas de Desenvolvimento Ágil: eXtreme Programming. Simples e prático.
/**Depois que entrei no mundo Java, começei a procurar por conteúdo na internet para estudar, então me deparei com um ótimo site, http://www.argonavis.com.br, de um grande cara chamado Helder Rocha, que disponibiliza este mesmo conteúdo em seu site também. Obrigado pela ajuda a comunidade.*/
Construção de Frameworks com Annotation e Reflection API em JavaFernando Camargo
Para acessar um método protected de uma superclasse usando reflection, precisamos desabilitar o mecanismo de verificação de visibilidade (acess check) antes de invocar o método. Isso pode ser feito chamando o método setAccessible(true) no objeto Method antes da invocação.
Este documento apresenta um exemplo de uso de padrões J2EE em uma arquitetura de sistema de auto-escola, descrevendo quatro padrões (Intercepting Filter, Business Delegate, Session Facade e Data Access Objects) e como eles são aplicados nas camadas de apresentação, negócio e integração de acordo com as boas práticas J2EE Blueprints.
O documento discute refatoração de código. Refatoração é o processo de modificar um sistema de software para melhorar a estrutura interna do código sem alterar seu comportamento externo. O documento descreve vários tipos de problemas de código ("mau cheiro") que podem ser resolvidos através de refatorações como extrair métodos, remover duplicação de código e consolidar hierarquias de classes.
O documento resume os principais hooks do React como useState, useEffect e useContext, explicando como eles permitem criar componentes funcionais sem classes. Os hooks evitam problemas comuns em componentes de classe como lógica duplicada e callback hell.
Test-Driven Development (TDD) utilizando o framework xUnit.netRenato Groff
Tópicos abordados:
- Motivos que contribuem para a falta de testes
- Quais os impactos da falta de testes?
- Visão geral dos diferentes tipos de testes na área de software
- Testes unitários e a plataforma .NET
- TDD: conceitos gerais
- Implementação de um exemplo prático
- Data-Driven Unit Testing
- Testes unitários e o Visual Studio 2015
O documento descreve conceitos de programação concorrente em Java, incluindo:
1) Como usar a palavra-chave "synchronized" para sincronizar o acesso a métodos e blocos de código compartilhados por múltiplas threads.
2) Um exemplo de aplicativo bancário que demonstra o uso de "synchronized" para evitar inconsistências de dados.
3) Como sincronizar o acesso a atributos independentes dentro de uma classe usando objetos separados para cada atributo.
1) O documento apresenta os detalhes de uma aula sobre programação orientada a objetos com Java, incluindo avaliação, conteúdo da prova e agenda.
2) A agenda inclui tópicos como operador ternário, enums, varargs, autoboxing/unboxing, definindo e sobrecarregando construtores e uso do método this.
3) Exemplos de código são fornecidos para ilustrar esses tópicos.
Apresentação sobre BDD (Behavior-Driven Development) realizada em 20/05/2015.
Tópicos abordados:
- Cenários comuns dentro do desenvolvimento de software
- Test-Driven Development (TDD): uma visão geral
- Testes Unitários no Visual Studio: um exemplo simples
- Behavior-Driven Development (BDD)
- BDD na plataforma .NET
Apresentação sobre BDD (Behavior-Driven Development) realizada em 06/09/2015.
Tópicos abordados:
- Cenários comuns dentro do desenvolvimento de software
- Test-Driven Development (TDD): uma visão geral
- Testes Unitários no Visual Studio: um exemplo simples
- Behavior-Driven Development (BDD)
- BDD na plataforma .NET
- Exemplo prático no Visual Studio 2015
Refatoração refere-se à reestruturação do código-fonte de um software sem alterar seu comportamento externo, visando melhorar aspectos como legibilidade, manutenibilidade e design. O documento descreve os princípios e origens da refatoração, exemplos de técnicas como renomear variáveis e extrair métodos, além de discutir vantagens como redução de duplicação e aumento da simplicidade do código.
O documento descreve o Princípio Aberto/Fechado (OCP), que estabelece que entidades devem poder ser estendidas sem serem modificadas. O OCP encoraja adicionar novo código ao invés de modificar o existente, facilitando a manutenção. Ele é aplicado usando classes abstratas e subclasses concretas, permitindo estender o comportamento sem alterar o código original.
1) O documento discute técnicas de reutilização de código em Java, como composição e herança.
2) A herança permite criar novas classes estendendo classes existentes, heradando atributos e métodos.
3) O polimorfismo separa o que é feito do como é feito, definindo métodos com mesmo nome em classes diferentes.
O documento descreve três padrões de projeto criacionais: Factory Method, Abstract Factory e Prototype. Factory Method fornece uma interface para criar objetos em uma superclasse, permitindo que subclasses alterem o tipo de objetos criados. Abstract Factory permite produzir famílias de objetos relacionados sem especificar classes concretas. Prototype permite copiar objetos existentes sem depender de suas classes.
O documento discute técnicas para trabalhar com código legado, como usar interfaces ao invés de classes concretas para melhorar o design, polimorfismo e testes. Ele também apresenta ferramentas como "Extract Interface" para extrair interfaces de classes existentes e melhorar o modelo de código.
Gerenciando aspectos e eventos com Zend Framework 2Flávio Lisboa
O objetivo desta palestra é apresentar o componente Zend_EventManager, que manipula tanto programação assíncrona quanto preocupações transversais em uma aplicação de uma forma coesa. Será apresentado um resumo sobre as abordagens de Aspectos, Filtros deInterceptação, Signal Slots e finalmente Eventos, para então mostrar a arquitetura e as funcionalidades do Zend_EventManager.
O documento apresenta boas práticas de programação defensiva em Java, como: documentar o código, seguir convenções de nomes, tratar erros com exceções, usar asserções para validar entradas, liberar recursos alocados, dividir métodos com muitos parâmetros e testar o código. Também discute sobre precisão versus robustez e como depurar erros no código.
Test-Driven Development - Introdução ao método de construção de software guia...Thiago Faria de Andrade
O documento resume uma palestra sobre Test Driven Development (TDD). Aborda o que é TDD, seus benefícios e padrões, como escrever testes e refatorar código mantendo os testes verdes. O objetivo é ensinar como aplicar TDD de forma efetiva para construir software de qualidade.
Descrição das técnicas de refatoração de código. Material de apoio à disciplina SI405, Análise de Sistemas de Informação 2, da Faculdade de Tecnologia da UNICAMP.
O documento discute o uso da Web Semântica em aplicações de saúde. Primeiramente, apresenta os conceitos da Web Semântica e suas tecnologias como RDF, OWL e SPARQL. Em seguida, aborda os conceitos de saúde e informática em saúde. Por fim, exemplifica possíveis aplicações da Web Semântica na integração e compartilhamento de informações em saúde.
Slides do minicurso oferecido na VII Tecnologia em Foco, na Faculdade de Tecnologia da Universidade Estadual de Campinas (FT-UNICAMP), em setembro de 2016
O documento discute os principais autores e conceitos da linguagem de modelagem unificada (UML), incluindo visões de implementação, descrições textuais e diagramas UML.
Uma breve revisão dos conceitos fundamentais de Java e de JUnit que serão necessários para a execução das atividades práticas de SI405 - Análise de Sistemas de Informação II, disciplina dos Cursos de Informática da Faculdade de Tecnologia da UNICAMP
C++: biblioteca padrão de templates - Parte 1Ivan Ricarte
O documento descreve as funcionalidades da classe string em C++, incluindo seus construtores, métodos para contar caracteres, verificar se está vazia, obter substrings e caracteres individuais. Também menciona vetores de inteiros e datas, além de iteradores e a declaração automática de tipo com "auto".
O documento descreve a alocação dinâmica de memória para objetos e a remoção de objetos sem liberar a memória alocada, o que pode causar vazamento de memória.
1. O documento discute os padrões de projeto de software, que são soluções reutilizáveis para problemas comuns em projeto de software. 2. São apresentados 23 padrões, como Adapter, Composite, Observer e Strategy, explicando suas intenções e como resolvem problemas de projeto. 3. Também discute conceitos importantes como herança, composição, acoplamento e encapsulamento que os padrões ajudam a aplicar.
This document contains C++ operators including arithmetic, assignment, comparison, logical, bitwise, increment/decrement, member access, new/delete, and other syntax symbols used in C++ such as brackets, parentheses and commas. It lists single-character operators like + - * / as well as multi-character operators like += -= and new delete.
Material complementar de SI405 - Análise de Sistemas de Informação II, da FT-UNICAMP, com uma revisão de como os modelos UML são refletidos no código orientado a objetos.
Princípios da organização de código fonte C++Ivan Ricarte
Este documento descreve os conceitos básicos de programação em C++, incluindo atributos, operações, cabeçalhos, declaração e definição de métodos. Ele também discute como salvar, compilar e executar arquivos C++.
Problemas no desenvolvimento do softwareIvan Ricarte
Apresenta a síndrome do "não foi feito", onde as pessoas culpam os outros por seus próprios erros ou falta de progresso, e argumenta que devemos manter as coisas simples e focar em entregar valor regularmente.
Aula 01 - As linguagens do software (2015)Ivan Ricarte
This document provides references to resources about engineering processes like reverse engineering, reengineering, and unified modeling language (UML) diagrams. It lists authors like Booch, Rumbaugh, Coad and Yourdon who have contributed to these fields. It also includes links to online tutorials and documentation about UML diagrams, agile modeling, C++, and the Java tutorial.
SI300 - Apoio a atividades práticas em C++ (01)Ivan Ricarte
This document provides a timeline of the C and C++ programming languages from 1967 to present day. It shows the evolution from BCPL to K&R C to the addition of classes in C++. It also lists some key differences in keywords between classic C and modern C++. Finally, it provides three tips for learning C++, including not to panic, not needing to know all details, and focusing on techniques over features.
O Projeto Evid@SP - Disseminação de evidências a profissionais da saúdeIvan Ricarte
Apresentação do Projeto Evid@SP - Impacto das informações disponibilizadas no portal Saúde Baseada em Evidências na prática clínica dos profissionais de saúde do Estado de São Paulo, realizada em 15 de outubro de 2014, na reunião do Marco Zero do Projeto PPSUS/FAPESP, no Instituto da Saúde, em São Paulo (SP)
Um novo paradigma para o ensino de ponteiros frente à evolução de C++Ivan Ricarte
Ponteiros existem nas linguagens de programação de alto nível há 50 anos, mas ainda são uma das principais fontes de problemas no desenvolvimento de software. A versão mais recente de C++, C++11, introduz novas classes que implementam ponteiros inteligentes (smart pointers) e que permitem o desenvolvimento de software mais seguro e robusto. No entanto, os principais cursos de graduação que optam por C++ ainda adotam a abordagem de ensinar ponteiros na tradição da linguagem C, causa dos muitos problemas citados. Nesta apresentação, ilustramos as causas desses problemas, introduzimos o conceito de ponteiros inteligentes e suas implementações em C++11, unique_ptr e shared_ptr, e propomos uma nova maneira de abordar o assunto em nossos cursos de graduação.
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
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
38. Quando for necessário alterar o código e ele não está estruturado de modo
adequado para receber essa modificação, primeiro refatore o programa para
tornar a modificação mais fácil de ser realizada, e então faça a modificação.
39. Método muito longo!
• Ter mais métodos curtos
é uma opção melhor
Mais claro
Mais gerenciável
40. Quando você tem um fragmento de código que pode ser manipulado como um grupo:
Transforme o fragmento em um método cujo nome explique o propósito do método
https://refactoring.guru/extract-method
50. Quando um método usa mais características de outra classe que da classe na
qual ele está alocado:
Crie um novo método com corpo similar na classe que ele mais usa.
Transforme o método original em uma delegação ou, se for o caso, remova-o.
https://refactoring.guru/move-method
69. Você tem uma variável temporária que recebe um valor uma vez a partir
de uma expressão simples e a variável temporária pode atrapalhar a
aplicação de outras refatorações:
Troque todas as referências à variável temporária pela expressão.
https://refactoring.guru/inline-temp
70.
71. Verificar que atribuição é a única:
Substituir usos da variável pelo lado direito da atribuição:
E testar...
77. Você está usando uma variável temporária para manter o resultado de
uma expressão:
Extraia a expressão para um método. Substitua todas as referências
para a variável temporária pelo novo método. O novo método poderá
então ser utilizado em outros métodos
https://refactoring.guru/replace-temp-with-query
94. Você tem um código de tipo que afeta o comportamento de uma
classe, mas você não pode usar herança diretamente:
Substitua o código de tipo com um objeto de estado
https://refactoring.guru/replace-type-code-with-state-strategy
95.
96. Você está acessando um atributo diretamente, mas o forte
acoplamento em relação a esse atributo está se tornando problemático:
Crie métodos get...() e set...() para esse atributo e use apenas esses
métodos para acessar o atributo
https://refactoring.guru/self-encapsulate-field