<?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>JulioGreff.net &#187; mvc</title>
	<atom:link href="http://juliogreff.net/tag/mvc/feed/" rel="self" type="application/rss+xml" />
	<link>http://juliogreff.net</link>
	<description>A mesma web, um novo estilo de desenvolvimento</description>
	<lastBuildDate>Sat, 07 May 2011 17:07:10 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>Spaghetti* Framework Lançado!</title>
		<link>http://juliogreff.net/spaghetti-framework-lancado/</link>
		<comments>http://juliogreff.net/spaghetti-framework-lancado/#comments</comments>
		<pubDate>Sat, 03 Jan 2009 16:06:16 +0000</pubDate>
		<dc:creator>Julio Greff</dc:creator>
				<category><![CDATA[Server-Side]]></category>
		<category><![CDATA[Spaghetti*]]></category>
		<category><![CDATA[frameworks]]></category>
		<category><![CDATA[mvc]]></category>

		<guid isPermaLink="false">http://juliogreff.net/?p=351</guid>
		<description><![CDATA[O ano de 2009 chegou, e com ele trouxemos junto o Spaghetti* Framework 0.1, a primeira versão do nosso framework para PHP. Exatamente na virada do ano, o site do Spaghetti* foi liberado, assim como downloads, documentação, screencasts e tutoriais. E você, já deu uma passada por lá? Recepção Antes de tudo, gostaria de agradecer [...]

<h3>Posts Relacionados</h3><ul><li><a href='http://juliogreff.net/spaghetti-ate-mais-e-obrigado-pelos-peixes/' rel='bookmark' title='Permanent Link: Spaghetti* &#8211; Até mais, e obrigado pelos peixes'>Spaghetti* &#8211; Até mais, e obrigado pelos peixes</a></li>
<li><a href='http://juliogreff.net/forum-do-spaghetti/' rel='bookmark' title='Permanent Link: Fórum do Spaghetti*'>Fórum do Spaghetti*</a></li>
<li><a href='http://juliogreff.net/escolhendo-o-framework-certo/' rel='bookmark' title='Permanent Link: Escolhendo o Framework Certo'>Escolhendo o Framework Certo</a></li>
<li><a href='http://juliogreff.net/frameworks-por-um-php-menos-ruim/' rel='bookmark' title='Permanent Link: Frameworks: Por um PHP Menos Ruim'>Frameworks: Por um PHP Menos Ruim</a></li>
<li><a href='http://juliogreff.net/codecast-5-frameworks/' rel='bookmark' title='Permanent Link: CodeCast #5 &#8211; Frameworks'>CodeCast #5 &#8211; Frameworks</a></li>
</ul>]]></description>
			<content:encoded><![CDATA[<p class="center"><img src="http://juliogreff.net/wp-uploads/spaghettilogo.gif" alt="Spaghetti* Framework" title="Spaghetti* Framework"/></p>
<p>O ano de 2009 chegou, e com ele trouxemos junto o <strong>Spaghetti* Framework 0.1</strong>, a primeira versão do nosso framework para PHP. Exatamente na virada do ano, o <a href="http://spaghettiphp.org" rel="external" title="Spaghetti* Framework">site do Spaghetti*</a> foi liberado, assim como <a href="http://spaghettiphp.org/download" rel="external" title="Download do Spaghetti*">downloads</a>, <a href="http://spaghettiphp.org/docs" rel="external" title="Documentação do Spaghetti*">documentação</a>, <a href="http://spaghettiphp.org/screencasts" rel="external" title="Screencasts do Spaghetti*">screencasts</a> e <a href="http://spaghettiphp.org/tutorials" rel="external" title="Tutoriais do Spaghetti*">tutoriais</a>. E você, já deu uma passada por lá?</p>
<h3>Recepção</h3>
<p>Antes de tudo, gostaria de agradecer muito a recepção que o Spaghetti* já vem tendo. Em apenas 3 dias de vida, já recebemos vários elogios, agradecimentos, twittadas e sugestões (críticas são muito bem aceitas, estamos esperando elas também!). Vários downloads foram feitos, os screencasts estão gastando uma banda considerável, e pelo jeito o pessoal anda gostando. Se você também gostou (ou não gostou), nos deixe saber! É só entrar em <a href="http://spaghettiphp.org/contact" rel="external" title="Entre em contato com a equipe do Spaghetti*">contato</a> direto com a gente.</p>
<h3>Documentação</h3>
<p>Pelo menos para mim, uma documentação razoável é um dos fatores chave para a adoção de uma nova ferramenta. Por isso, trabalhamos bastante em cima dessa parte, e o resultado é uma documentação que cobre boa parte do que o Spaghetti* faz. Gostamos tanto do resultado que até fizemos um <a href="http://downloads.spaghettiphp.org/books/spaghettiphp.pdf" rel="external" title="Documentação do Spaghetti* em PDF">PDF para download</a>. Quem me segue no <a href="http://twitter.com/juliogreff" rel="external" title="JulioGreff no Twitter">Twitter</a> deve ter notado o quanto falamos dessa documentação.</p>
<p>Além da própria documentação, fomos um pouco mais longe, e também já temos alguns screencasts e tutoriais, especialmente para o pessoal que já quer ver alguma coisa funcionando antes de colocar a mão na massa. Já estou devendo um screencast meu, abordando outros aspectos do framework, deve sair em breve. Ou pelo menos assim espero.</p>
<h3>O que já está por aí</h3>
<p>O Spaghetti* não foi criado em um laboratório fechado, baseado em hipóteses e teorias. Construímos ele em aplicações já em produção. Já existem vários projetos prontos, funcionando, com versões alfa e beta do Spaghetti*. Além disso, o <a href="http://rafaelmarin.net/" rel="external friend" title="RafaelMarin.net">Rafael</a> também criou uma aplicação super legal, uma <a href="http://apps.spaghettiphp.org/tasklist/" rel="external" title="Task List com Spaghetti*">lista de tarefas</a>. Toda a aplicação feita em menos de duas horas de trabalho. Divirta-se!</p>
<h3>E o que vem por aí</h3>
<p>Não estamos parados, e já estamos trabalhando para a próxima versão, programada para primeiro de maio, se tudo der certo. Fomos amadurecendo ainda mais a idéia, e vimos que muito ainda falta no Spaghetti*. Você deve ter sentido falta de suporte a vários bancos de dados, validação, além de vários outros detalhes no próprio core, helpers e componentes. Você pode nos acompanhar pelo <a href="http://trac.spaghettiphp.org" rel="external" title="Trac - Spaghetti*">Trac</a>, ou então pelo nosso <a href="http://twitter.com/spaghettiphp" rel="external" title="Twitter - Spaghetti*">Twitter</a>. Sinta-se livre para se cadastrar no Trac, submeter tickets, anexar sugestões de código, e nos ajudar a melhorar nosso framework.</p>
<p>Espero que o nosso trabalho possa tornar o seu mais fácil e mais divertido. Também espero que você possa usar o Spaghetti* em seus projetos, e adoraria ouvir qualquer coisa sobre a experiência. Assim que alguém já estiver usando o framework em algum projeto internet afora, farei questão de dizer isso aqui ou mesmo no site do Spaghetti*. Até mais!</p>


<h3>Posts Relacionados</h3><ul><li><a href='http://juliogreff.net/spaghetti-ate-mais-e-obrigado-pelos-peixes/' rel='bookmark' title='Permanent Link: Spaghetti* &#8211; Até mais, e obrigado pelos peixes'>Spaghetti* &#8211; Até mais, e obrigado pelos peixes</a></li>
<li><a href='http://juliogreff.net/forum-do-spaghetti/' rel='bookmark' title='Permanent Link: Fórum do Spaghetti*'>Fórum do Spaghetti*</a></li>
<li><a href='http://juliogreff.net/escolhendo-o-framework-certo/' rel='bookmark' title='Permanent Link: Escolhendo o Framework Certo'>Escolhendo o Framework Certo</a></li>
<li><a href='http://juliogreff.net/frameworks-por-um-php-menos-ruim/' rel='bookmark' title='Permanent Link: Frameworks: Por um PHP Menos Ruim'>Frameworks: Por um PHP Menos Ruim</a></li>
<li><a href='http://juliogreff.net/codecast-5-frameworks/' rel='bookmark' title='Permanent Link: CodeCast #5 &#8211; Frameworks'>CodeCast #5 &#8211; Frameworks</a></li>
</ul>]]></content:encoded>
			<wfw:commentRss>http://juliogreff.net/spaghetti-framework-lancado/feed/</wfw:commentRss>
		<slash:comments>17</slash:comments>
		</item>
		<item>
		<title>7 coisas que todo desenvolvedor web deveria saber</title>
		<link>http://juliogreff.net/coisas-que-desenvolvedores-web-deveriam-saber/</link>
		<comments>http://juliogreff.net/coisas-que-desenvolvedores-web-deveriam-saber/#comments</comments>
		<pubDate>Thu, 06 Nov 2008 17:22:13 +0000</pubDate>
		<dc:creator>Julio Greff</dc:creator>
				<category><![CDATA[Destaques]]></category>
		<category><![CDATA[Diversos]]></category>
		<category><![CDATA[carreira]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[mvc]]></category>
		<category><![CDATA[regex]]></category>
		<category><![CDATA[sql]]></category>
		<category><![CDATA[svn]]></category>
		<category><![CDATA[tdd]]></category>
		<category><![CDATA[tecnologias]]></category>
		<category><![CDATA[web standards]]></category>

		<guid isPermaLink="false">http://juliogreff.net/?p=307</guid>
		<description><![CDATA[Desenvolvimento Web é coisa séria, e evoluiu muito em termos de maturidade e complexidade. Para fazer frente ao crescente níveis de exigência, nós, desenvolvedores, devemos estar aprendendo a todo instante. Não importa qual campo você deseja seguir, seja ele no lado cliente ou servidor. Mas acredito que existam coisas que todo desenvolvedor web de verdade [...]

<h3>Posts Relacionados</h3><ul><li><a href='http://juliogreff.net/qual-curso-devo-fazer-pra-me-tornar-um-desenvolvedor-web/' rel='bookmark' title='Permanent Link: Qual curso devo fazer pra me tornar um desenvolvedor web?'>Qual curso devo fazer pra me tornar um desenvolvedor web?</a></li>
<li><a href='http://juliogreff.net/comodismo-vs-inovacao/' rel='bookmark' title='Permanent Link: Comodismo vs. Inovação'>Comodismo vs. Inovação</a></li>
<li><a href='http://juliogreff.net/e-a-tal-da-web-20/' rel='bookmark' title='Permanent Link: E a tal da Web 2.0?'>E a tal da Web 2.0?</a></li>
<li><a href='http://juliogreff.net/codecast-impressoes-sobre-inicio-de-carreira/' rel='bookmark' title='Permanent Link: CodeCast #1 &#8211; Impressões sobre Início de Carreira'>CodeCast #1 &#8211; Impressões sobre Início de Carreira</a></li>
<li><a href='http://juliogreff.net/responsexml/' rel='bookmark' title='Permanent Link: ResponseXML'>ResponseXML</a></li>
</ul>]]></description>
			<content:encoded><![CDATA[<p>Desenvolvimento Web é coisa séria, e evoluiu muito em termos de maturidade e complexidade. Para fazer frente ao crescente níveis de exigência, nós, desenvolvedores, devemos estar aprendendo a todo instante. Não importa qual campo você deseja seguir, seja ele no lado cliente ou servidor. Mas acredito que existam coisas que todo desenvolvedor web de verdade deveria saber.</p>
<h3>Web Standards</h3>
<p>Hoje em dia, o mínimo que se espera de um bom desenvolvedor web é o conhecimento dos <strong>Web Standards</strong>, XHTML e CSS. Eles contribuem para a criação de documentos mais consistentes entre si, mais compatíveis e de manutenção extremamente mais simples. Aliás, o conhecimento dos padrões não é mais um diferencial como era há alguns anos atrás, mas sim um requisito básico. Se hoje sonhamos com a web semântica, os padrões web são o primeiro passo. Com documentos mais semânticos, temos mais acessibilidade e também mais relevância, principalmente no que diz respeito a motores de busca.</p>
<p>Mesmo depois de muita evangelização, ainda temos desenvolvedores que acabam de descobrir as maravilhas do mundo validado. Também temos aqueles que não fazem a mínima idéia do que isso signifique, ou que não tem o mínimo interesse em aprender. Se você é um desses, hora de rever seus conceitos&#8230;</p>
<h3>JavaScript</h3>
<p>O <strong>JavaScript</strong>, apesar de ter sido muito injustiçado no passado, é uma linguagem onipresente, e de extrema importância. Qualquer usuário tem pelo menos um interpretador instalado em seu computador. Além do mais, ela é a <strong>única linguagem client-side</strong> disponível, e permanecerá assim por um bom tempo.</p>
<p>JavaScript vai ser a <a title="5 razões pelas quais JavaScript pode ser a próxima grande linguagem" rel="external" href="http://logbr.reflectivesurface.com/2007/10/30/5-razoes-pelas-quais-javascript-pode-ser-a-proxima-grande-linguagem/">próxima grande linguagem</a>. Apesar de ainda estarmos longe de resultados surpreendentes, caminhamos rápido nesse sentido. Muita coisa que antigamente só era possível com Flash hoje é feita com JavaScript.</p>
<p>Além da própria linguagem, aprenda a usar alguma biblioteca, como <a title="Mootools" rel="external" href="http://mootools.net/">Mootools</a>, <a title="jQuery" rel="external" href="http://jquery.com/">jQuery</a> ou <a title="Prototype" rel="external" href="http://prototypejs.org/">Prototype</a>. Aliado a essas ferramentas, você poderá criar aplicações muito mais interessantes em muito menos tempo. Mas atenção: não aprenda somente a biblioteca, sem aprender antes JavaScript puro. Afinal, <a title="jQuery é bom para designers" rel="external" href="http://www.tableless.com.br/jquery-e-bom-para-designers">saber só jQuery é coisa de designer</a>.</p>
<h3>Expressões Regulares</h3>
<p>Um simples replace nem sempre é suficiente quando trabalhamos com manipulação de textos. Aí entram as <strong>Expressões Regulares</strong>, poderosa ferramenta que todos conhecem, alguns usam, e poucos realmente sabem. Seja em PHP, Ruby, Python ou mesmo JavaScript, algum dia você precisará delas.</p>
<p>Se você leva desenvolvimento a sério, dedique um tempo a aprender expressões regulares (<a title="Expressões Regulares - Uma Abordagem Divertida" rel="external" href="http://www.piazinho.com.br/">Expressões Regulares &#8211; Uma Abordagem Divertida</a> é um bom começo!). Além de uma ferramenta de desenvolvimento, elas podem se tornar ferramentas de produtividade. Se você usa IDEs com suporte a busca e substituição com expressões regulares, pode se beneficiar muito disso.</p>
<h3>Controle de Versão</h3>
<p>Para alguns, o <strong>Controle de Versão</strong> mudou completamente, e para a melhor, a forma de trabalhar. Para outros, parece simplesmente inútil, principalmente para quem trabalha sozinho. Seja CVS, SVN, GIT, Mercurial ou qualquer outro, o controle de versão, aliado a ferramentas como o <a title="The Trac Project" rel="external" href="http://trac.edgewall.org/">Trac</a>, pode fazer maravilhas. Além de manter controle de suas alterações, podendo sempre voltar atrás caso alguma modificação dê errado ou mesmo quando o cliente não aprova, você pode manter um controle de sua produtividade, analisando quantos <em>commits</em> foram feitos em quanto tempo, quantos tickets foram fechados, quantos ainda permanecem pendentes.</p>
<p>Desde que passei a utilizar SVN em alguns projetos, como no próprio Spaghetti, notei uma grande melhora no controle sobre o código. Nunca mais pensei duas vezes em apagar grandes blocos de código pensando que eles poderiam ser úteis outra vez (e geralmente nunca seriam realmente necessários). Uma excelente forma de analisar seu progresso, uma excelente forma de backup, uma excelente forma de manter seu código sincronizado. Esqueça aquele colega que tem uma versão ultrapassada de seu código e sobrescreve partes importantes. Quando passei a utilizar ferramentas de tracking, bugs não eram esquecidos, idéias estavam sempre à mão. Digo, como muitos por aí: isso <strong>realmente</strong> mudou a minha maneira de desenvolver.</p>
<h3>MVC</h3>
<p>O <strong>Model-View-Controller</strong>, ou <strong>MVC</strong> para os íntimos, nunca fez tanto sentido quanto na web. Depois do <a title="Ruby on Rails" rel="external" href="http://rubyonrails.org/">Ruby on Rails</a>, virou quase um requisito básico para o desenvolvimento de bons projetos. E desde então, <a title="Desenvolver com Rails não tem graça" href="http://juliogreff.net/desenvolver-com-rails-nao-tem-graca/">desenvolver não tem mais graça</a>. Além disso, a separação de aplicações nessas 3 camadas torna o desenvolvimento e manutenção muito mais simples.</p>
<p>Se você não quer ficar para trás, <strong>adote seu framework</strong>. O <em>pattern</em> é usado na maioria deles, e de brinde você ganha muita produtividade. <a title="Frameworks: Por um PHP Menos Ruim" href="http://juliogreff.net/frameworks-por-um-php-menos-ruim/">Frameworks tornam as linguagens menos ruins</a>. Se você usa PHP, eu sugeriria o <a title="Spaghetti* Framework" rel="external" href="http://trac.spaghettiphp.org/">Spaghetti</a>. Se você usa Ruby ou Python, e é seu primeiro contato com frameworks, siga a tendência e adote Rails ou <a title="Django" rel="external" href="http://djangoproject.com/">Django</a>. Se você é corajoso, faça como fizemos na minha agência: crie seu próprio framework. Usando algum framework ou não, o que importa é pegar o espírito da coisa.</p>
<h3>SQL</h3>
<p>Mesmo com toda a flexibilidade e abstração da camada de dados que os frameworks MVC nos oferecem, <strong>SQL</strong> ainda é necessário. Apesar de você não vê-lo, ele ainda está lá. Consultas complexas ou mais específicas nem sempre são disponibilizadas pelos frameworks, e sempre pode haver a necessidade de uma incursão via terminal, para tarefas de manutenção, por exemplo.</p>
<p>Talvez você não acredite no retorno que isso pode trazer. Até ter nas mãos uma aplicação gigante e extremamente dependente de banco de dados, onde as consultas devem ser otimizadas ao máximo para minimizar a carga do servidor. Você não quer sua aplicação baleiando por você não saber SQL, quer?</p>
<h3>Desenvolvimento Guiado a Testes</h3>
<p><strong>Test Driven Development</strong>, ou simplesmente <strong>TDD</strong>, é, na minha opinião, a melhor maneira de manter seu código livre de bugs. Fazer o desenvolvimento guiado a testes significa desenvolver o teste antes da funcionalidade. A cada iteração, os testes são rodados novamente, de maneira automática, e você sempre saberá se alguma modificação quebrou o restante do código.</p>
<p>Sem testes automatizados, aplicações nunca são testadas como deveriam. São tarefas repetitivas e cansativas. Com o auxílio de ferramentas de testes, eles podem ser rodados várias vezes, certificando de que tudo está correndo bem. Se um novo bug é descoberto, um novo teste é criado, as modificações são feitas, e você terá a certeza de que o problema foi resolvido para todo o sempre, sem quebrar o restante da aplicação. E convenhamos, não há nada pior do que bugs&#8230;</p>
<p>Não é obrigatório que um desenvolvedor saiba tudo isso, embora eu considere extremamente importante, mesmo alguns não sendo necessários todos os dias, todos podem melhorar nossa maneira de trabalhar. Ainda não domino todos os itens citados, mas tenho um bom conhecimento em todos eles. O que importa mesmo é buscar isso, e <strong>sempre continuar aprendendo</strong>. Mexa-se! Você não quer ficar para trás, quer?</p>


<h3>Posts Relacionados</h3><ul><li><a href='http://juliogreff.net/qual-curso-devo-fazer-pra-me-tornar-um-desenvolvedor-web/' rel='bookmark' title='Permanent Link: Qual curso devo fazer pra me tornar um desenvolvedor web?'>Qual curso devo fazer pra me tornar um desenvolvedor web?</a></li>
<li><a href='http://juliogreff.net/comodismo-vs-inovacao/' rel='bookmark' title='Permanent Link: Comodismo vs. Inovação'>Comodismo vs. Inovação</a></li>
<li><a href='http://juliogreff.net/e-a-tal-da-web-20/' rel='bookmark' title='Permanent Link: E a tal da Web 2.0?'>E a tal da Web 2.0?</a></li>
<li><a href='http://juliogreff.net/codecast-impressoes-sobre-inicio-de-carreira/' rel='bookmark' title='Permanent Link: CodeCast #1 &#8211; Impressões sobre Início de Carreira'>CodeCast #1 &#8211; Impressões sobre Início de Carreira</a></li>
<li><a href='http://juliogreff.net/responsexml/' rel='bookmark' title='Permanent Link: ResponseXML'>ResponseXML</a></li>
</ul>]]></content:encoded>
			<wfw:commentRss>http://juliogreff.net/coisas-que-desenvolvedores-web-deveriam-saber/feed/</wfw:commentRss>
		<slash:comments>32</slash:comments>
		</item>
	</channel>
</rss>

