<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Fernando Mantoan &#187; cesufoz</title>
	<atom:link href="http://fernandomantoan.com/tag/cesufoz/feed/" rel="self" type="application/rss+xml" />
	<link>http://fernandomantoan.com</link>
	<description>Desenvolvimento e tecnologia da informação no geral</description>
	<lastBuildDate>Wed, 25 Aug 2010 23:45:48 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>Trabalho de Conclusão de Curso: Proposta de Arquitetura para Desenvolvimento Web Baseada em PHP utilizando Design Patterns, Um Estudo de Caso</title>
		<link>http://fernandomantoan.com/php/trabalho-de-conclusao-de-curso-proposta-de-arquitetura-para-desenvolvimento-web-baseada-em-php-utilizando-design-patterns-um-estudo-de-caso/</link>
		<comments>http://fernandomantoan.com/php/trabalho-de-conclusao-de-curso-proposta-de-arquitetura-para-desenvolvimento-web-baseada-em-php-utilizando-design-patterns-um-estudo-de-caso/#comments</comments>
		<pubDate>Tue, 15 Dec 2009 18:51:09 +0000</pubDate>
		<dc:creator>Fernando Mantoan</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Zend Framework]]></category>
		<category><![CDATA[arquiteturas de software]]></category>
		<category><![CDATA[cesufoz]]></category>
		<category><![CDATA[design patterns]]></category>
		<category><![CDATA[Frameworks]]></category>
		<category><![CDATA[monografia]]></category>

		<guid isPermaLink="false">http://fernandomantoan.com/?p=222</guid>
		<description><![CDATA[Olá a todos, como vão? Algum tempo parado com o blog, apesar de ter dito que agora eu teria mais tempo para me dedicar a ele, não é o que está acontecendo . Bom hoje trago para vocês o meu tema de trabalho de conclusão de curso, com o qual conclui minha graduação no Centro [...]]]></description>
			<content:encoded><![CDATA[<p>Olá a todos, como vão? Algum tempo parado com o blog, apesar de ter dito que agora eu teria mais tempo para me dedicar a ele, não é o que está acontecendo <img src='http://fernandomantoan.com/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> . Bom hoje trago para vocês o meu tema de trabalho de conclusão de curso, com o qual conclui minha graduação no <strong>Centro de Ensino Superior de Foz do Iguaçu</strong>, me tornando <strong>Bacharel em Ciência da Computação</strong>. Na segunda-feira dia 7 de Dezembro de 2009, apresentei a banca final, defendendo o tema, explanando toda a parte prática (a parte teórica foi apresentada na banca parcial) e ganhando a aprovação dos avaliadores da banca.</p>
<h2>Objetivo Geral</h2>
<p>Propor uma arquitetura de desenvolvimento de aplicações em PHP contendo <em>design patterns</em> que forneça uma maior estrutura organizacional, padronização de programação, facilidade de manutenção, menos repetição de código e que evite <em>bad smell</em> (algo errado no código que necessita ser refatorado).</p>
<h2>Arquitetura Definida</h2>
<p style="text-align: center;">
<div id="attachment_223" class="wp-caption aligncenter" style="width: 409px"><a href="http://fernandomantoan.com/wp-content/uploads/2009/12/implementacao_diagrama_arquitetura.png" class="thickbox"><img class="size-full wp-image-223 " title="implementacao_diagrama_arquitetura" src="http://fernandomantoan.com/wp-content/uploads/2009/12/implementacao_diagrama_arquitetura.png" alt="Diagrama da arquitetura definida" width="399" height="336" /></a><p class="wp-caption-text">Diagrama da arquitetura definida</p></div>
<p>O fluxo definido por esta arquitetura segue o padrão definido pelo Zend <em>Framework</em> e, também, possui algumas customizações para a comunicação entre cada camada. A estrutura base do <em>framework</em> é baseada no <em>pattern</em> <em>Model-View-Controller</em> (MVC), o que divide a aplicação em <em>Model</em>, <em>View</em> e <em>Controller</em>. Na arquitetura, conforme apresentado na Figura acima ainda existem as camadas: <em>Facade</em>, <em>Data Mapper</em> e <em>Table Data Gateway</em>.</p>
<p>Todo o fluxo inicia-se por uma requisição feita por um usuário, o <em>framework</em> definirá qual o <em>Controller</em> requerido, este então será responsável por tratar a requisição e, utilizando o <em>pattern</em> <em>Factory Method</em>, o <em>Controller</em> obtém a <em>Facade</em> ligada ao caso de uso a que ele corresponde e então delega para esta camada o processamento da lógica referente a regra de negócio.</p>
<p>A <em>Facade</em> poderá utilizar um <em>Data Mapper</em> para obter dados do banco de dados, ou para fazer operações a registros do banco. O <em>Data Mapper</em> irá utilizar o <em>Table Data Gateway</em> para efetuar as operações SQL, que é a linguagem compreendida pelo banco de dados. Ele também poderá mapear os dados vindos do <em>Table Data Gateway</em> para objetos <em>Model</em>, que representam em forma de objetos as entidades do banco de dados.</p>
<p>Existe ainda a implementação do <em>Observer</em> e <em>Observable</em>, que fazem parte do <em>design pattern</em> <em>Observer</em>. Uma classe <em>Observable</em> possuirá métodos para se conectar a <em>Observers</em> e para notificar cada um deles. A classe <em>Observer</em> irá fazer um <em>log</em> das operações notificadas pela <em>Observable</em>, gravando este <em>log</em> em banco de dados, no formato JSON, para permitir uma consulta posterior.</p>
<p>Após todo o processamento das camadas inferiores ser concluído, o <em>Controller</em> irá continuar o fluxo da aplicação, exibindo a <em>View</em> para o usuário, que pode conter os dados pegos pelo <em>Data Mapper</em>, ou os formulários definidos pelos componentes Zend_Form para obter dados para algum registro, ou mensagens relevantes para informar ao usuário.</p>
<p>O <em>design pattern</em> <em>Singleton</em> é implementado por diversos componentes do Zend <em>Framework</em>, como, por exemplo, o Zend_Auth que é utilizado na autenticação de usuários. Com este <em>pattern</em> é possível manter os objetos durante a aplicação e por apenas um ponto de entrada. Isto garante a consistência deste objeto, sabendo sempre o que esperar dele.</p>
<h2>Aplicação de Exemplo</h2>
<p>Para fazer o estudo de caso foi necessário a elaboração de uma aplicação, esta sendo um sistema simples de controle de bibliotecas. Como não era necessário especificar um cliente real, foram criadas algumas regras de negócio que o sistema devia atender e então construí todo o sistema utilizando a arquitetura. A observação que deixo para quem for analisar a aplicação é que <strong>a regra de negócio é sim extremamente simples</strong>, e acredito que se fosse aplicar a aplicação a uma biblioteca real existiria muita coisa a se trabalhar, porém com ela foi possível demonstrar o uso da arquitetura e o resultado foi bem satisfatório. Os casos de uso criados são demonstrados no diagrama de casos de uso apresentado na Figura abaixo:</p>
<div id="attachment_224" class="wp-caption aligncenter" style="width: 310px"><a href="http://fernandomantoan.com/wp-content/uploads/2009/12/implementacao_casos_uso.png"  class="thickbox"><img class="size-medium wp-image-224" title="implementacao_casos_uso" src="http://fernandomantoan.com/wp-content/uploads/2009/12/implementacao_casos_uso-300x215.png" alt="Diagrama de Casos de Uso" width="300" height="215" /></a><p class="wp-caption-text">Diagrama de Casos de Uso</p></div>
<h2>Conclusões</h2>
<p>A principal conclusão apresentada na minha monografia é com relação a manutenibilidade dos sistemas e ciclo de vida. Com uma arquitetura padronizada e altamente reutilizável graças a um ótimo <em>framework</em> e a utilização de <em>design patterns</em> pode-se aumentar bastante o ciclo de vida, principalmente porque desenvolvedores que forem alterar as aplicações já prontas, deverão apenas se familiarizar com os <em>patterns</em> já especificados e reconhecidos mundialmente, e, também, ler a documentação da arquitetura, para saberem onde exatamente alterar as partes necessárias. Os trabalhos futuros são:</p>
<ul>
<li>Tornar a arquitetura independente de <em>framework</em>;</li>
<li>Basear a arquitetura em <em>plugins</em> para facilitar a criação e atualização de funcionalidades de sistemas;</li>
<li>Escolher entre os <em>design patterns</em> existentes para adicionar ou remover <em>patterns</em> de acordo com a necessidade das aplicações que forem desenvolvidas.</li>
</ul>
<h2>Código-Fonte</h2>
<p>O código-fonte com a arquitetura e a aplicação de exemplo poderão ser baixados no link abaixo. Se você tiver melhorias e dicas por favor envie um comentário que ficarei bem agradecido, principalmente se forem coisas construtivas. Bom, é isso, gostaria só de anunciar as boas novas e, também, divulgar esta arquitetura, que ao meu ver ficou muito boa para se trabalhar, e que já estou utilizando em um sistema real&#8230; <img src='http://fernandomantoan.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p><a href="http://fernandomantoan.com/wp-content/uploads/2009/12/monografia_biblioteca.zip">Código-Fonte da Arquitetura</a></p>
]]></content:encoded>
			<wfw:commentRss>http://fernandomantoan.com/php/trabalho-de-conclusao-de-curso-proposta-de-arquitetura-para-desenvolvimento-web-baseada-em-php-utilizando-design-patterns-um-estudo-de-caso/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Reapresentação da palestra Webservices REST com Zend Framework</title>
		<link>http://fernandomantoan.com/php/reapresentacao-da-palestra-webservices-rest-com-zend-framework/</link>
		<comments>http://fernandomantoan.com/php/reapresentacao-da-palestra-webservices-rest-com-zend-framework/#comments</comments>
		<pubDate>Sat, 14 Nov 2009 02:49:50 +0000</pubDate>
		<dc:creator>Fernando Mantoan</dc:creator>
				<category><![CDATA[Eventos]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Zend Framework]]></category>
		<category><![CDATA[cesufoz]]></category>
		<category><![CDATA[palestra]]></category>
		<category><![CDATA[rest]]></category>
		<category><![CDATA[semana academica]]></category>
		<category><![CDATA[twitter]]></category>

		<guid isPermaLink="false">http://fernandomantoan.com/?p=165</guid>
		<description><![CDATA[Ontem eu e o Jurmir apresentamos na Semana Acadêmica Integrada 2009 do CESUFOZ a palestra Webservices REST com Zend Framework. Quem ainda não viu os slides, confira-os no post original, escrito após a apresentação na Latinoware. Agradeço a todos que nos prestigiaram e espero que tenham gostado da palestra. Esta foi uma reapresentação da palestra [...]]]></description>
			<content:encoded><![CDATA[<p>Ontem eu e o <a href="http://jcanalneto.wordpress.com/" target="_blank">Jurmir</a> apresentamos na Semana Acadêmica Integrada 2009 do CESUFOZ a palestra Webservices REST com Zend Framework. Quem ainda não viu os slides, confira-os no <a href="http://fernandomantoan.com/php/palestra-webservices-rest-com-zend-framework/">post original</a>, escrito após a apresentação na Latinoware. Agradeço a todos que nos prestigiaram e espero que tenham gostado da palestra. Esta foi uma reapresentação da palestra da Latinoware, o bom desta palestra é que tínhamos internet, então foi possível demonstrar o cliente Twitter, apesar de não ter sido possível inserir novos status, mas tudo bem, já foi muito mais completa do que a da Latinoware.</p>
<p>Estou em processo de término da monografia, além de estar atuando em alguns projetos, em breve espero colocar mais artigos aqui no blog. Até mais.</p>
]]></content:encoded>
			<wfw:commentRss>http://fernandomantoan.com/php/reapresentacao-da-palestra-webservices-rest-com-zend-framework/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Palestra &#8211; PHP, Mercado e Certificações</title>
		<link>http://fernandomantoan.com/php/palestra-php-mercado-e-certificacoes/</link>
		<comments>http://fernandomantoan.com/php/palestra-php-mercado-e-certificacoes/#comments</comments>
		<pubDate>Fri, 13 Nov 2009 02:38:31 +0000</pubDate>
		<dc:creator>Fernando Mantoan</dc:creator>
				<category><![CDATA[Eventos]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[cesufoz]]></category>
		<category><![CDATA[semana academica]]></category>
		<category><![CDATA[zce]]></category>

		<guid isPermaLink="false">http://fernandomantoan.com/?p=159</guid>
		<description><![CDATA[Apresentei ontem na Semana Acadêmica Integrada 2009 do Centro de Ensino Superior de Foz do Iguaçu a palestra entitulada PHP, Mercado e Certificações. Nela, procurei abordar um pouco da evolução da linguagem, mostrar que seu futuro é promissor, empresas que a utilizam (grandes companhias e empresas da cidade), perfis de profissionais, dicas para se tornar [...]]]></description>
			<content:encoded><![CDATA[<p>Apresentei ontem na Semana Acadêmica Integrada 2009 do Centro de Ensino Superior de Foz do Iguaçu a palestra entitulada <strong>PHP, Mercado e Certificações</strong>. Nela, procurei abordar um pouco da evolução da linguagem, mostrar que seu futuro é promissor, empresas que a utilizam (grandes companhias e empresas da cidade), perfis de profissionais, dicas para se tornar um profissional melhor e uma abordagem geral sobre as certificações da Zend, me focando mais na de PHP5 que eu já possuo alguma experiência. Espero que todos tenham gostado da palestra, segue os slides:</p>
<div style="width:425px;text-align:left" id="__ss_2488851"><a style="font:14px Helvetica,Arial,Sans-serif;display:block;margin:12px 0 3px 0;text-decoration:underline;" href="http://www.slideshare.net/fernandouhu/php-mercado-e-certificaes-2488851" title="PHP, Mercado e Certificações">PHP, Mercado e Certificações</a><object style="margin:0px" width="425" height="355"><param name="movie" value="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=slides-091112201114-phpapp01&#038;stripped_title=php-mercado-e-certificaes-2488851" /><param name="allowFullScreen" value="true"/><param name="allowScriptAccess" value="always"/><embed src="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=slides-091112201114-phpapp01&#038;stripped_title=php-mercado-e-certificaes-2488851" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="355"></embed></object>
<div style="font-size:11px;font-family:tahoma,arial;height:26px;padding-top:2px;">View more <a style="text-decoration:underline;" href="http://www.slideshare.net/">documents</a> from <a style="text-decoration:underline;" href="http://www.slideshare.net/fernandouhu">Fernando Geraldo Mantoan</a>.</div>
</div>
]]></content:encoded>
			<wfw:commentRss>http://fernandomantoan.com/php/palestra-php-mercado-e-certificacoes/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
	</channel>
</rss>
