<?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>Radig Soluções em TI</title>
	<atom:link href="http://www.radig.com.br/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.radig.com.br</link>
	<description>Software house sul-matogrossense</description>
	<lastBuildDate>Fri, 03 Feb 2012 15:13:41 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Radig: 2 anos de desafios e conquistas</title>
		<link>http://www.radig.com.br/2011/09/24/radig-2-anos-de-desafios-e-conquistas/</link>
		<comments>http://www.radig.com.br/2011/09/24/radig-2-anos-de-desafios-e-conquistas/#comments</comments>
		<pubDate>Sat, 24 Sep 2011 19:59:48 +0000</pubDate>
		<dc:creator>Radig</dc:creator>
				<category><![CDATA[Sem categoria]]></category>
		<category><![CDATA[radig]]></category>
		<category><![CDATA[startup]]></category>

		<guid isPermaLink="false">http://www.radig.com.br/?p=248</guid>
		<description><![CDATA[<p>As vezes parece que foram à algumas semanas, uns meses, mas já fazem quase 2 anos e meio que formalizamos a Radig. Antes disso discutimos sua criação, seu nome e foco de trabalho por mais de 6 meses. Foi um período de muitas incertezas, apostas, conciliações e satisfação pela realização de um sonho.</p>
<p>Todo este tempo nos permitiu absorver várias experiências: participamos e colaboramos com eventos regionais e nacionais; aprendemos a ouvir e ser ouvido; conquistamos o respeito, admiração e principalmente a amizade de nossos clientes, parceiros e colaboradores; transformamos nossa equipe em  uma verdadeira família, com respeito mútuo, expectativas e dedicação muito alinhada que nos proporcionam liberdade e bem estar à cada dia de trabalho.<span id="more-248"></span></p>
<h4><span class="Apple-style-span" style="font-weight: normal;">Tivemos a honra de conhecer e trabalhar juntos com empresas da cidade, que compartilham diversos ideais conosco, das quais gostaria de citar a <a title="Catwork Tecnologia" href="http://www.catwork.com.br/">Catwork</a>, a <a title="Jera Software Ágil" href="http://jera.com.br">Jera</a>, <a title="Blackdog Studio Games" href="http://studioblackdog.com/">BlackDog Studio</a> e a <a title="Mob360 Comunicação" href="http://mob360.com.br">Mob360</a>, onde contamos com grandes amigos.</span></h4>
<p>Criamos uma cultura, identificamos nossa vocação, conquistamos nosso espaço no mercado e criamos muitos amigos. Fomos pioneiros na divulgação do CakePHP em Campo Grande. Apoiamos e patrocinamos eventos, sempre nos mantendo próximo das comunidades de software livre e desenvolvedores do estado.</p>
<p>Este ano teremos nossa sede própria, a equipe deve crescer mais um pouco e desbravaremos novas áreas de atuação, saindo exclusivamente da web para outras tecnologias ligadas a elas. São algumas das novidades já tem cronograma e que tornarão realidade ainda este ano.</p>
<p>Olhando para traz vejo que já realizamos muito, mas podemos fazer muito mais. Para os próximos anos as perspectivas são as melhores possíveis, sem dúvida.</p>
<h4>Dicas para quem quer empreender</h4>
<p>Existem vários livros, blogs e experts em empreendedorismo, não quero me defrontar com nenhum deles, apenas deixar algumas dicas que tirei da pouca experiência que tive.</p>
<ul>
<li>Não deixe para depois o que pode ser feito agora. Criar desculpas para por em prática sua empresa é um péssimo jeito de começa-la;</li>
<li>Amigos, tenha muitos. Relação de confiança e transparência é fundamental;</li>
<li>Invista, mas com segurança. Se você tem uma grande quantia para investir, não invista de uma vez, procure aplicar o dinheiro aos poucos conforme for realmente necessário. Você nunca sabe como será o dia de amanhã;</li>
<li>Em informática a capacitação é ponto crítico. Participe de grupos de desenvolvedores, listas, projetos open source, treinamentos, compre livros e tudo mais que puder fazer. É a sua capacidade e a de sua equipe que definem o sucesso da empresa.</li>
<li>Insista e persista. Momentos difíceis sempre existirão, use-os para aprender, não para desistir.</li>
<li>Forme a identidade de sua empresa o quanto antes: que tipo de cultura você quer para ela? como é o ambiente de trabalho? quais seus valores? por que você quer ter uma empresa? por que alguém deve escolher a sua empresa para trabalhar? e para ser cliente? Todas essas respostas devem ser respondidas o quanto antes, mas não deixe de fazer outras coisas enquanto você as procura. O importante é não esquecer-se delas. Citando um comercial do canal Futura de TV: &#8220;Não são as respostas que movem o mundo, são as perguntas&#8221;, não se intimide por elas.</li>
</ul>
]]></description>
			<content:encoded><![CDATA[<p>As vezes parece que foram à algumas semanas, uns meses, mas já fazem quase 2 anos e meio que formalizamos a Radig. Antes disso discutimos sua criação, seu nome e foco de trabalho por mais de 6 meses. Foi um período de muitas incertezas, apostas, conciliações e satisfação pela realização de um sonho.</p>
<p>Todo este tempo nos permitiu absorver várias experiências: participamos e colaboramos com eventos regionais e nacionais; aprendemos a ouvir e ser ouvido; conquistamos o respeito, admiração e principalmente a amizade de nossos clientes, parceiros e colaboradores; transformamos nossa equipe em  uma verdadeira família, com respeito mútuo, expectativas e dedicação muito alinhada que nos proporcionam liberdade e bem estar à cada dia de trabalho.<span id="more-248"></span></p>
<h4><span class="Apple-style-span" style="font-weight: normal;">Tivemos a honra de conhecer e trabalhar juntos com empresas da cidade, que compartilham diversos ideais conosco, das quais gostaria de citar a <a title="Catwork Tecnologia" href="http://www.catwork.com.br/">Catwork</a>, a <a title="Jera Software Ágil" href="http://jera.com.br">Jera</a>, <a title="Blackdog Studio Games" href="http://studioblackdog.com/">BlackDog Studio</a> e a <a title="Mob360 Comunicação" href="http://mob360.com.br">Mob360</a>, onde contamos com grandes amigos.</span></h4>
<p>Criamos uma cultura, identificamos nossa vocação, conquistamos nosso espaço no mercado e criamos muitos amigos. Fomos pioneiros na divulgação do CakePHP em Campo Grande. Apoiamos e patrocinamos eventos, sempre nos mantendo próximo das comunidades de software livre e desenvolvedores do estado.</p>
<p>Este ano teremos nossa sede própria, a equipe deve crescer mais um pouco e desbravaremos novas áreas de atuação, saindo exclusivamente da web para outras tecnologias ligadas a elas. São algumas das novidades já tem cronograma e que tornarão realidade ainda este ano.</p>
<p>Olhando para traz vejo que já realizamos muito, mas podemos fazer muito mais. Para os próximos anos as perspectivas são as melhores possíveis, sem dúvida.</p>
<h4>Dicas para quem quer empreender</h4>
<p>Existem vários livros, blogs e experts em empreendedorismo, não quero me defrontar com nenhum deles, apenas deixar algumas dicas que tirei da pouca experiência que tive.</p>
<ul>
<li>Não deixe para depois o que pode ser feito agora. Criar desculpas para por em prática sua empresa é um péssimo jeito de começa-la;</li>
<li>Amigos, tenha muitos. Relação de confiança e transparência é fundamental;</li>
<li>Invista, mas com segurança. Se você tem uma grande quantia para investir, não invista de uma vez, procure aplicar o dinheiro aos poucos conforme for realmente necessário. Você nunca sabe como será o dia de amanhã;</li>
<li>Em informática a capacitação é ponto crítico. Participe de grupos de desenvolvedores, listas, projetos open source, treinamentos, compre livros e tudo mais que puder fazer. É a sua capacidade e a de sua equipe que definem o sucesso da empresa.</li>
<li>Insista e persista. Momentos difíceis sempre existirão, use-os para aprender, não para desistir.</li>
<li>Forme a identidade de sua empresa o quanto antes: que tipo de cultura você quer para ela? como é o ambiente de trabalho? quais seus valores? por que você quer ter uma empresa? por que alguém deve escolher a sua empresa para trabalhar? e para ser cliente? Todas essas respostas devem ser respondidas o quanto antes, mas não deixe de fazer outras coisas enquanto você as procura. O importante é não esquecer-se delas. Citando um comercial do canal Futura de TV: &#8220;Não são as respostas que movem o mundo, são as perguntas&#8221;, não se intimide por elas.</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.radig.com.br/2011/09/24/radig-2-anos-de-desafios-e-conquistas/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>CakePHP: Plugin Locale para localização de datas e moeda</title>
		<link>http://www.radig.com.br/2011/01/29/cakephp-plugin-locale-para-localizacao-de-datas-e-moeda/</link>
		<comments>http://www.radig.com.br/2011/01/29/cakephp-plugin-locale-para-localizacao-de-datas-e-moeda/#comments</comments>
		<pubDate>Sat, 29 Jan 2011 14:57:35 +0000</pubDate>
		<dc:creator>José Agripino Duarte da Silva</dc:creator>
				<category><![CDATA[Desenvolvimento]]></category>
		<category><![CDATA[Programação]]></category>
		<category><![CDATA[cakephp]]></category>
		<category><![CDATA[data]]></category>
		<category><![CDATA[locale]]></category>
		<category><![CDATA[localização]]></category>
		<category><![CDATA[moeda]]></category>
		<category><![CDATA[plugin]]></category>

		<guid isPermaLink="false">http://www.radig.com.br/?p=199</guid>
		<description><![CDATA[Uma coisa importante na produção de um sistema ou website é exibir informações compreensíveis para o usuário. A internacionalização e localização de uma aplicação são tarefas importantes no desenvolvimento de um sistema ou website, pois garante que palavras, expressões e numerações serão exibidas no idioma de preferência do usuário. O CakePHP possui suporte a localização, porém [...]]]></description>
			<content:encoded><![CDATA[<p>Uma coisa importante na produção de um sistema ou website é exibir informações compreensíveis para o usuário. A internacionalização e localização de uma aplicação são tarefas importantes no desenvolvimento de um sistema ou website, pois garante que palavras, expressões e numerações serão exibidas no idioma de preferência do usuário.</p>
<p>O CakePHP possui suporte a localização, porém não possui nativamente um mecanismo de tradução de datas e moeda para busca e salvamento no banco de dados. Pensando nisso, nosso amigo <a href="http://cauancabral.net">Cauan Cabral</a> desenvolveu o <a href="https://github.com/radig/locale">plugin Locale</a>  que conta com um Behavior que realiza a adaptação de datas e numeração locais para o formato aceito pelo banco de dados, e um Helper que traduz datas e valores monetários para a formatação local.</p>
<p><span id="more-199"></span></p>
<p>A utilização do Behavior e do Helper é extremamente simples. Sua instalação é feita por, no máximo, duas linhas de código no arquivo config/bootstrap.php:</p>


<div class="wp-geshi-highlight-wrap5"><div class="wp-geshi-highlight-wrap4"><div class="wp-geshi-highlight-wrap3"><div class="wp-geshi-highlight-wrap2"><div class="wp-geshi-highlight-wrap"><div class="wp-geshi-highlight"><div class="php"><pre class="de1"><span class="co1">// dizemos a língua/região utilizada na aplicação</span>
Config<span class="sy0">::</span><span class="me2">write</span><span class="br0">&#40;</span><span class="st_h">'Language.default'</span><span class="sy0">,</span> <span class="st_h">'pt-br'</span><span class="br0">&#41;</span><span class="sy0">;</span>
<span class="co1">// esta linha é opcional, somente se seu servidor não estiver configurado com a mesma região da aplicação</span>
<span class="kw3">setlocale</span><span class="br0">&#40;</span>LC_ALL<span class="sy0">,</span> <span class="st_h">'pt_BR.utf-8'</span><span class="sy0">,</span> <span class="st_h">'pt_BR'</span><span class="sy0">,</span> <span class="st_h">'pt-br'</span><span class="br0">&#41;</span><span class="sy0">;</span></pre></div></div></div></div></div></div></div>


<p>Basta incluir o behavior Locale no atributo $actsAs do model, não esquecendo de prefixar o nome do plugin:</p>


<div class="wp-geshi-highlight-wrap5"><div class="wp-geshi-highlight-wrap4"><div class="wp-geshi-highlight-wrap3"><div class="wp-geshi-highlight-wrap2"><div class="wp-geshi-highlight-wrap"><div class="wp-geshi-highlight"><div class="php"><pre class="de1"><span class="re0">$actsAs</span> <span class="sy0">=</span> <span class="kw3">array</span><span class="br0">&#40;</span><span class="st_h">'Locale.Locale'</span><span class="br0">&#41;</span><span class="sy0">;</span></pre></div></div></div></div></div></div></div>


<p>A partir dai qualquer dado do tipo decimal, numeric, float, date ou datetime será convertido antes de ser gerado a SQL para a consulta/inserção no banco de dados. Porém é importante que os dados estejam corretos, conforme a formatação local (por exemplo, o valor 5,000 mesmo significando cinco mil em inglês será entendido como 5 no formato numérico brasileiro &#8211; por isso a necessidade de dizer ao plugin qual o formato da entrada localizado).</p>
<p>Utilizar o helper também é simples. Basta incluir o helper Locale no atributo $helpers do controlador (ou da classe AppController):</p>


<div class="wp-geshi-highlight-wrap5"><div class="wp-geshi-highlight-wrap4"><div class="wp-geshi-highlight-wrap3"><div class="wp-geshi-highlight-wrap2"><div class="wp-geshi-highlight-wrap"><div class="wp-geshi-highlight"><div class="php"><pre class="de1"><span class="re0">$helpers</span> <span class="sy0">=</span> <span class="kw3">array</span><span class="br0">&#40;</span><span class="st_h">'Locale.Locale'</span><span class="br0">&#41;</span><span class="sy0">;</span></pre></div></div></div></div></div></div></div>


<p>Para localizar datas nas views, basta chamar os métodos <strong>date()</strong> ou <strong>dateTime()</strong>, conforme o tipo de data utilizada pelo banco de dados. Por exemplo:</p>


<div class="wp-geshi-highlight-wrap5"><div class="wp-geshi-highlight-wrap4"><div class="wp-geshi-highlight-wrap3"><div class="wp-geshi-highlight-wrap2"><div class="wp-geshi-highlight-wrap"><div class="wp-geshi-highlight"><div class="php"><pre class="de1"><span class="kw1">echo</span> <span class="re0">$this</span><span class="sy0">-&gt;</span><span class="me1">Locale</span><span class="sy0">-&gt;</span><span class="kw3">date</span><span class="br0">&#40;</span><span class="re0">$this</span><span class="sy0">-&gt;</span><span class="me1">data</span><span class="br0">&#91;</span><span class="st_h">'ModelName'</span><span class="br0">&#93;</span><span class="br0">&#91;</span><span class="st_h">'date'</span><span class="br0">&#93;</span><span class="sy0">,</span> <span class="kw4">true</span><span class="br0">&#41;</span><span class="sy0">;</span>
<span class="co1">// ou no caso de datetime</span>
<span class="kw1">echo</span> <span class="re0">$this</span><span class="sy0">-&gt;</span><span class="me1">Locale</span><span class="sy0">-&gt;</span><span class="me1">dateTime</span><span class="br0">&#40;</span><span class="re0">$this</span><span class="sy0">-&gt;</span><span class="me1">data</span><span class="br0">&#91;</span><span class="st_h">'ModelName'</span><span class="br0">&#93;</span><span class="br0">&#91;</span><span class="st_h">'datetime'</span><span class="br0">&#93;</span><span class="sy0">,</span> <span class="kw4">true</span><span class="br0">&#41;</span><span class="sy0">;</span></pre></div></div></div></div></div></div></div>


<p>O segundo parâmetro do método diz se o helper deve exibir vazio quando uma data está errada.</p>
<p>Para localizar moedas, utiliza-se o método <strong>currency</strong>. Por exemplo:</p>


<div class="wp-geshi-highlight-wrap5"><div class="wp-geshi-highlight-wrap4"><div class="wp-geshi-highlight-wrap3"><div class="wp-geshi-highlight-wrap2"><div class="wp-geshi-highlight-wrap"><div class="wp-geshi-highlight"><div class="php"><pre class="de1"><span class="kw1">echo</span> <span class="re0">$this</span><span class="sy0">-&gt;</span><span class="me1">Locale</span><span class="sy0">-&gt;</span><span class="me1">currency</span><span class="br0">&#40;</span><span class="re0">$this</span><span class="sy0">-&gt;</span><span class="me1">data</span><span class="br0">&#91;</span><span class="st_h">'ModelName'</span><span class="br0">&#93;</span><span class="br0">&#91;</span><span class="st_h">'salary'</span><span class="br0">&#93;</span><span class="br0">&#41;</span><span class="sy0">;</span></pre></div></div></div></div></div></div></div>


<p>Será exibido o símbolo monetário conforme o locale do sistema junto com o valor numérico no formato local.</p>
<p>O Locale é um plugin simples mais que facilita a formatação de dados. Sinta-se a vontade para utiliza-lo, ele está disponível para download ou clone no <a href="https://github.com/radig">Github da Radig</a> sob licença MIT.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.radig.com.br/2011/01/29/cakephp-plugin-locale-para-localizacao-de-datas-e-moeda/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Mantendo uma base de código organizada e documentada</title>
		<link>http://www.radig.com.br/2011/01/09/mantendo-uma-base-de-codigo-organizada-e-documentada/</link>
		<comments>http://www.radig.com.br/2011/01/09/mantendo-uma-base-de-codigo-organizada-e-documentada/#comments</comments>
		<pubDate>Sun, 09 Jan 2011 16:15:24 +0000</pubDate>
		<dc:creator>Cauan Cabral</dc:creator>
				<category><![CDATA[Desenvolvimento]]></category>
		<category><![CDATA[Programação]]></category>
		<category><![CDATA[Qualidade de Software]]></category>
		<category><![CDATA[desenvolvimento]]></category>
		<category><![CDATA[dicas]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[qualidade]]></category>
		<category><![CDATA[testes]]></category>

		<guid isPermaLink="false">http://www.radig.com.br/?p=188</guid>
		<description><![CDATA[Uma problemática comum de quem desenvolve sistemas é como manter a documentação em dia, se que isso comprometa os prazos de desenvolvimento. Digamos que isso é um problema de otimização: um código bem documentado facilita e muito a sua manutenção; documentar código leva tempo; tempo é um recurso escasso em desenvolvimento de software; Olha o [...]]]></description>
			<content:encoded><![CDATA[<p>Uma problemática comum de quem desenvolve sistemas é como manter a documentação em dia, se que isso comprometa os prazos de desenvolvimento.</p>
<p>Digamos que isso é um problema de otimização:</p>
<ul>
<li>um código bem documentado facilita e muito a sua manutenção;</li>
<li>documentar código leva tempo;</li>
<li>tempo é um recurso escasso em desenvolvimento de software;</li>
</ul>
<p>Olha o problema&#8230; sem tempo, não há documentação e sem documentação você precisará de mais tempo para dar manutenção &#8211; oras, mas você já <strong>não tinha tempo</strong> para documentar, como vai ter <strong>mais tempo</strong> agora para dar manutenção?</p>
<p>Tentando equacionar esse problema surgiram várias ferramentas que visam facilitar todas as atividades relacionadas ao desenvolvimento.</p>
<p>Como a maior parte do meu tempo dedico ao PHP e CakePHP, tomarei estes como base para as ferramentas, porém várias delas podem ser utilizadas com outras linguagens/frameworks sem grandes problemas ou então possuem similares em outras linguagens.<span id="more-188"></span></p>
<h3>Padrão de código</h3>
<p>A primeira etapa, e talvez a mais importante, seja definir e disponibilizar um conjunto de regras explicando como o código foi escrito.</p>
<p>Este padrão envolve nome de classes, atributos, métodos, comentários, tabelas e colunas do banco de dados, organização de diretórios dentre outras coisas. Até coisas simples como a indentação deve ser padronizada.</p>
<p>Veja alguns guias de codificação para ter um exemplo do que quero dizer:</p>
<ul>
<li><a title="Coding Standards do WordPress" href="http://codex.wordpress.org/WordPress_Coding_Standards">WordPress</a></li>
<li><a title="Princípios do CakePHP" href="http://book.cakephp.org/view/892/Basic-Principles-of-CakePHP">CakePHP</a></li>
<li><a title="Joomla! Coding style and standards" href="http://docs.joomla.org/Coding_style_and_standards">Joomla!</a></li>
</ul>
<h3>Versionamento de código</h3>
<p>Um dos recursos mais importantes durante o desenvolvimento é a capacidade de se desfazer determinada alteração e manter um registro de todas as alterações feitas durante o desenvolvimento.</p>
<p>Atualmente, minha ferramenta favorita para versionamento é o <a title="Git SCM" href="http://git-scm.com/">Git</a> um sistema distribuído de controle de versão. Porém existem vários outros que podem agradar, como o centralizador <a title="Home of Subversion project" href="http://subversion.apache.org/">SVN</a> e os também distribuídos <a title="Hg/Mercurial SCM" href="http://mercurial.selenic.com/">Mercurial</a> e <a title="página oficial do Bazaar" href="http://bazaar.canonical.com/en/">Bazaar</a>.</p>
<p>É muito fácil trabalhar com qualquer um destes sistemas e após conhecer as facilidades que o versionamento de código lhe proporcionam, você terá dificuldade em trabalhar com código sem controle de versão, pode apostar.</p>
<p>Caso você opte por um sistema distribuído, dê uma olhada neste modelo de organização para seu código: <a title="texto em inglês" href="http://nvie.com/posts/a-successful-git-branching-model/">A successful Git branch model</a></p>
<h3>Versionamento do Banco de Dados</h3>
<p>Por melhor que seja o projeto do seu sistema uma coisa sempre ocorrerá: mudança. E isso envolve mais do que código, muitas vezes alterações na estrutura do banco são necessárias.</p>
<p>Como controlar essas alterações? A resposta é &#8220;Migrations&#8221;</p>
<p>No CakePHP precisamos de plugins para dar essa capacidade a aplicação, há dois largamente utilizados:</p>
<ul>
<li>Projeto do <a title="Perfil de Juan Basso no Twitter" href="http://twitter.com/jrbasso">Juan Basso</a>: <a title="Juan Basso Migrations" href="https://github.com/jrbasso/migrations">https://github.com/jrbasso/migrations</a></li>
<li>Projeto do <a title="Cake Development Corporation" href="http://cakedc.com">CakeDC</a>: <a title="CakeDC Migrations" href="https://github.com/CakeDC/migrations">https://github.com/CakeDC/migrations</a></li>
</ul>
<p>Outros frameworks fornecem suporte &#8220;nativo&#8221; ao recurso, como o <a title="Página do framework Rails para Ruby" href="http://rubyonrails.org/">Ruby on Rails</a> e <a title="Página do Doctrine" href="http://www.doctrine-project.org/">Doctrine </a>para PHP em geral.</p>
<h3>Testes unitários</h3>
<p>Acredito que todos os frameworks modernos fornecem suporte a criação de testes unitários em seus projetos. Os testes são uma fase importante do design do software e fundamental para documentação de qualidade.</p>
<p>O CakePHP até sua versão 1.3 utiliza o framework de testes <a title="SimpleTest: Teste Unitários para PHP" href="http://www.simpletest.org/">SimpleTest</a>, porém passará a utilizar o <a title="Repositório do PHPUnit, padrão &quot;de fato&quot; para testes em PHP" href="https://github.com/sebastianbergmann/phpunit/">PHPUnit</a> em sua versão 2.0 (atualmente em desenvolvimento).</p>
<p>Não sabe o que são testes unitários? Bom, segue alguns links sobre o assunto:</p>
<ul>
<li><a title="TDD" href="http://www.improveit.com.br/xp/praticas/tdd">Desenvolvimento Orientado a Testes</a></li>
<li><a title="Verbete a respeito de testes" href="http://pt.wikipedia.org/wiki/Teste_de_unidade">Wikipedia: Testes de Unidade/Unitário</a></li>
<li><a title="Outro post sobre o assunto" href="http://www.profissionaisti.com.br/2009/11/tdd-desenvolvimento-orientado-a-testes/">TDD: Desenvolvimento Orientado a Testes</a></li>
<li><a title="Cookbook para versão 1.3" href="http://book.cakephp.org/pt/view/1196/Testes">Criando Testes com CakePHP</a></li>
<li><a title="apresentação de João José Pedrini" href="http://www.slideshare.net/joaojose/testes-automatizados-no-cakephp">Testes Automatizados no CakePHP</a></li>
<li><a title="ótimo texto do Gustavo Dutra a respeito" href="http://gustavodutra.com/post/412/como-fazer-testes-unitarios-em-models-no-cakephp/">Como fazer testes unitários em Models no CakePHP</a></li>
</ul>
<p>Testes são como controle de versão&#8230; depois que você usa, não vive sem.</p>
<h3>Documentação</h3>
<p>Como comentado anteriormente, um passo importante para documentação são os testes unitários. Porém não devem ser o único.</p>
<p>Uma forma muito eficiente de documentação são os blocos de comentários, no PHP, o padrão PHPDoc é o mais utilizado.</p>
<p>Existem várias ferramentas que varrem o código de sua aplicação e identificam esses blocos para gerar a documentação, alguns deles são:</p>
<ul>
<li><a title="casa do phpDocumentor" href="http://phpdoc.org">phpDocumentor</a>: ferramenta mais utilizada no mundo PHP</li>
<li><a title="explicação em português sobre PHPDoc" href="http://www.worldlingo.com/ma/enwiki/pt/PHPDoc">Mais informação em português sobre PHPDoc</a></li>
<li><a title="post ensinando a utilizção do phpDocumentor" href="http://luishenrique.org/blog/posts/php-doc-instalacao-e-uso">Documente seu código PHP usando PHPDoc</a></li>
<li><a title="Api Generator - plugin para geração de API, baseado no PHPDoc" href="http://cakephp.lighthouseapp.com/projects/42879/home">Gerador de Api para CakePHP</a></li>
</ul>
<p>Quando sua documentação é concisa e completa, entender o funcionamento da aplicação passa a ser fácil, independente de quando ela foi criada. Quando isso é aliado aos testes unitários, fazer manutenção passa a ser uma atividade mais fácil e gratificante.</p>
<p>Por fim, é preciso saber o que/quando está errado e como/quando foi corrigido, ajudando na manutenção do histórico e acompanhamento da evolução do software. Para isso temos o tópico a seguir.</p>
<h3>Controle de Bugs/Atividades</h3>
<p>Como controlar o que, quando e por quem uma determinada atividade deve ser feita? E como verificar por quem e quando determinada funcionalidade foi implementada? O controle de versão pode fornecer parte destas respostas, mas ficar analisando logs normalmente não é muito comodo. A melhor maneira é utilizar uma ferramenta de controle de bugs/atividades.</p>
<p>Utilizo no meu dia-a-dia o excelente <a title="Redmine - Sistema de controle de atividades" href="http://redmine.org">Redmine, </a>um sistema simples porém poderoso para controle de tarefas. Suporta diferentes projetos, sub-projetos, integra-se com vários sistemas de versionamento de código, permite criação de wikis para documentação além de vários outros recursos.</p>
<p>Além deste, existem vários outros sistemas como o <a title="página do Bugzilla" href="http://www.bugzilla.org/">Bugzilla</a>, <a title="Trac" href="http://trac.edgewall.org/">Trac</a>, <a title="Mantis - feito em PHP" href="http://www.mantisbt.org/">Mantis</a> e <a title="PHProjekt" href="http://phprojekt.com">PHProjekt</a>.</p>
<h3>Conclusão?</h3>
<p>Não, não tem conclusão. O texto visa apenas apresentar algumas atividades que juntas ao planejamento e desenvolvimento de software tendem a tornar a vida dos desenvolvedores melhor, seja diminuindo o stress causado por alterações dos requisitos ou manutenção de código mal projetado/escrito, seja tornando o desenvolvimento mais ágil, permitindo mais horas de lazer e descanso e menos fios de cabelo branco.</p>
<p>A intenção nunca foi cobrir todos os tópicos a exaustão, mas sim apresentar alguns exemplos e motivos para adoção de tais ferramentas/ideias. Caso tenha surgido dúvida a respeito de qualquer item, deixe um comentário =]</p>
<p>Sentiu a falta de algum item? Utiliza algo de forma diferente? Deixe um comentário também.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.radig.com.br/2011/01/09/mantendo-uma-base-de-codigo-organizada-e-documentada/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Inauguração do blog</title>
		<link>http://www.radig.com.br/2010/12/24/inauguracao-do-blog/</link>
		<comments>http://www.radig.com.br/2010/12/24/inauguracao-do-blog/#comments</comments>
		<pubDate>Fri, 24 Dec 2010 21:35:12 +0000</pubDate>
		<dc:creator>Radig</dc:creator>
				<category><![CDATA[Comunicado]]></category>

		<guid isPermaLink="false">http://dev.radig.com.br/?p=164</guid>
		<description><![CDATA[É isso aí, a partir de agora teremos mais um canal de comunicação entre nossa equipe, clientes, parceiros e colaboradores. Este espaço será usado por todos da equipe Radig afim de expor novidades, compartilhar ideias e conhecimento, sempre em um via de mão dupla, onde você poderá comentar e dar sua opinião sobre nosso trabalho. [...]]]></description>
			<content:encoded><![CDATA[<p>É isso aí, a partir de agora teremos mais um canal de comunicação entre nossa equipe, clientes, parceiros e colaboradores.</p>
<p>Este espaço será usado por todos da equipe Radig afim de expor novidades, compartilhar ideias e conhecimento, sempre em um via de mão dupla, onde você poderá comentar e dar sua opinião sobre nosso trabalho.</p>
<p>Esperamos que goste deste novo espaço, pretendemos tornar este um importante canal de comunicação.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.radig.com.br/2010/12/24/inauguracao-do-blog/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

