Uma breve evolução dos paradigmas de programação até a Orientação a Objetos, assim como apresentação de alguns recursos da mesma dentro do contexto de programação.
Códigos Utilizados: https://github.com/augustohp/palestra-orientacao-objetos
Avaliações:
- VII Congresso Uniararas: https://joind.in/6692
This document discusses an introduction to object-oriented programming in PHP. It covers key concepts like classes, objects, attributes, methods, inheritance, polymorphism, interfaces, exceptions, and more. It emphasizes thinking in an object-oriented way when programming in PHP 5.
The document discusses ways to scale PHP applications. It covers using indexes, vertical partitioning, replication, load balancing, and storing sessions in a database table to allow sharing session data across multiple servers. Vertical partitioning involves splitting tables across multiple database servers based on certain columns like ID ranges, lists of values, or hashing on columns. Load balancing can be done at the web server level using modules like mod_proxy and mod_rewrite to route requests to read or write servers. Storing sessions in a database table allows session data to be shared between servers.
MongoDB es un motor de base de datos NoSQL que ha ganado mucha popularidad en los últimos tiempos, ya que ofrece muchos beneficios a la hora de desarrollar aplicaciones web.
En esta charla daremos una breve introducción a su instalación, configuración y funcionamiento. Luego repasaremos las distintas alternativas a la hora de usarlo en nuestras aplicaciones desarrolladas con PHP y Symfony2, y explicaremos cómo puede incrementar la velocidad de desarrollo y ayudar con aplicaciones web de alto rendimiento.
Developing RESTful Web APIs with Python, Flask and MongoDBNicola Iarocci
Presented at EuroPython 2012. The abstract: "In the last year we have been working on a full featured, Python powered, RESTful Web API. We learned quite a few things on REST best patterns, and we got a chance to put Python’s renowned web capabilities under review, even releasing a couple Open Source projects in the process. In my talk I will share what we learned. We will consider ‘pure’ REST API design and its many hurdles. We will look at what Python as to offer in this field and finally, we will dig further down by looking at some of the code we developed. Some of the technologies/stacks I’ll cover are (in no particular order): Flask, PyMongo, MongoDB, REST, JSON, XML, Heroku. Did you know? Like it or not, there is going to be a REST API in your future."
Toomas Römer gave a presentation at the JFokus 2012 conference in Stockholm about evolutions in Jenkins. He discussed how Jenkins is used for continuous integration, testing, and continuous deployment. He provided examples of using Jenkins for functional testing of software across different JDKs and cloud environments. He also described using Jenkins for servlet testing by deploying applications to different application servers and containers. Römer talked about challenges of testing across multiple environments and how distributed version control systems help address these challenges.
Assim como as Migrations no mundo Ruby On Rails, o mundo Java também possui diversas alternativas para evoluir o banco de dados de uma aplicação. Aprenda como você e sua equipe podem evoluir de maneira iterativa e incremental seu banco de dados (já em produção) durante a evolução da sua aplicação.
This document discusses an introduction to object-oriented programming in PHP. It covers key concepts like classes, objects, attributes, methods, inheritance, polymorphism, interfaces, exceptions, and more. It emphasizes thinking in an object-oriented way when programming in PHP 5.
The document discusses ways to scale PHP applications. It covers using indexes, vertical partitioning, replication, load balancing, and storing sessions in a database table to allow sharing session data across multiple servers. Vertical partitioning involves splitting tables across multiple database servers based on certain columns like ID ranges, lists of values, or hashing on columns. Load balancing can be done at the web server level using modules like mod_proxy and mod_rewrite to route requests to read or write servers. Storing sessions in a database table allows session data to be shared between servers.
MongoDB es un motor de base de datos NoSQL que ha ganado mucha popularidad en los últimos tiempos, ya que ofrece muchos beneficios a la hora de desarrollar aplicaciones web.
En esta charla daremos una breve introducción a su instalación, configuración y funcionamiento. Luego repasaremos las distintas alternativas a la hora de usarlo en nuestras aplicaciones desarrolladas con PHP y Symfony2, y explicaremos cómo puede incrementar la velocidad de desarrollo y ayudar con aplicaciones web de alto rendimiento.
Developing RESTful Web APIs with Python, Flask and MongoDBNicola Iarocci
Presented at EuroPython 2012. The abstract: "In the last year we have been working on a full featured, Python powered, RESTful Web API. We learned quite a few things on REST best patterns, and we got a chance to put Python’s renowned web capabilities under review, even releasing a couple Open Source projects in the process. In my talk I will share what we learned. We will consider ‘pure’ REST API design and its many hurdles. We will look at what Python as to offer in this field and finally, we will dig further down by looking at some of the code we developed. Some of the technologies/stacks I’ll cover are (in no particular order): Flask, PyMongo, MongoDB, REST, JSON, XML, Heroku. Did you know? Like it or not, there is going to be a REST API in your future."
Toomas Römer gave a presentation at the JFokus 2012 conference in Stockholm about evolutions in Jenkins. He discussed how Jenkins is used for continuous integration, testing, and continuous deployment. He provided examples of using Jenkins for functional testing of software across different JDKs and cloud environments. He also described using Jenkins for servlet testing by deploying applications to different application servers and containers. Römer talked about challenges of testing across multiple environments and how distributed version control systems help address these challenges.
Assim como as Migrations no mundo Ruby On Rails, o mundo Java também possui diversas alternativas para evoluir o banco de dados de uma aplicação. Aprenda como você e sua equipe podem evoluir de maneira iterativa e incremental seu banco de dados (já em produção) durante a evolução da sua aplicação.
This document provides guidance on handling errors effectively through logging. It discusses categorizing errors based on severity like errors, warnings and defects. Key points covered include:
- Choosing descriptive error messages that include context like time, location, user and stack trace.
- Logging errors consistently to aid debugging and prevent "crying wolf" from too many messages.
- Configuring PHP applications to display errors in development but log silently in production.
- Using exceptions and logging standards like Monolog and syslog to aggregate errors.
- Emphasizing that errors are not problems if handled properly and treated like logs to ease debugging.
Logs: O que comem, onde vivem e como se reproduzem.Augusto Pascutti
Como utilizar os arquivos de log (servidor web, PHP) e como gerá-los, quais as configurações que afetam o comportamento da geração de log no PHP, como gerar mensagens melhores e arquiteturas comuns para manter e utilizar melhor o potencial dessas mensagens.
O vídeo da apresentação: https://www.youtube.com/watch?v=pGPyKxuUAAo
Breve introdução a TDD, expondo uma aplicação simples - visível somente via controle de versão - escrita em PHP, exercitando os ciclos propostos pela metologia.
Gravação da apresentação: http://youtu.be/M5f32O-Afq0
Repositório do projeto: http://github.com/augustohp/gravata
Escalabilidade em um sistema é planejada desde a sua concepção ou as consequências deverão ser aceitas. Como entender a arquitetura de uma aplicação web, como usar essa arquitetura a seu favor e quais são as práticas mais comuns será o conteúdo dessa palestra. Nada de teoria, você leva pra casa um conjunto de VMs pra exprimentar e aprender o que foi apresentado.
O documento discute o uso de logs e mensagens de erro no PHP para diagnosticar e corrigir problemas. Ele explica os diferentes tipos de erros e mensagens no PHP, como E_ERROR, E_WARNING e E_NOTICE, e ferramentas como grep, awk e sort para analisar logs e identificar erros e padrões de acesso.
The document discusses test driven development (TDD). It covers the evolution of testing, automated testing, and the motivations and principles of TDD. The main points of TDD are covered, including writing a test first that fails, then writing code to make the test pass, and refactoring the code. An interactive session demonstrates applying TDD to developing a task list application, including tests for title, ID, completion status, and saving tasks to a database. The importance of covering variations with tests and the risks of focusing only on 100% test coverage are also discussed.
O documento apresenta os principais tópicos da disciplina de engenharia de software, incluindo definições, modelos de desenvolvimento de software e conceitos como modelagem, design, reutilização e limitações.
The document is a collection of quotes and code snippets about various topics in computing including:
- The differences between theory and practice.
- Examples of PHP code demonstrating type juggling and array handling.
- Comments on computing education and the importance of practicing open source.
- A quote about not knowing a programmer is doing a bad job until it's too late.
- A mention of using agile methods to deliver work in small iterations.
Acredito sem dificuldade ao ver e escutar de um engenheiro que uma ponte terá tantos metros, tantos pilares e que ela ficará exatamente daquele jeito quando pronta mas me recuso a acreditar em alguém que me diz que um software será entregue exatamente do jeito que foi pedido inicialmente. Eu não sou um engenheiro, sou um jardineiro!
Qual o estado dos frameworks atualmente no PHP, assim como a situação atual da linguagem. Como você pode escolher seu framework e um comparativo entre os 4 principais frameworks do mercado.
O documento discute integração contínua (IC) e testes unitários, argumentando que eles melhoram a qualidade do software, reduzem bugs e economizam tempo ao automatizar tarefas repetitivas e detectar problemas cedo. A integração contínua integra e testa o código frequentemente para encontrar bugs antes que afetem os clientes. Testes unitários tornam o código mais robusto e fácil de manter no longo prazo. Métricas e ferramentas de cobertura de código medem a qualidade e ajudam a melhorar
PHPSC Conference 2010 - Testar é bom, integrar é melhor ainda!Augusto Pascutti
The document discusses continuous integration (CI), which involves continuously testing software changes to find and address issues early in the development process. It notes CI is an agile practice that involves an automated or manual continuous process of integrating code changes, running tests, and monitoring results. Benefits of CI include increased quality through early bug detection, reduced costs and time, and avoiding "release chaos". The document advocates for integrating and testing code frequently to improve metrics, quality, and reduce bugs and time spent fixing issues. It provides examples of tools that can be used to implement CI like PHPUnit, PHP Depend, SVN, Hudson, and PHPCodeSniffer.
O documento discute princípios e boas práticas de segurança em PHP, incluindo aplicar camadas de segurança, classificar e restringir acesso a informações confidenciais, escapar inputs e outputs, configurar corretamente o servidor PHP e evitar vulnerabilidades como SQL injection, XSS e CSRF.
Este documento fornece uma introdução à orientação a objetos em PHP, discutindo conceitos como classes, objetos, métodos mágicos, herança, interfaces, exceptions e padrões de projeto. O documento também aborda tópicos como uso do PDO para acesso a banco de dados e frameworks PHP.
O documento discute boas práticas de programação PHP, enfatizando a importância de código limpo, organizado e fácil de manter através de técnicas como encapsulamento, padronização e refatoração.
O documento apresenta uma série de mitos sobre a linguagem PHP e discute cada um deles, mostrando que muitos são falsos ou exagerados. Também aborda o cenário do mercado de desenvolvimento PHP no Brasil e no mundo, destacando a grande demanda por profissionais qualificados na área.
Este documento presenta una introducción a la orientación a objetos en la práctica. Explica conceptos básicos como clases, objetos, atributos, métodos, herencia, polimorfismo, visibilidad, abstracto, miembros de clase, constantes, estáticos, magia, interfaces, excepciones y autoload. También cubre temas como UML, generalización, implementación, asociación, patrones de diseño y frameworks.
This document provides guidance on handling errors effectively through logging. It discusses categorizing errors based on severity like errors, warnings and defects. Key points covered include:
- Choosing descriptive error messages that include context like time, location, user and stack trace.
- Logging errors consistently to aid debugging and prevent "crying wolf" from too many messages.
- Configuring PHP applications to display errors in development but log silently in production.
- Using exceptions and logging standards like Monolog and syslog to aggregate errors.
- Emphasizing that errors are not problems if handled properly and treated like logs to ease debugging.
Logs: O que comem, onde vivem e como se reproduzem.Augusto Pascutti
Como utilizar os arquivos de log (servidor web, PHP) e como gerá-los, quais as configurações que afetam o comportamento da geração de log no PHP, como gerar mensagens melhores e arquiteturas comuns para manter e utilizar melhor o potencial dessas mensagens.
O vídeo da apresentação: https://www.youtube.com/watch?v=pGPyKxuUAAo
Breve introdução a TDD, expondo uma aplicação simples - visível somente via controle de versão - escrita em PHP, exercitando os ciclos propostos pela metologia.
Gravação da apresentação: http://youtu.be/M5f32O-Afq0
Repositório do projeto: http://github.com/augustohp/gravata
Escalabilidade em um sistema é planejada desde a sua concepção ou as consequências deverão ser aceitas. Como entender a arquitetura de uma aplicação web, como usar essa arquitetura a seu favor e quais são as práticas mais comuns será o conteúdo dessa palestra. Nada de teoria, você leva pra casa um conjunto de VMs pra exprimentar e aprender o que foi apresentado.
O documento discute o uso de logs e mensagens de erro no PHP para diagnosticar e corrigir problemas. Ele explica os diferentes tipos de erros e mensagens no PHP, como E_ERROR, E_WARNING e E_NOTICE, e ferramentas como grep, awk e sort para analisar logs e identificar erros e padrões de acesso.
The document discusses test driven development (TDD). It covers the evolution of testing, automated testing, and the motivations and principles of TDD. The main points of TDD are covered, including writing a test first that fails, then writing code to make the test pass, and refactoring the code. An interactive session demonstrates applying TDD to developing a task list application, including tests for title, ID, completion status, and saving tasks to a database. The importance of covering variations with tests and the risks of focusing only on 100% test coverage are also discussed.
O documento apresenta os principais tópicos da disciplina de engenharia de software, incluindo definições, modelos de desenvolvimento de software e conceitos como modelagem, design, reutilização e limitações.
The document is a collection of quotes and code snippets about various topics in computing including:
- The differences between theory and practice.
- Examples of PHP code demonstrating type juggling and array handling.
- Comments on computing education and the importance of practicing open source.
- A quote about not knowing a programmer is doing a bad job until it's too late.
- A mention of using agile methods to deliver work in small iterations.
Acredito sem dificuldade ao ver e escutar de um engenheiro que uma ponte terá tantos metros, tantos pilares e que ela ficará exatamente daquele jeito quando pronta mas me recuso a acreditar em alguém que me diz que um software será entregue exatamente do jeito que foi pedido inicialmente. Eu não sou um engenheiro, sou um jardineiro!
Qual o estado dos frameworks atualmente no PHP, assim como a situação atual da linguagem. Como você pode escolher seu framework e um comparativo entre os 4 principais frameworks do mercado.
O documento discute integração contínua (IC) e testes unitários, argumentando que eles melhoram a qualidade do software, reduzem bugs e economizam tempo ao automatizar tarefas repetitivas e detectar problemas cedo. A integração contínua integra e testa o código frequentemente para encontrar bugs antes que afetem os clientes. Testes unitários tornam o código mais robusto e fácil de manter no longo prazo. Métricas e ferramentas de cobertura de código medem a qualidade e ajudam a melhorar
PHPSC Conference 2010 - Testar é bom, integrar é melhor ainda!Augusto Pascutti
The document discusses continuous integration (CI), which involves continuously testing software changes to find and address issues early in the development process. It notes CI is an agile practice that involves an automated or manual continuous process of integrating code changes, running tests, and monitoring results. Benefits of CI include increased quality through early bug detection, reduced costs and time, and avoiding "release chaos". The document advocates for integrating and testing code frequently to improve metrics, quality, and reduce bugs and time spent fixing issues. It provides examples of tools that can be used to implement CI like PHPUnit, PHP Depend, SVN, Hudson, and PHPCodeSniffer.
O documento discute princípios e boas práticas de segurança em PHP, incluindo aplicar camadas de segurança, classificar e restringir acesso a informações confidenciais, escapar inputs e outputs, configurar corretamente o servidor PHP e evitar vulnerabilidades como SQL injection, XSS e CSRF.
Este documento fornece uma introdução à orientação a objetos em PHP, discutindo conceitos como classes, objetos, métodos mágicos, herança, interfaces, exceptions e padrões de projeto. O documento também aborda tópicos como uso do PDO para acesso a banco de dados e frameworks PHP.
O documento discute boas práticas de programação PHP, enfatizando a importância de código limpo, organizado e fácil de manter através de técnicas como encapsulamento, padronização e refatoração.
O documento apresenta uma série de mitos sobre a linguagem PHP e discute cada um deles, mostrando que muitos são falsos ou exagerados. Também aborda o cenário do mercado de desenvolvimento PHP no Brasil e no mundo, destacando a grande demanda por profissionais qualificados na área.
Este documento presenta una introducción a la orientación a objetos en la práctica. Explica conceptos básicos como clases, objetos, atributos, métodos, herencia, polimorfismo, visibilidad, abstracto, miembros de clase, constantes, estáticos, magia, interfaces, excepciones y autoload. También cubre temas como UML, generalización, implementación, asociación, patrones de diseño y frameworks.
25. .386
.model
Flat
public
Fibonacci
include
iosmacros.inc
;
inclui
macros
de
output
para
tela
.code
Fibonacci
proc
MOV
EAX,
[ESP+4]
CMP
EAX,
1
JA
Recurse
MOV
EAX,
1
;
retorna
o
valor
de
eax
JMP
exit
Recurse:
PUSH
EBX
;
preserva
o
valor
de
ebx
DEC
EAX
PUSH
EAX
CALL
Fibonacci
MOV
EBX,
EAX
;
ebx
preservado,
seguro
de
usar
DEC
[ESP]
;
decrementa
o
valor
no
stack
CALL
Fibonacci
ADD
EAX,
EBX
;
retorna
o
valor
em
eax
ADD
ESP,
4
;
remove
o
valor
do
stack
POP
EBX
;
restaura
o
valor
antigo
de
ebx
exit:
ret
Fibonacci
endp HTTP://STACKOVERFLOW.COM/QUESTIONS/5616684/RECURSIVE-FIBONACCI-IN-ASSEMBLY
Thursday, June 14, 2012 23
64. AGENDA
CONCEITOS
ESTADO, TIPAGEM E REUSO
Thursday, June 14, 2012 60
65. AGENDA
CONCEITOS
ESTADO, TIPAGEM E REUSO
SEQUÊNCIA DE FIBONACCI
Thursday, June 14, 2012 60
66. AGENDA
CONCEITOS
ESTADO, TIPAGEM E REUSO
SEQUÊNCIA DE FIBONACCI
PARADIGMAS DE PROGRAMAÇÃO
Thursday, June 14, 2012 60
67. AGENDA
CONCEITOS
ESTADO, TIPAGEM E REUSO
SEQUÊNCIA DE FIBONACCI
PARADIGMAS DE PROGRAMAÇÃO
ASSEMBLY
Thursday, June 14, 2012 60
68. AGENDA
CONCEITOS
ESTADO, TIPAGEM E REUSO
SEQUÊNCIA DE FIBONACCI
PARADIGMAS DE PROGRAMAÇÃO
ASSEMBLY
PROCEDURAL
Thursday, June 14, 2012 60
69. AGENDA
CONCEITOS
ESTADO, TIPAGEM E REUSO
SEQUÊNCIA DE FIBONACCI
PARADIGMAS DE PROGRAMAÇÃO
ASSEMBLY
PROCEDURAL
ORIENTAÇÃO A OBJETOS
Thursday, June 14, 2012 60