O documento discute técnicas para lidar com código duplicado, incluindo identificar código duplicado usando ferramentas, extrair métodos e classes para remover duplicação, e aplicar padrões de projeto como Template Method. O objetivo é melhorar a manutenção reduzindo duplicação de código.
Lidando com Código Duplicado - PHP Conference Brasil 2013Evaldo Junior
O documento discute o problema do código duplicado em programação e apresenta técnicas para identificar e corrigir a duplicação, como usar bibliotecas de funções, extrair métodos, extrair classes, mover campos e usar padrões de projeto como Template Method.
O documento discute funções do PHP relacionadas a strings e arrays. Na seção de strings, explica funções como strlen, strpos, str_replace, trim e outras. Na seção de arrays, explica como imprimir, adicionar, remover e ordenar elementos de arrays, e funções como count, array_map e array_search.
1) O documento descreve uma conferência chamada TestFest para aumentar a cobertura de testes do código do interpretador PHP através da escrita de testes.
2) Os participantes aprenderão juntos e terão a oportunidade de contribuir para o projeto PHP.
3) O documento fornece diretrizes para escrever testes PHPT, como nomear arquivos de teste e estruturar seções de teste, arquivo e resultado esperado.
Este documento resume uma apresentação sobre testes de unidade no PHP. Ele explica o que é um TestFest, como escrever testes de unidade no PHP usando arquivos .phpt e como rodar os testes. Também fornece exemplos de nomes, estruturas e casos especiais de testes para ilustrar diferentes funcionalidades e cenários.
1) O documento apresenta uma introdução ao PHP, abordando tópicos como: sintaxe básica, comandos de saída, variáveis, tipos, arrays, laços e desvios condicionais;
2) São apresentados exemplos de código PHP para explicar cada um dos tópicos, como exibir "Olá Mundo", usar variáveis e funções built-in;
3) O documento fornece uma visão geral dos principais conceitos da linguagem PHP para iniciantes.
O shell é o prompt da linha de comando do Unix e do Linux, que recebe e executa comandos digitados pelo usuário. Na linha de comando, podemos utilizar diversos comandos um após o outro. Se colocarmos diversas linhas de comandos em um arquivo texto, teremos um script em shell ou, um Shell Script. Além de comandos, um Shell Script pode conter todas as estruturas de uma linguagem de programação, como if, for, while, variáveis e funções.
Nesse minicurso veremos como automatizar tarefas usando Shell Script e conheceremos um pouco mais sobre alguns dos comandos mais úteis para serem utilizados tanto nos scripts quanto diretamente pela linha de comando.
Lidando com Código Duplicado - PHP Conference Brasil 2013Evaldo Junior
O documento discute o problema do código duplicado em programação e apresenta técnicas para identificar e corrigir a duplicação, como usar bibliotecas de funções, extrair métodos, extrair classes, mover campos e usar padrões de projeto como Template Method.
O documento discute funções do PHP relacionadas a strings e arrays. Na seção de strings, explica funções como strlen, strpos, str_replace, trim e outras. Na seção de arrays, explica como imprimir, adicionar, remover e ordenar elementos de arrays, e funções como count, array_map e array_search.
1) O documento descreve uma conferência chamada TestFest para aumentar a cobertura de testes do código do interpretador PHP através da escrita de testes.
2) Os participantes aprenderão juntos e terão a oportunidade de contribuir para o projeto PHP.
3) O documento fornece diretrizes para escrever testes PHPT, como nomear arquivos de teste e estruturar seções de teste, arquivo e resultado esperado.
Este documento resume uma apresentação sobre testes de unidade no PHP. Ele explica o que é um TestFest, como escrever testes de unidade no PHP usando arquivos .phpt e como rodar os testes. Também fornece exemplos de nomes, estruturas e casos especiais de testes para ilustrar diferentes funcionalidades e cenários.
1) O documento apresenta uma introdução ao PHP, abordando tópicos como: sintaxe básica, comandos de saída, variáveis, tipos, arrays, laços e desvios condicionais;
2) São apresentados exemplos de código PHP para explicar cada um dos tópicos, como exibir "Olá Mundo", usar variáveis e funções built-in;
3) O documento fornece uma visão geral dos principais conceitos da linguagem PHP para iniciantes.
O shell é o prompt da linha de comando do Unix e do Linux, que recebe e executa comandos digitados pelo usuário. Na linha de comando, podemos utilizar diversos comandos um após o outro. Se colocarmos diversas linhas de comandos em um arquivo texto, teremos um script em shell ou, um Shell Script. Além de comandos, um Shell Script pode conter todas as estruturas de uma linguagem de programação, como if, for, while, variáveis e funções.
Nesse minicurso veremos como automatizar tarefas usando Shell Script e conheceremos um pouco mais sobre alguns dos comandos mais úteis para serem utilizados tanto nos scripts quanto diretamente pela linha de comando.
Algoritmos e Estrutura de Dados - Aula 04thomasdacosta
O documento discute recursão, definindo-a como quando uma função invoca a si mesma para resolver um problema em uma instância menor. Ele fornece detalhes adicionais sobre recursão e mostra exemplos de funções recursivas para calcular fatorial e potenciação. Finalmente, apresenta exercícios sobre encontrar o valor máximo de um vetor e efetuar a soma de um vetor recursivamente.
Este documento fornece uma introdução ao Shell Script, explicando o que é Shell e script, como criar e executar scripts, utilizando variáveis, expressões, estruturas de controle como if/else, for, case e funções. Também aborda autocompletar, alias, variáveis de ambiente e exemplos práticos.
O documento descreve um minicurso sobre desenvolvimento de aplicações em Shell Script com interface gráfica interativa utilizando a ferramenta Dialog. O minicurso aborda conceitos básicos de Shell Script e Dialog, além de apresentar exemplos práticos de uso da Dialog para construção de interfaces gráficas em Shell Script.
O documento fornece vários truques e dicas para o uso de comandos de linha de comando como grep, sed, find e shell script. Ele explica como navegar e editar arquivos de forma eficiente, monitorar processos, pesquisar arquivos e manipular streams de dados entre comandos.
Algoritmos e Técnicas de Programação - Aula 04thomasdacosta
O documento apresenta uma aula sobre estruturas de controle em programação, incluindo condicionais como if-else e switch, além de laços como while, do-while e for. O professor Thomás da Costa discute essas estruturas e fornece exemplos de código em C para ilustrar seu uso.
O documento apresenta um curso gratuito de Shell Script do básico ao intermediário ministrado por Wanderlei Silva do Carmo. A agenda inclui tópicos como histórico do Shell, variáveis, estruturas condicionais e de repetição, operadores aritméticos e redirecionamento de entrada e saída. O curso visa compartilhar conhecimento sobre a linguagem Shell Script e seu amplo uso em ambientes Unix.
Este documento resume uma apresentação sobre testes de software no PHP. Ele explica como realizar testes de unidade no PHP usando arquivos PHPT e como contribuir com testes para o interpretador PHP.
- O documento discute o conceito de sincronização em programação concorrente, onde threads compartilham informações.
- Sem sincronização, valores compartilhados podem ser computados incorretamente. A palavra-chave "synchronized" garante que threads esperem umas às outras para acessar dados compartilhados.
- Dois exemplos são apresentados: contagem de um contador e depósitos em uma conta corrente, mostrando resultados corretos ao usar "synchronized".
1) A palestra apresenta a técnica AJAX, como funciona o objeto XMLHttpRequest e onde deve ser usada.
2) São demonstradas duas práticas de programação AJAX: desenvolvimento manual e usando a biblioteca XAJAX.
3) Outras soluções como JSON, bibliotecas JavaScript e PHP são discutidas.
PHP foi desenvolvido em 1994 como Personal Home Page e veio substituir scripts em Perl. Hoje é conhecido como Hypertext Preprocessor e possui várias engines como Zend, Roadsend e Quercus. É amplamente utilizado em sites como SAPO e no mundo, sendo uma linguagem fácil de aprender e desenvolver para a web, suportada em múltiplas plataformas. Apresenta dicas sobre performance, segurança, depuração e boas práticas para desenvolvimento em PHP.
O documento fornece instruções para criar um shell script em 5 passos: 1) escolher um nome, 2) definir o diretório, 3) criar o arquivo e adicionar comandos, 4) definir o shell na primeira linha, 5) tornar o script executável. Ele também discute melhorar a saída, interagir com o usuário, usar variáveis e expressões aritméticas.
O documento fornece uma introdução sobre Shell Script, descrevendo os principais tipos de shell, a anatomia de uma linha de comando, atribuição de variáveis, comandos, redirecionamentos e controle de fluxo com if/else e loops.
O documento discute as limitações de gerar relatórios no PHP e apresenta o JasperReports como uma solução. Ele explica como instalar o JasperReports e usar classes Java no PHP através do JavaBridge, e fornece um exemplo de código PHP que gera um relatório PDF usando dados do banco de dados e parâmetros passados através do JasperReports.
O documento apresenta uma introdução sobre PHP, incluindo sua história, sintaxe básica, variáveis, arrays, estruturas de controle, formulários, métodos GET e POST, includes, cookies, sessões e envio de email. É apresentado um exemplo completo de um sistema de login utilizando sessões em PHP.
Este documento apresenta o conceito de pilhas, descrevendo-as como uma estrutura de dados do tipo LIFO onde o último elemento inserido é o primeiro a ser removido. Explica como funcionam as operações básicas de inserção e remoção de elementos em uma pilha utilizando uma lista encadeada e fornece exemplos de onde as pilhas são usadas.
O documento discute shell scripts no Linux. Ele apresenta uma introdução aos shells e scripts, como criar e executar scripts simples, usar variáveis e comandos dentro de scripts, e estruturas de controle como if/else e loops. O documento também fornece exemplos passo a passo e exercícios para praticar shell scripting.
1. O documento discute e faz propaganda de vários frameworks PHP, comparando suas funcionalidades.
2. É enfatizado que o Zend Framework é o melhor, mais completo e usado por profissionais.
3. No final, o leitor é encorajado a escolher um framework e começar a usá-lo, sugerindo fortemente que o Zend Framework seja a escolha.
Documentar seu código é importante para facilitar a compreensão e manutenção do código por outros desenvolvedores no futuro. A documentação deve descrever o comportamento do código de forma clara e concisa, sem detalhes de implementação, e incluir parâmetros, retornos e referências. Boas práticas como Readme Driven Development envolvem escrever a documentação antes do código.
O documento resume algumas funcionalidades pouco conhecidas do Java, como inicialização de mapas usando classes internas anônimas, métodos que retornam subclasses, e o uso de exceções não checadas.
Este documento no contiene información comprensible. Consiste principalmente en símbolos y letras sin sentido. No es posible resumirlo en menos de 3 oraciones debido a la falta de contenido legible.
The document is a date, Bodhiradh LY 05-11-2011. In 3 sentences or less: This document provides a date, Bodhiradh LY 05-11-2011, which likely refers to a person named Bodhiradh and includes their initials followed by a date from May 11, 2011. The minimal information present in the document is this date reference.
Algoritmos e Estrutura de Dados - Aula 04thomasdacosta
O documento discute recursão, definindo-a como quando uma função invoca a si mesma para resolver um problema em uma instância menor. Ele fornece detalhes adicionais sobre recursão e mostra exemplos de funções recursivas para calcular fatorial e potenciação. Finalmente, apresenta exercícios sobre encontrar o valor máximo de um vetor e efetuar a soma de um vetor recursivamente.
Este documento fornece uma introdução ao Shell Script, explicando o que é Shell e script, como criar e executar scripts, utilizando variáveis, expressões, estruturas de controle como if/else, for, case e funções. Também aborda autocompletar, alias, variáveis de ambiente e exemplos práticos.
O documento descreve um minicurso sobre desenvolvimento de aplicações em Shell Script com interface gráfica interativa utilizando a ferramenta Dialog. O minicurso aborda conceitos básicos de Shell Script e Dialog, além de apresentar exemplos práticos de uso da Dialog para construção de interfaces gráficas em Shell Script.
O documento fornece vários truques e dicas para o uso de comandos de linha de comando como grep, sed, find e shell script. Ele explica como navegar e editar arquivos de forma eficiente, monitorar processos, pesquisar arquivos e manipular streams de dados entre comandos.
Algoritmos e Técnicas de Programação - Aula 04thomasdacosta
O documento apresenta uma aula sobre estruturas de controle em programação, incluindo condicionais como if-else e switch, além de laços como while, do-while e for. O professor Thomás da Costa discute essas estruturas e fornece exemplos de código em C para ilustrar seu uso.
O documento apresenta um curso gratuito de Shell Script do básico ao intermediário ministrado por Wanderlei Silva do Carmo. A agenda inclui tópicos como histórico do Shell, variáveis, estruturas condicionais e de repetição, operadores aritméticos e redirecionamento de entrada e saída. O curso visa compartilhar conhecimento sobre a linguagem Shell Script e seu amplo uso em ambientes Unix.
Este documento resume uma apresentação sobre testes de software no PHP. Ele explica como realizar testes de unidade no PHP usando arquivos PHPT e como contribuir com testes para o interpretador PHP.
- O documento discute o conceito de sincronização em programação concorrente, onde threads compartilham informações.
- Sem sincronização, valores compartilhados podem ser computados incorretamente. A palavra-chave "synchronized" garante que threads esperem umas às outras para acessar dados compartilhados.
- Dois exemplos são apresentados: contagem de um contador e depósitos em uma conta corrente, mostrando resultados corretos ao usar "synchronized".
1) A palestra apresenta a técnica AJAX, como funciona o objeto XMLHttpRequest e onde deve ser usada.
2) São demonstradas duas práticas de programação AJAX: desenvolvimento manual e usando a biblioteca XAJAX.
3) Outras soluções como JSON, bibliotecas JavaScript e PHP são discutidas.
PHP foi desenvolvido em 1994 como Personal Home Page e veio substituir scripts em Perl. Hoje é conhecido como Hypertext Preprocessor e possui várias engines como Zend, Roadsend e Quercus. É amplamente utilizado em sites como SAPO e no mundo, sendo uma linguagem fácil de aprender e desenvolver para a web, suportada em múltiplas plataformas. Apresenta dicas sobre performance, segurança, depuração e boas práticas para desenvolvimento em PHP.
O documento fornece instruções para criar um shell script em 5 passos: 1) escolher um nome, 2) definir o diretório, 3) criar o arquivo e adicionar comandos, 4) definir o shell na primeira linha, 5) tornar o script executável. Ele também discute melhorar a saída, interagir com o usuário, usar variáveis e expressões aritméticas.
O documento fornece uma introdução sobre Shell Script, descrevendo os principais tipos de shell, a anatomia de uma linha de comando, atribuição de variáveis, comandos, redirecionamentos e controle de fluxo com if/else e loops.
O documento discute as limitações de gerar relatórios no PHP e apresenta o JasperReports como uma solução. Ele explica como instalar o JasperReports e usar classes Java no PHP através do JavaBridge, e fornece um exemplo de código PHP que gera um relatório PDF usando dados do banco de dados e parâmetros passados através do JasperReports.
O documento apresenta uma introdução sobre PHP, incluindo sua história, sintaxe básica, variáveis, arrays, estruturas de controle, formulários, métodos GET e POST, includes, cookies, sessões e envio de email. É apresentado um exemplo completo de um sistema de login utilizando sessões em PHP.
Este documento apresenta o conceito de pilhas, descrevendo-as como uma estrutura de dados do tipo LIFO onde o último elemento inserido é o primeiro a ser removido. Explica como funcionam as operações básicas de inserção e remoção de elementos em uma pilha utilizando uma lista encadeada e fornece exemplos de onde as pilhas são usadas.
O documento discute shell scripts no Linux. Ele apresenta uma introdução aos shells e scripts, como criar e executar scripts simples, usar variáveis e comandos dentro de scripts, e estruturas de controle como if/else e loops. O documento também fornece exemplos passo a passo e exercícios para praticar shell scripting.
1. O documento discute e faz propaganda de vários frameworks PHP, comparando suas funcionalidades.
2. É enfatizado que o Zend Framework é o melhor, mais completo e usado por profissionais.
3. No final, o leitor é encorajado a escolher um framework e começar a usá-lo, sugerindo fortemente que o Zend Framework seja a escolha.
Documentar seu código é importante para facilitar a compreensão e manutenção do código por outros desenvolvedores no futuro. A documentação deve descrever o comportamento do código de forma clara e concisa, sem detalhes de implementação, e incluir parâmetros, retornos e referências. Boas práticas como Readme Driven Development envolvem escrever a documentação antes do código.
O documento resume algumas funcionalidades pouco conhecidas do Java, como inicialização de mapas usando classes internas anônimas, métodos que retornam subclasses, e o uso de exceções não checadas.
Este documento no contiene información comprensible. Consiste principalmente en símbolos y letras sin sentido. No es posible resumirlo en menos de 3 oraciones debido a la falta de contenido legible.
The document is a date, Bodhiradh LY 05-11-2011. In 3 sentences or less: This document provides a date, Bodhiradh LY 05-11-2011, which likely refers to a person named Bodhiradh and includes their initials followed by a date from May 11, 2011. The minimal information present in the document is this date reference.
This document discusses potential ideas and settings for a story called "Back Seat". It mentions being inspired by the twist ending of another story, and liking the setting of "Goodbye Mr. Snuggles". It also describes a possible plot where a man ignores others in need of help and faces similar circumstances himself. Locations like an alleyway and street are mentioned as possible settings that could work for the story.
Yann Arthus-Bertrand is a French photographer, journalist, and environmentalist who founded an aerial photography agency in 1991. In 1994, he started a study for UNESCO on the state of the Earth, taking aerial photographs of landscapes from helicopters and hot air balloons in over 100 countries. The resulting book, Earth from Above, sold over 3 million copies and was translated into 24 languages. In 2000, his free exhibition of photographs from the project displayed on posters in Paris was visited by 120 million people as it traveled to 110 cities worldwide.
Determinacion de contenido de vitamina c en pimiento verde y rojo y amarillomodeltop
Este documento presenta los resultados de un experimento para determinar el contenido de vitamina C en pimientos verdes, rojos y amarillos. Se construyeron curvas de calibración para cada color de pimiento usando soluciones patrón de vitamina C. Se encontró que el contenido de vitamina C fue de 165,3 mg/100g para el pimiento verde, 209,043 mg/100g para el rojo y 234,3 mg/100g para el amarillo.
Dokumen tersebut membahas rencana pemerintah untuk membatasi subsidi BBM secara bertahap untuk mengurangi beban anggaran negara dan menargetkan subsidi kepada masyarakat miskin, serta perlu dukungan fasilitas angkutan umum dan penyesuaian untuk pedagang.
The document summarizes key elements from the beginning of the film I Robot. It introduces the main characters, including the policeman and a robot. It establishes the science fiction genre and introduces the three laws of robotics. It also describes the tense music and sound effects that set the scene and introduce a sense of danger and mystery at the start of the film.
Ron Mueck is an Australian sculptor born in 1958 who lives in Great Britain and creates hyperrealistic sculptures using silicone, acrylic, and fiberglass. His sculptures not only imitate reality but also convey emotions, featuring impressive proportions and meticulous details that give his works an imposing presence through hyperrealism.
This document summarizes the intended audience for a romantic comedy film. The audience would be young single women aged 20-30 who enjoy films that are funny, romantic, and relatable. They seek an escape from busy work lives and loneliness through films that feature themes of food, love, and comedy. Images used to market the film would depict a young single female viewer engaging with the film after a long day.
The Pullman Versailles hotel has received bad reviews on Tripadvisor about outdated rooms, air conditioning, and design. The general manager has not adequately addressed these complaints. To improve its reputation, the hotel should develop a customer service training program, renovate outdated rooms and air conditioning, respond faster to online reviews, launch a marketing campaign about renovations, and improve social media presence to build positive reputation.
This document discusses six marketing channels - Google search, a hotel members website link, a mobile website, social media, a YouTube channel, and a design hotels video page - that a company used to collect local stories, celebrate individuality, and provide inspiration for purchasing and engagement.
Este documento fornece técnicas e dicas para desenvolvimento em PHP sem o uso de "Programação Orientada a Gambiarras" (POG). Ele discute o que é POG, exemplos comuns, causas e ferramentas para evitá-la, incluindo técnicas de programação inspiradas por Chuck Norris.
O documento discute a importância de se utilizar padrões de código em Python. Ele apresenta os princípios do PEP 8, que define como o código Python deve ser formatado, e o Zen of Python, que resume princípios como legibilidade, simplicidade e explicitar a intenção. Ao seguir padrões, o código fica mais limpo e de fácil manutenção, evitando problemas futuros.
Este documento fornece uma introdução básica à segurança em PHP, discutindo tópicos como configuração de error_reporting, casting de variáveis, inclusão de arquivos, SQL injection, XSS e sessões/cookies. Ele também fornece dicas como criptografar senhas, armazenar arquivos de senha fora do diretório web e impedir o acesso direto a arquivos.
Pog Nunca Mais - Técnicas e Macetes para o Desenvolvimento em PHPPaulino Michelazzo
O documento discute técnicas e estratégias para evitar a "Programação Orientada a Gambiarras" (POG) no desenvolvimento de sistemas PHP. Ele aborda o que é POG, exemplos comuns, causas, ferramentas para depuração de código como xDebug e FirePHP, e dicas como usar metodologias de projeto e ter cuidado com clientes problemáticos.
O documento discute técnicas e boas práticas para lidar com código legado, como versionamento, testes, organização do código e programação orientada a objetos. Algumas das técnicas discutidas incluem utilizar ferramentas como Git para versionamento, Composer para gerenciamento de pacotes, PHPUnit e SimpleTest para testes, EditorConfig para padronização de estilos e CodeSniffer para análises estáticas. O documento também apresenta a técnica de "Programação Calistênica" para melhorar o design do código.
O documento discute estratégias para otimização e escalabilidade de aplicações web, incluindo dicas para código eficiente, uso de caches, bancos de dados distribuídos e computação em nuvem.
Slides da palestra ministrada no 4º E-TIC do Instituto Federal de Camboriu.
Escrever código com baixa qualidade, de forma ilegível e confusa pode até funcionar!Tais atitudes,conscientes ou não, resultam na contração de uma dívida que cobra juros altos,perda de produtividade.
Serão abordados tópicos relacionados principalmente a responsabilidade e profissionalismo no desenvolvimento de software. Pontos importantes como motivação, qualidade de código, métricas, técnicas de refactoring, desenvolvimento orientado a testes e boas práticas para manter o código limpo e evitar muitas dores de cabeça no futuro!
Apresentação feita na trilha .NET de Porto Alegre em Outubro 2014.
Nesta Apresentação falei sobre o início do ORM, o foco no cliente para adoção de frameworks de acesso a dados.
Uso de TSQL, consultas personalizadas, SPs, Orm....
O documento apresenta uma introdução à linguagem de programação Python, descrevendo suas características, aplicações e exemplos de código. É feita uma comparação com outras linguagens, destacando as vantagens de Python como fácil aprendizagem, biblioteca abrangente e multiplataforma. Exemplos de uso no Brasil e no exterior também são apresentados.
O documento fornece dicas para melhorar o desempenho do Joomla através de otimizações na configuração do PHP, MySQL, cache, sessões e código. Sugere a utilização de sprites CSS, código CSS em uma linha e framework Javascript para melhorar a performance do site.
1. O documento discute boas práticas de programação como indentação correta, nomes consistentes e comentários.
2. É recomendado comentar o código de uma forma que ajude a compreensão, mas evitar comentários desnecessários.
3. A apresentação também aborda padrões de codificação, princípios como DRY (Don't Repeat Yourself) e YAGNI (You aren't gonna need it), além de evitar muitos níveis de indentação e linhas muito longas.
O documento fornece uma introdução ao PHP, cobrindo tópicos como: (1) por que usar PHP; (2) sintaxe básica como tags e variáveis; (3) tipos de variáveis e operadores; (4) estruturas de controle como if/else e loops.
Tentar empregar DDD em sistemas legados, geralmente é decepcionante. Então iremos mostrar algumas estratégias para tentar fazer isso acontecer e apontar algumas realidades que podem acontecer.
E se você não sabe o que é DDD, não fique preocupado, pois essa palestra não é sobre Domain Driver Design. Apesar de comentarmos fortemente sobre, iremos dar um norte para futuramente você se aprofundar.
O documento discute o framework CakePHP para desenvolvimento web em PHP. Apresenta as principais características do framework como arquitetura MVC, validações, paginação, layouts e histórico de sua criação.
O documento apresenta o framework Zend Framework. Aborda o que são frameworks, quem usa o Zend Framework e por que usá-lo. Explica alguns de seus componentes e como utilizá-lo, contribuir e se certificar.
O documento descreve diversas ferramentas de linha de comando do Linux ("power tools") que permitem maior eficiência e automatismo em tarefas. Apresenta comandos como shell, man, alias, awk, sed, tr, grep, find, xargs, screen e strace, explicando suas funções e sintaxes básicas.
A partir de um arquivo em branco é possível escrever algumas linhas de código e criar uma loja virtual completa. Com 500 linhas de código em PHP foi desenvolvido um e-commerce com gateway de pagamento em menos de um dia.
Semelhante a Lidando com Código Duplicado - DevInSantos 2013 (20)
Dafiti Tech Conference - PHP Levado a SérioEvaldo Junior
Evaldo Junior apresentou sobre como levar o PHP a sério para aplicações corporativas. Ele discutiu a evolução do PHP e seu ecossistema, incluindo ferramentas como frameworks, microframeworks e componentes. Ele também cobriu tópicos como gestão de dependências, qualidade e testes, além de exemplos de uso do PHP em grandes empresas.
A Evolução do PHP - A Linguagem Número 1 da Web - PHP Conference Brasil 2013Evaldo Junior
A apresentação discute a evolução da linguagem PHP ao longo dos anos, destacando como a linguagem amadureceu com a introdução de novas funcionalidades como namespaces, PSRs, frameworks, Composer e padrões de segurança. O palestrante também enfatiza a importância de sempre usar a versão mais recente da linguagem e seguir as melhores práticas.
Ambiente livre para desenvolvimento webEvaldo Junior
O documento apresenta uma palestra sobre ambientes livres para desenvolvimento web. Ele discute tópicos como frontend com HTML, CSS e JavaScript, backend com linguagens como PHP e bancos de dados como MySQL, e ferramentas como editores de texto e controle de versão. O palestrante é Evaldo Junior, desenvolvedor web GNU/Linux há 9 anos.
O documento discute a evolução da linguagem PHP ao longo dos anos, desde a versão antiga de 2003 até as versões atuais de 2012. Apresenta os principais problemas das versões antigas, como a falta de namespaces, e discute melhorias recentes, como PSRs, Composer e frameworks modernos.
O documento discute a evolução da linguagem PHP ao longo dos anos, desde a versão antiga de 2003 até a versão atual em 2012. Ele destaca como os maiores inimigos do PHP eram suas próprias limitações no passado, mas que atualmente a linguagem amadureceu com a adição de recursos como namespaces, PSRs, Composer e frameworks. O documento também fornece recursos adicionais para aqueles que desejam aprender melhores práticas de programação PHP.
PHP Turbinado com CodeIgniter - Conisli 2011Evaldo Junior
Este documento apresenta o framework PHP CodeIgniter. Resume as seguintes informações essenciais:
1) Apresenta a história do PHP e como o CodeIgniter ajuda a resolver problemas comuns em projetos PHP grandes;
2) Explica os principais recursos e benefícios do CodeIgniter como MVC, facilidade de uso, documentação, entre outros;
3) Demonstra como o CodeIgniter organiza controllers, models, views e URLs de forma simples e padronizada.
O documento discute a sustentabilidade de projetos de software livre comparando-a com software proprietário. Software livre depende de doações, comunidades de usuários e necessidades pessoais para sustentar projetos, ao contrário de software proprietário que depende de vendas e lucros de empresas. A sustentabilidade de software livre é garantida quando muitas pessoas contribuem de diferentes formas como relatando bugs, programando ou divulgando o projeto.
Este documento discute as vantagens do uso de sistemas de controle de versão como Git para gerenciar a evolução de projetos de software. Ele explica brevemente como funcionam ferramentas como CVS, Subversion, Mercurial e Git e destaca que Git é uma poderosa ferramenta distribuída com boa solução de conflitos. O documento também menciona a plataforma GitHub como uma rede social para desenvolvedores que facilita a colaboração em projetos usando Git.
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
2. EVALDO JUNIOR
Tecnólogo em Processamento de Dados
MBA em Gestão Estratégica de TI
Desenvolvedor Web
Uso principalmente PHP
HTML, CSS, JavaScript, SQL...
GNU/Linux - Python - Vim
Dafiti
Unimonte
4. CONTEÚDO DESTA APRESENTAÇÃO
Déjà vu
Os problemas da duplicação de código
Maneiras de identificar código duplicado
Técnicas para corrigir a duplicação de código
23. IDENTIFICAÇÃO MANUAL;
Complexa e não exata (além de trabalhosa)
Acontece quando sem querer se esbarra em duplicações
Pode ser encontrada quando se procura
24. USO DE FERRAMENTAS COMO DIFF, MELD ETC;
Bom, mas tem que saber o que quer
Exemplo:
Classes de clientes e funcionários que podem ser
semelhantes
29. DRY
Every piece of knowledge must have a single,
unambiguous, authoritative representation
within a system.
Andy Hunt e Dave Thomas - The Pragmatic Programmer
39. EXTRACT METHOD;
Métodos com trechos semelhantes
Extraia para apenas um método e use nos outros
Também pode ser usado para simplificar métodos grandes
40. EXTRACT METHOD
pbi fnto smAto(
ulc ucin oecin)
{
i ( $hs>eUe(-cnces'oeeto' 'di'){
f ! ti-gtsr)>aAcs(SmScin, Amn)
$hs>eiet'ntuhrzd)
ti-rdrc(/oatoie';
}
i (ti-ev>se(){
f $hs>n-iDv)
$hs>nberflr)
ti-ealPoie(;
}
/ ..
/ .
}
pbi fnto aohrcin)
ulc ucin nteAto(
{
i ( $hs>eUe(-cnces'oeeto' 'di'){
f ! ti-gtsr)>aAcs(SmScin, Amn)
$hs>eiet'ntuhrzd)
ti-rdrc(/oatoie';
}
i (ti-ev>se(){
f $hs>n-iDv)
$hs>nberflr)
ti-ealPoie(;
}
/ ..
/ .
}
41. EXTRACT METHOD
piaefnto cekemsindi(scin
rvt ucin hcPrisoAmn$eto)
{
i ( $hs>eUe(-cnces$eto,'di'){
f ! ti-gtsr)>aAcs(scin Amn)
$hs>eiet'ntuhrzd)
ti-rdrc(/oatoie';
}
}
piaefnto ealPoie(
rvt ucin nberflr)
{
i (ti-ev>se(){
f $hs>n-iDv)
$hs>nberflr)
ti-ealPoie(;
}
}
pbi fnto smAto(
ulc ucin oecin)
{
$hs>hcPrisoAmn'oeeto';
ti-cekemsindi(SmScin)
$hs>nberflr)
ti-ealPoie(;
/ ..
/ .
}
pbi fnto aohrcin)
ulc ucin nteAto(
{
$hs>hcPrisoAmn'oeeto';
ti-cekemsindi(SmScin)
$hs>nberflr)
ti-ealPoie(;
/ ..
/ .
}
44. EXTRACT CLASS
/ Rptd e vro cnrles
/ eeio m áis otolr
piaefnto cekemsindi(scin
rvt ucin hcPrisoAmn$eto)
{
i ( $hs>eUe(-cnces$eto,'di'){
f ! ti-gtsr)>aAcs(scin Amn)
$hs>eiet'ntuhrzd)
ti-rdrc(/oatoie';
}
}
/ Rptd e vro cnrles
/ eeio m áis otolr
piaefnto ealPoie(
rvt ucin nberflr)
{
i (ti-ev>se(){
f $hs>n-iDv)
$hs>nberflr)
ti-ealPoie(;
}
}
45. EXTRACT CLASS
casAl{
ls c
pbi fnto cekemsin$eto,$oe
ulc ucin hcPriso(scin rl)
{
$p =Ap:eIsac(;
ap
p:gtntne)
i ( $p-gtsr)>aAcs(scin $oe){
f ! ap>eUe(-cnces$eto, rl)
$p-rdrc(/oatoie';
ap>eiet'ntuhrzd)
}
}
}
46. EXTRACT CLASS
casPoie {
ls rflr
piaefnto ealPoie(
rvt ucin nberflr)
{
$p =Ap:eIsac(;
ap
p:gtntne)
i (ap>n-iDv) {
f $p-ev>se()
$p-ealPoie(;
ap>nberflr)
}
}
}
47. EXTRACT CLASS
pbi fnto _cntut)
ulc ucin _osrc(
{
$ =nwPoie(;
p
e rflr)
$-ealPoie(;
p>nberflr)
}
pbi fnto smAto(
ulc ucin oecin)
{
$c =nwAl)
al
e c(;
$c-cekemsin'oeeto' 'di';
al>hcPriso(SmScin, Amn)
/ ..
/ .
}
51. FORM TEMPLATE METHOD;
Métodos praticamente iguais em subclasses
Poucas variações
Não é possível simplesmente mover o método para a
superclasse
Separe as diferenças em métodos com a mesma assinatura
Use os novos métodos no método principal
53. DESIGN PATTERNS.
Foco em reuso
Vale muito a pena entender os conceitos
Form Template Method == Template Method
54. RESUMO
Duplicação é ruim
Causada por preguiça ou desconhecimento
Ferramentas de detecção ajudam
Mas não adianta apenas saber que existe duplicação
Técnicas podem ser usadas
Design Patterns importam